[FFmpeg-trac] #2319(avformat:new): Using concat demuxer with truncated mp4 (mpeg2video, pcm_s16be) leads to infinite loop
FFmpeg
trac at avcodec.org
Sun Mar 3 14:44:51 CET 2013
#2319: Using concat demuxer with truncated mp4 (mpeg2video,pcm_s16be) leads to
infinite loop
------------------------------------+------------------------------------
Reporter: ls | Owner:
Type: defect | Status: new
Priority: normal | Component: avformat
Version: git-master | Resolution:
Keywords: concat | Blocked By:
Blocking: | Reproduced by developer: 1
Analyzed by developer: 1 |
------------------------------------+------------------------------------
Changes (by Cigaes):
* analyzed: 0 => 1
* keywords: => concat
* version: 1.1.3 => git-master
* component: FFmpeg => avformat
* reproduced: 0 => 1
Comment:
This is the expected behaviour (but changing it can be considered). The
problem is that the headers of your file declare a duration different from
the actual duration of the data present in the file. The concat demuxer
relies on the duration declared by the file.
More precisely, your file declares a duration of ~820 seconds, but
contains only ~23 seconds.
At the end of the first file, ffmpeg is not stuck, it is just encoding
820-23 = 797 seconds of still image. This happens because you chose to
output to MP4, and libavformat does not support variable frame rate in
this format. Wait long enough and it will start encoding the next file.
Output to Matroska (lavf supports VFR in Matroska) and it will not happen;
instead, you will get a big gap in the timestamps.
If you do not want the gap / long still image, you need to document the
correct duration. Either use a proper tool for cutting the file, so that
the duration is correctly set in the headers, or use the {{{duration}}}
directive in the concat script to override the value in the file.
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2319#comment:1>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list