[FFmpeg-trac] #1147(undetermined:new): FFmpeg memory leak in last version.

FFmpeg trac at avcodec.org
Thu Mar 29 12:28:36 CEST 2012


#1147: FFmpeg memory leak in last version.
--------------------------------------+----------------------------------
             Reporter:  kriptha       |                     Type:  defect
               Status:  new           |                 Priority:  normal
            Component:  undetermined  |                  Version:  0.10.2
             Keywords:                |               Blocked By:
             Blocking:                |  Reproduced by developer:  0
Analyzed by developer:  0             |
--------------------------------------+----------------------------------
 Dear,

 First of all please excuse my bad english.

 i'm working with ffmpeg for a time and it seems that i 've found a memory
 leak bug.

    - I'm trying to capture a mpeg2ts stream and output only raw audio to a
 pipe or wav file.
    - The main problem I encounter is that ffmpeg each 5 seconds consumer a
 range of 116-128 K of ram memory more. It never stops of taking more and
 more memory.
    - The command line I'm using:
 {{{
 ffmpeg -y -v 9 -loglevel 99 -i http://10.42.43.200:1245 -vn -ar 32000 -ac
 2 -acodec pcm_s16le -f s16le test/test.raw
 }}}
 or
 {{{
 ffmpeg -y -v 9 -loglevel 99 -i http://10.42.43.200:1245 -vn -ar 32000 -ac
 2 -acodec pcm_s16le -f s16le -
 }}}
    - Full output:
 Well I have some outputs to attach.
 First I attach full ffmpeg output:
 {{{

 mark@******:~$ ffmpeg -y -v 9 -loglevel 99 -i http://10.42.43.200:1245 -vn
 -ar 32000 -ac 2 -acodec pcm_s16le -f s16le test/test.raw
 ffmpeg version N-39365-gc44417e Copyright (c) 2000-2012 the FFmpeg
 developers
   built on Mar 28 2012 16:34:14 with gcc 4.4.5
   configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall -g
 ' --enable-shared --enable-libmp3lame --enable-gpl --enable-libvorbis
 --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc
 --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-
 amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex
 --enable-nonfree --disable-stripping --enable-avfilter --enable-libdirac
 --disable-decoder=libdirac --enable-libschroedinger --disable-
 encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-
 libvpx --enable-librtmp --extra-libs=-lgcrypt --disable-altivec --disable-
 armv5te --disable-armv6 --disable-vis
   libavutil      51. 44.100 / 51. 44.100
   libavcodec     54. 12.100 / 54. 12.100
   libavformat    54.  3.100 / 54.  3.100
   libavdevice    53.  4.100 / 53.  4.100
   libavfilter     2. 66.100 /  2. 66.100
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0. 10.100 /  0. 10.100
   libpostproc    52.  0.100 / 52.  0.100
 [ogg @ 0x106f380] Format ogg probed with size=2048 and score=100
 [ogg @ 0x106f380] Codec not found
 st:4 removing common factor 400000 from timebase
 [mpeg2video @ 0x1078c20] mpeg_decode_postinit() failure
     Last message repeated 4 times
 [ogg @ 0x106f380] max_analyze_duration 5000000 reached at 5016000
 [ogg @ 0x106f380] Could not find codec parameters (Unknown: none)
 rfps: 24.916667 0.015788
 rfps: 25.000000 0.000000
 rfps: 25.083333 0.015788
 rfps: 49.916667 0.015788
     Last message repeated 1 times
 rfps: 50.000000 0.000000
     Last message repeated 1 times
 rfps: 50.083333 0.015788
     Last message repeated 1 times
 [ogg @ 0x106f380] Estimating duration from bitrate, this may be inaccurate
 Input #0, ogg, from 'http://10.42.43.200:1245':
   Duration: N/A, start: 0.000000, bitrate: 15352 kb/s
     Stream #0:0, 0, 1/1000000: Unknown: none
     Stream #0:1, 211, 1/48000: Audio: mp2, 48000 Hz, 1 channels, s16, 96
 kb/s
     Stream #0:2, 210, 1/48000: Audio: mp2, 48000 Hz, 1 channels, s16, 96
 kb/s
     Stream #0:3, 207, 1/48000: Audio: mp2, 48000 Hz, 2 channels, s16, 160
 kb/s
     Stream #0:4, 125, 1/25: Video: mpeg2video (Main) (mpgv / 0x7667706D),
 yuv420p, 720x576 [SAR 64:45 DAR 16:9], 1/50, 15000 kb/s, 25 fps, 25 tbr,
 25 tbn, 50 tbc
 Output #0, s16le, to 'test/test.raw':
   Metadata:
     encoder         : Lavf54.3.100
     Stream #0:0, 0, 1/90000: Audio: pcm_s16le, 32000 Hz, 2 channels, s16,
 1024 kb/s
 Stream mapping:
   Stream #0:3 -> #0:0 (mp2 -> pcm_s16le)
 Press [q] to stop, [?] for help
 size=   53841kB time=07:47:12.21 bitrate=  15.7kbits/s
 video:0kB audio:53841kB global headers:0kB muxing overhead 0.000000%
 Received signal 2: terminating.
 }}}
 I also took time to take a output from the memory is consuming every 5
 seconds and the difference between last read:
 {{{

 mark@******:~$ j=0 ; while true ; do pid=`ps aux | grep ffmpeg | grep -v
 grep | awk '{print $2}'` ; i=`ps aux | grep /home/mark/ffmpeg | grep -v
 grep | awk '{print $6}'` ; let diff=$i-$j ; echo -e "Pid $pid uses memory
 $i , diff: $diff" ; j=$i ; sleep 5 ; done
 Pid 7836 uses memory 10684 , diff: 10684
 Pid 7836 uses memory 10684 , diff: 0
 Pid 7836 uses memory 10684 , diff: 0
 Pid 7836 uses memory 10684 , diff: 0
 Pid 7836 uses memory 11740 , diff: 1056
 Pid 7836 uses memory 11856 , diff: 116
 Pid 7836 uses memory 11976 , diff: 120
 Pid 7836 uses memory 12092 , diff: 116
 Pid 7836 uses memory 12208 , diff: 116
 Pid 7836 uses memory 12328 , diff: 120
 Pid 7836 uses memory 12448 , diff: 120
 Pid 7836 uses memory 12564 , diff: 116
 Pid 7836 uses memory 12684 , diff: 120
 Pid 7836 uses memory 12800 , diff: 116
 Pid 7836 uses memory 12916 , diff: 116
 Pid 7836 uses memory 13032 , diff: 116
 Pid 7836 uses memory 13156 , diff: 124
 Pid 7836 uses memory 13272 , diff: 116
 Pid 7836 uses memory 13388 , diff: 116
 Pid 7836 uses memory 13508 , diff: 120
 Pid 7836 uses memory 13624 , diff: 116
 Pid 7836 uses memory 13740 , diff: 116
 Pid 7836 uses memory 13860 , diff: 120
 Pid 7836 uses memory 13980 , diff: 120
 Pid 7836 uses memory 14096 , diff: 116
 Pid 7836 uses memory 14216 , diff: 120
 Pid 7836 uses memory 14332 , diff: 116
 Pid 7836 uses memory 14448 , diff: 116
 Pid 7836 uses memory 14572 , diff: 124
 Pid 7836 uses memory 14688 , diff: 116
 Pid 7836 uses memory 14804 , diff: 116
 Pid 7836 uses memory 14920 , diff: 116
 Pid 7836 uses memory 15040 , diff: 120
 Pid 7836 uses memory 15156 , diff: 116
 Pid 7836 uses memory 15276 , diff: 120
 Pid 7836 uses memory 15396 , diff: 120
 Pid 7836 uses memory 15512 , diff: 116
 Pid 7836 uses memory 15628 , diff: 116
 Pid 7836 uses memory 15748 , diff: 120
 Pid 7836 uses memory 15868 , diff: 120
 Pid 7836 uses memory 15984 , diff: 116
 Pid 7836 uses memory 16104 , diff: 120
 Pid 7836 uses memory 16220 , diff: 116
 Pid 7836 uses memory 16336 , diff: 116
 Pid 7836 uses memory 16452 , diff: 116
 Pid 7836 uses memory 16576 , diff: 124
 Pid 7836 uses memory 16692 , diff: 116
 Pid 7836 uses memory 16808 , diff: 116
 Pid 7836 uses memory 16928 , diff: 120
 Pid 7836 uses memory 17044 , diff: 116
 Pid 7836 uses memory 17160 , diff: 116
 }}}
 And here I have a similar output after running for 10 hours (memory is
 taking 657292K):
 {{{
 Pid 762 uses memory 651164 , diff: 120
 Pid 762 uses memory 651284 , diff: 120
 Pid 762 uses memory 651400 , diff: 116
 Pid 762 uses memory 651516 , diff: 116
 Pid 762 uses memory 651636 , diff: 120
 Pid 762 uses memory 651752 , diff: 116
 Pid 762 uses memory 651872 , diff: 120
 Pid 762 uses memory 651992 , diff: 120
 Pid 762 uses memory 652108 , diff: 116
 Pid 762 uses memory 652224 , diff: 116
 Pid 762 uses memory 652340 , diff: 116
 Pid 762 uses memory 652460 , diff: 120
 Pid 762 uses memory 652580 , diff: 120
 Pid 762 uses memory 652696 , diff: 116
 Pid 762 uses memory 652816 , diff: 120
 Pid 762 uses memory 652932 , diff: 116
 Pid 762 uses memory 653048 , diff: 116
 Pid 762 uses memory 653168 , diff: 120
 Pid 762 uses memory 653288 , diff: 120
 Pid 762 uses memory 653404 , diff: 116
 Pid 762 uses memory 653524 , diff: 120
 Pid 762 uses memory 653640 , diff: 116
 Pid 762 uses memory 653756 , diff: 116
 Pid 762 uses memory 653880 , diff: 124
 Pid 762 uses memory 653996 , diff: 116
 Pid 762 uses memory 654112 , diff: 116
 Pid 762 uses memory 654228 , diff: 116
 Pid 762 uses memory 654348 , diff: 120
 Pid 762 uses memory 654464 , diff: 116
 Pid 762 uses memory 654584 , diff: 120
 Pid 762 uses memory 654704 , diff: 120
 Pid 762 uses memory 654820 , diff: 116
 Pid 762 uses memory 654936 , diff: 116
 Pid 762 uses memory 655056 , diff: 120
 Pid 762 uses memory 655176 , diff: 120
 Pid 762 uses memory 655292 , diff: 116
 Pid 762 uses memory 655412 , diff: 120
 Pid 762 uses memory 655528 , diff: 116
 Pid 762 uses memory 655644 , diff: 116
 Pid 762 uses memory 655760 , diff: 116
 Pid 762 uses memory 655884 , diff: 124
 Pid 762 uses memory 656000 , diff: 116
 Pid 762 uses memory 656116 , diff: 116
 Pid 762 uses memory 656236 , diff: 120
 Pid 762 uses memory 656352 , diff: 116
 Pid 762 uses memory 656468 , diff: 116
 Pid 762 uses memory 656592 , diff: 124
 Pid 762 uses memory 656708 , diff: 116
 Pid 762 uses memory 656824 , diff: 116
 Pid 762 uses memory 656944 , diff: 120
 Pid 762 uses memory 657060 , diff: 116
 Pid 762 uses memory 657176 , diff: 116
 Pid 762 uses memory 657292 , diff: 116
 }}}

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


More information about the FFmpeg-trac mailing list