[FFmpeg-user] ffmpeg serving to Avisynth
francois.visagie at gmail.com
Tue Sep 15 12:39:30 CEST 2015
> -----Original Message-----
> From: ffmpeg-user [mailto:ffmpeg-user-bounces at ffmpeg.org] On Behalf Of
> Frank Tetzel
> Sent: 14 September 2015 21:40
> To: ffmpeg-user at ffmpeg.org
> Subject: Re: [FFmpeg-user] ffmpeg serving to Avisynth
> > > What processing do you want to do with ffmpeg?
> > At a minimum I foresee concatenating input files with it. My current
> > project has 350+ video files. Avisynth cannot work with more than 25
> > - 35 without crashing. I have not found an Avisynth mechanism for
> > concatenating files that preserves audio.
> There are multiple ways to concatenate files depending on the input codecs
> and what other processing you want to do with it . Not sure if it handles
> hundreds of input files well enough.
> > > And why do you want to
> > > send it over tcp, if that's what TCPSource reads (not an avisynth
> > > user)?
> > To avoid intermediate storage. Workspace for this project is 2TB.
> > Each additional version of the project is currently ~700GB. Some form
> > of inter-process communication is required to avoid intermediate
> > storage. TCPSource() seems the only type of built-in IPC input
> > Avisynth supports.
> I don't know which data layout they expect in TCPSource and if it is in any
> way compatible with the tcp output protocol in ffmpeg, or any other
> protocol. I know this was your question in the first place but i can't help you
> there. You could play around and just try to connect .
On the premise that Avisynth would expect similar input via TCPSource() than it produces via frame-serving, I noted its video and audio formats when serving to ffmpeg and specified those codecs for the most likely-looking protocol, tcp.
Then came the issue of which format to specify for the tcp protocol. ffmpeg reports Avisynth's input format as 'avisynth', which the former does not support as an output format. I tried a couple of likely-looking candidates, mostly the 'raw' ones. With some, e.g. 'rawvideo':
ffmpeg -y -i 00000.MTS -c:v rawvideo -c:a pcm_s16le -f rawvideo tcp://127.0.0.1:22050?listen
ffmpeg and Avisynth would connect and ffmpeg would in fact start serving. After a short while, however, Avisynth would crash out and ffmpeg would terminate with
av_interleaved_write_frame(): Unknown error
This seems to indicate at least format incompatibility, and perhaps initial connection set-up also.
> There's also some avisynth support in ffmpeg . As i never used it i don't
> know about its capabilities.
> What are you doing after processing with avisynth? Do you pipe it back into
> ffmpeg for encoding? Can't you use built-in filters  instead of an avisynth
>  http://avisynth.nl/index.php/TCPServer
>  http://ffmpeg.org/ffmpeg-protocols.html#tcp
>  http://www.ffmpeg.org/faq.html#How-can-I-read-DirectShow-files_003f
>  http://trac.ffmpeg.org/wiki/Concatenate
>  http://ffmpeg.org/ffmpeg-filters.html#Description
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
More information about the ffmpeg-user