View Full Version : Viewing large(~2-3GB) video files over the internet with Avisynth
the_provider
24th August 2016, 21:02
Hello.
Instead of copying 2-3 GB of video I thought that it should be possible to use the frame-serving capabilities of Avisynth to view the video in another application that can open and view .avs files. The target files should reside on a locally mapped drive so that the destination can be declared using local resources.
I tried that in my LAN and I could open/browse/view 3GB+ files with VirtualDub flawlessly but what I'm asking above is aiming to accomplish the same but for files that are far, far away...
I only did a test with a 195MB file in VirtualDub and I received an AviSynth error 223 at opening the file...
I used Avisynth 2.6, build Jan 14 2015 and VirtualDub 1.10.4.
Has anybody tried that?
If yes, any advises you might want to share?
Thank you.
FranceBB
24th August 2016, 21:19
I didn't try it on internet, but in my former office, we had an avisynth-based workflow, with daily tasks accomplished by local x264 encoder and remote raw and avs files. It used to take a while to start and it didn't fully use the CPU. Files and avs were hosted in a Synology rack with 4 Ethernet connected to a switch, which was then connected with two Ethernet cables to each of our local machines. When I tried avisynth MT over the LAN, something screwed up, as it messed up some part of the video, even though the file was created successfully. (Avisynth 2.6.0a5, released in 2013)
I actually never tried on internet, but I don't think it's reasonably possible.
the_provider
25th August 2016, 07:02
Thank you for the time taken to reply.
My goal is not to do any conversion of the remote file but ONLY to view it and thus avoid copying it from one place to another.
Why do you think it won't work?
Thank you.
FranceBB
25th August 2016, 18:10
Basically, assume you have a compressed file, let's say a 20min 1080p H.264 encoded at constant bitrate 3000 kbit/s, which has a final size of about 500 MB.
In order to open such a file in avisynth, you have to index it via an indexer (FFMpeg, LSMASH, DirectShowSource etc) and they need to get data from internet (a lot of data over internet) to get the file and work with it.
In other words: can I do it? Yes, you can.
Will it run? Yes, sure.
Does an average internet connection has enough speed to do it for real time decoding? Probably not, that's why I said that.
Anyway, it's true that it's up to the fps, the resolution and the bitrate of the file you are trying to process, so maybe with a very good internet connection and a rather small file you will be able to get real time decoding. ;)
Groucho2004
25th August 2016, 18:19
I have never used it but TCPServer()/TCPSource (http://avisynth.nl/index.php/TCPServer) might be what you're looking for.
the_provider
25th August 2016, 21:13
Hello all and thank you for taking the time to reply.
@FranceBB: 500MB is 4-6 times less the size I'm facing but for the time being I have no idea what are the details of the target video: compression (y/n), resolution, codec, bitrate etc, I know, it probably sound ridiculous but that's as much as I could find...
@Groucho2004: that sounds very spectacular, I'll do some tests as soon as I can and come back with the results.
Thank you all, I'll keep you posted with the progress.
shekh
25th August 2016, 21:24
Thank you for the time taken to reply.
My goal is not to do any conversion of the remote file but ONLY to view it and thus avoid copying it from one place to another.
Why do you think it won't work?
Thank you.
Did you consider simply using some VNC (e.g. TeamViewer)?
the_provider
25th August 2016, 21:33
Hmmm, I believe the use of any VNC-like apps is not an option and that will raise some additional concerns in respect with the ability of that video being watched by more than one person at a time as well as keeping the Server side of the VNC open at all times... Opening a frame server that may provide video for several clients seems most promising now.
Thank you.
StainlessS
25th August 2016, 21:52
Maybe something amongst this lot would suffice,
https://www.google.com/?gfe_rd=cr&ei=tAFqVuTzKdLS8AfknKK4BQ&gws_rd=ssl,cr&fg=1#q=video+streaming+software
https://en.wikipedia.org/wiki/List_of_streaming_media_systems
https://en.wikipedia.org/wiki/Streaming_media
Turn yourself into a kind of YouTube.
smok3
25th August 2016, 22:33
I have never used it but TCPServer()/TCPSource (http://avisynth.nl/index.php/TCPServer) might be what you're looking for.
That is basically lossless video over net, silly idea.
Groucho2004
26th August 2016, 00:17
That is basically lossless video over net, silly idea.Sure. However, that would most likely apply to every method to serve frames from Avisynth to a remote location which is what the OP was inquiring about.
StainlessS
26th August 2016, 00:22
By the way, watching video over vnc (tightvnc) on my local home net is not really very good (EDIT: SD).
Not a fast connection (well actually one remote [EDIT: two of] is gigabit, EDIT: mostly 100Mb), I love vnc as it allows me to jump onto a machine and control it without monitor or keyboard problems [EDIT: without keyboard, monitor connected], watching video or stuff like that, ain't gonna work well over the internet without unlimited funding, [EDIT: I'm guess'in T1 aint gonna come close, [EDIT: Reliable but just not fast enough]]
Edit: uncompressed video. Mobile.
EDIT: TightVNC with Mirage light weight fast video compression add-on, so not even totally uncompressed video,
could be faster if limited to eg 256 colors or limited size.
EDIT: Not actually sure if I can get audio over TightVNC, not good enough for me to even consider it. Shekh mentioned Team Viewer
can support audio (I think). Only other VNC I tried was UltraVNC, which tended to crash a lot.
smok3
26th August 2016, 08:33
Sure. However, that would most likely apply to every method to serve frames from Avisynth to a remote location which is what the OP was inquiring about.
I thought avisynth was supposed to run locally?
like: somesource ("remotelocation.mkv")
raffriff42
26th August 2016, 13:01
TCPServer requires high bandwidth due to its low compression ratio (maybe 5:1 compared to 100:1 for a typical compressed video), and it requires low latency since it is requests each frame just before it is displayed, with no buffering AFAIK.
I agree with StainlessS in post #9; what you probably want is a file streaming server. I haven't used it, but it looks like Plex (https://www.plex.tv/) should do what you need (for free).
the_provider
29th August 2016, 22:28
Hello.
Thank you all for the time taken to reply.
The more I read the more I tend to believe that streaming is not what I need especially due to the high compression. It's not artistic movies that I'm looking to view remotely but technical ones in a company's network and in most of the time close to original and a frame by frame viewing is needed.
Thus been said I also took a look at PLEX but I believe it needs a paid commercial license to be used within a company network.
Thank you.
wonkey_monkey
29th August 2016, 23:00
I only did a test with a 195MB file in VirtualDub and I received an AviSynth error 223 at opening the file...
I guess you opened it from a shared folder which you accessed over the internet?
What type of file was it?
StainlessS
30th August 2016, 01:39
It's not artistic movies that I'm looking to view remotely but technical ones in a company's network and in most of the time close to original and a frame by frame viewing is needed.
I dont know the answer to your problem, but there has to be a good one. I'm assuming that you are wanting to view 'drawings' ie mostly black line drawings on white background, mostly non animated or similar to eg windows Desktop capture.
I dont know of any codec/internet arrangement that does what you want but there really has to be an answer.
TechSmith does a codec that compresses eg windows desktop content, and is used for exam questions for eg self study/test material for eg MCSE study courses. I'm guessin' that they also have an answer to providing that kind of content over the net (as well as in DVD based courses).
Suggest take look at TechSmith, (Commercial as compressor/encoder) but I think free for decompress. Research may be necessary for info on viewing over the net, as you are a commercial concern, as is TechSmith, I'm guessin that there is a solution to your problem. Might also be worth looking up TechSmith on Wikipedia to see what non-commercial equivalents exist.
EDIT: Not sure about "frame by frame viewing".
EDIT: Actually VNC is beginning to sound better, give one a try.
raffriff42
30th August 2016, 02:08
Note, streaming simply means making a media file available on a network in such a way that the client can (a) start playback before download is finished, and (b) seek to any point in the file. There is no need for high compression. It may not even require re-encoding of the original file, but merely wrapping it in a container such as MPEG-TS.
Streaming technology does not set any bandwidth limit, but most streaming services do restrict their bandwidth to some degree for other reasons - like saving money, or making sure clients can view the video without pauses for buffering.
If you have a high bandwidth Internet upload connection, you can stream content at any quality level you want. I'm thinking somewhere around 15000-30000kps for a transparent 1080p signal.
VLC player incorporates a streaming server (https://www.google.com/search?q=VLC+player+streaming+server). With no prior experience I was able to get it going (on a LAN) in a few minutes by following the guide [here] (https://wiki.videolan.org/Documentation:Streaming_HowTo/Easy_Streaming_Newer_Versions/).
FFmpeg has ffserver (https://ffmpeg.org/ffserver.html), a command line streaming server which is probably more powerful, but has a learning curve. What is your time budget?
Open Broadcast Studio (https://obsproject.com/) can stream not only video files, but your computer's desktop, at any bandwidth. You can go with a commercial streaming service (OBS is preconfigured to use several of them) or set up your own private RTMP server with this guide (https://obsproject.com/forum/threads/how-to-set-up-your-own-private-rtmp-server-using-nginx.12891/).
StainlessS
30th August 2016, 02:33
Arh, just ignore me, the on-site RiffRaff will keep you right :)
raffriff42
30th August 2016, 02:42
Sorry, was in invisible mode while waiting for the recent shit-storm to blow over.
StainlessS
30th August 2016, 02:49
Raff, you were NOT invisible to me, (that is not to say that I cannot see right through you). :)
Was not aware of any particular blizzard being in progress.
the_provider
30th August 2016, 09:41
I guess you opened it from a shared folder which you accessed over the internet?
What type of file was it?
That is correct, container was .avi and codec was DV.
Thank you.
wonkey_monkey
30th August 2016, 11:31
I see you say there was an Avisynth error. Did you try dragging the .avi directly onto VirtualDub?
the_provider
30th August 2016, 13:13
No, I used the open file option from the menu.
Thank you.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.