[FFmpeg-user] Using -filter_complex instead of lavfi with amerge hangs.
nichot20 at yahoo.com
Tue Jun 26 16:42:47 CEST 2012
On 26/06/12 15:17, Nicolas George wrote:
> Le nonidi 9 messidor, an CCXX, Tim Nicholson a écrit :
>> On 26/06/12 11:54, Nicolas George wrote:
>>> I need to add examples for amerge with -filter_complex. The syntax should be
>>> something like that:
>>> -i LTA01631701.mxf -filter_complex '[0.1] [0.2] amerge [audio]' \
>>> -map 0.0 -map '[audio]'
>> Hmmm. something is still not right.
>> ffmpeg -i LTA01631701.mxf -filter_complex "
>> [0:1] [0:2] amerge [audio]" \
>> -map 0:0 -map '[audio]' \
>> -c:v dvvideo -pix_fmt yuv420p \
>> -c:a pcm_s16le -ar 48k -ac 2 \
>> -t 10 -y ./LTA01631701-4-1.mov
>> leads to:-
>> Stream mapping:
>> Stream #0:1 (pcm_s24le) -> amerge: (graph 0)
>> Stream #0:2 (pcm_s24le) -> amerge: (graph 0)
>> Stream #0:0 -> #0:0 (rawvideo -> dvvideo)
>> amerge (graph 0) -> Stream #0:1 (pcm_s16le)
>> and now immediately gives me the progress line which runs at the
>> expected speed....
>> frame= 250 fps= 28 q=0.0 Lsize= 37035kB time=00:00:10.00
>> but then hangs after the last frame and eventually returns a:-
>> 8424 Killed ffmpeg -i.......
>> In the meantime kernel CPU goes through the roof, as does swap usage.
> This shows that frames are accumulating in the graph, probably in its
> inputs. You can avoid swap usage by limiting the total address space ffmpeg
> is allowed to use.
> That is part of the problem that needs fixing. Can you check that
> all streams of your input video have the same length?
Not sure about that as the original file is huge, *but* all streams were
definitely longer than the 10 seconds I was asking it to encode.
However doing a first pass to make a 10 second 4 track mov from the
original file, and then using the above syntax completed successfully.
So is it that the streams are of different length (unlikely since I
wasn't taking the whole file) or the -t 10, or something to do with the
interleave on the original file?
More information about the ffmpeg-user