[FFmpeg-trac] #1263(FFmpeg:new): ffmpeg keeps the output file in memory and only writes it to disk after [q]uitting

FFmpeg trac at avcodec.org
Sun Apr 29 22:59:24 CEST 2012


#1263: ffmpeg keeps the output file in memory and only writes it to disk after
[q]uitting
-------------------------------------+-------------------------------------
             Reporter:  pmts         |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  FFmpeg       |                  Version:  git-
             Keywords:  memory dts   |  master
  mkv                                |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Tested with current git and 0.10.2.

 This seems to happen with one particular input file. I'm trying to remux
 that file using ffmpeg while transcoding a dts track into ac3. This
 transcoding seems to trigger the bug. While encoding ffmpeg started
 allocating huge amounts of memory, on the order of 100MB/s. At first I
 thought it's a memory leak, bu then I noticed it's keeping the output file
 in memory and only writes it to disk after I tell it to stop.

 My command line:

 {{{ffmpeg -i The.Good.the.Bad.and.the.Ugly.1966.720p.BluRay.HQF.mkv
 -vcodec copy -acodec ac3 -ab 448k -map 0:v -map 0:2 -map 0:6 -map 0:7 -map
 0:8 -map 0:9 -scodec copy
 /mnt/auto/megamagazyn/filmy/The.Good.the.Bad.and.the.Ugly.1966.720p.BluRay.HQF.mkv}}}

 0.10.2 didn't print any errors/warnings, but current git floods the screen
 with the following:

 {{{
 DTS 15936, next:15984666 st:2 invalid dropping
 PTS 15936, next:15984666 invalid dropping st:2
 DTS 15946, next:15995332 st:2 invalid dropping
 PTS 15946, next:15995332 invalid dropping st:2
 DTS 15956, next:16005998 st:2 invalid dropping
 PTS 15956, next:16005998 invalid dropping st:2
 DTS 15966, next:16016664 st:2 invalid dropping
 PTS 15966, next:16016664 invalid dropping st:2
 DTS 15976, next:16027330 st:2 invalid dropping
 PTS 15976, next:16027330 invalid dropping st:2
 DTS 15986, next:16037996 st:2 invalid dropping
 PTS 15986, next:16037996 invalid dropping st:2
 DTS 15996, next:16048662 st:2 invalid dropping
 PTS 15996, next:16048662 invalid dropping st:2
 DTS 16006, next:16059328 st:2 invalid dropping
 PTS 16006, next:16059328 invalid dropping st:2
 DTS 16021, next:16069994 st:2 invalid dropping
 PTS 16021, next:16069994 invalid dropping st:2
 DTS 16031, next:16080660 st:2 invalid dropping
 PTS 16031, next:16080660 invalid dropping st:2
 }}}

 I'll attach a full verbose log, where I let it run for a couple of seconds
 and pressed 'q'.

 I also noticed, that if I only give it {{{-c copy -map 0}}}, it quits
 immediately with the following error:
 {{{
 DTS 15936, next:15974000 st:2 invalid dropping
 PTS 15936, next:15974000 invalid dropping st:2
 [matroska @ 0x111f910] Application provided invalid, non monotonically
 increasing dts to muxer in stream 2: 15974 >= 15974
 av_interleaved_write_frame(): Invalid argument
 }}}

 {{{
 $ ffmpeg -v 9 -loglevel 99 -i
 The.Good.the.Bad.and.the.Ugly.1966.720p.BluRay.HQF.mkv
 ffmpeg version N-40215-g46eba43 Copyright (c) 2000-2012 the FFmpeg
 developers
   built on Apr 29 2012 22:20:13 with gcc 4.6.2
   configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64
 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc
 --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-O2
 -march=native -pipe -ggdb' --extra-cflags='-O2 -march=native -pipe -ggdb'
 --extra-cxxflags='-O2 -march=native -pipe -ggdb' --disable-static
 --enable-gpl --enable-version3 --enable-postproc --enable-avfilter
 --disable-stripping --disable-debug --disable-doc --disable-network
 --enable-libmp3lame --enable-libvo-aacenc --enable-libvo-amrwbenc
 --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid
 --enable-libfaac --enable-nonfree --enable-openal --disable-indev=v4l
 --disable-indev=v4l2 --disable-indev=oss --disable-indev=jack --enable-
 x11grab --enable-libpulse --disable-outdev=oss --enable-fontconfig
 --enable-libfreetype --enable-pthreads --enable-libopencore-amrwb
 --enable-libopencore-amrnb --enable-libbluray --enable-libschroedinger
 --disable-amd3dnow --disable-amd3dnowext --disabl  libavutil      51.
 48.100 / 51. 48.100
   libavcodec     54. 17.101 / 54. 17.101
   libavformat    54.  3.100 / 54.  3.100
   libavdevice    53.  4.100 / 53.  4.100
   libavfilter     2. 72.100 /  2. 72.100
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0. 11.100 /  0. 11.100
   libpostproc    52.  0.100 / 52.  0.100
 [matroska,webm @ 0x20e1560] Format matroska,webm probed with size=2048 and
 score=100
 st:0 removing common factor 1000000 from timebase
 st:1 removing common factor 1000000 from timebase
 st:2 removing common factor 1000000 from timebase
 st:3 removing common factor 1000000 from timebase
 st:4 removing common factor 1000000 from timebase
 st:5 removing common factor 1000000 from timebase
 st:6 removing common factor 1000000 from timebase
 [matroska,webm @ 0x20e1560] File position before
 avformat_find_stream_info() is 369052
 [h264 @ 0x20e57b0] no picture
 [dca @ 0x20e6400] Stream with high frequencies VQ coding
 [h264 @ 0x20e57b0] no picture
 [matroska,webm @ 0x20e1560] All info found
 [matroska,webm @ 0x20e1560] File position after
 avformat_find_stream_info() is 853537
 Input #0, matroska,webm, from
 'The.Good.the.Bad.and.the.Ugly.1966.720p.BluRay.HQF.mkv':
   Metadata:
     title           : HQ-Films
     creation_time   : 2009-04-10 09:35:30
   Duration: 02:58:42.17, start: 0.000000, bitrate: 6743 kb/s
     Stream #0:0(eng), 3, 1/1000: Video: h264 (High), yuv420p, 1280x544,
 417083/20000000, SAR 1:1 DAR 40:17, 23.98 fps, 23.98 tbr, 1k tbn, 47.95
 tbc (default)
     Stream #0:1(rus), 8, 1/1000: Audio: ac3, 48000 Hz, 5.1(side), s16, 384
 kb/s (default)
     Metadata:
       title           : Многоголосый
     Stream #0:2(eng), 8, 1/1000: Audio: dts (DTS), 48000 Hz, 5.1(side),
 s16, 1536 kb/s
     Metadata:
       title           : Main Audio
     Stream #0:3(eng), 8, 1/1000: Audio: vorbis, 48000 Hz, stereo, s16
     Metadata:
       title           : Commentary Track 1
     Stream #0:4(eng), 8, 1/1000: Audio: vorbis, 48000 Hz, stereo, s16
     Metadata:
       title           : Commentary Track 2
     Stream #0:5(rus), 0, 1/1000: Subtitle: text
     Stream #0:6(eng), 0, 1/1000: Subtitle: ssa
     Stream #0:7, 0, 1/90000: Attachment: ttf
     Metadata:
       filename        : CronosPro-Bold.ttf
       mimetype        : application/x-truetype-font
     Stream #0:8, 0, 1/90000: Attachment: ttf
     Metadata:
       filename        : CronosPro-Semibold.ttf
       mimetype        : application/x-truetype-font
     Stream #0:9, 0, 1/90000: Attachment: ttf
     Metadata:
       filename        : CronosPro-SemiboldIt.ttf
       mimetype        : application/x-truetype-font
 At least one output file must be specified

 }}}

 The funniest part? The (partial) output file plays perfectly fine, at
 least in mplayer2.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1263>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list