[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