[FFmpeg-trac] #4790(undetermined:new): Error in `ffmpeg': double free or corruption with -segment

FFmpeg trac at avcodec.org
Fri Aug 21 11:48:25 CEST 2015


#4790: Error in `ffmpeg': double free or corruption with -segment
-------------------------------------+-------------------------------------
             Reporter:  hackeron     |                     Type:  defect
               Status:  new          |                 Priority:  important
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 I'm using git-2015-08-14-a604289. It seems when I add the -segment option
 while transcoding, I am getting a double free or corruption and ffmpeg
 dies :(

 How to reproduce:
 {{{
 $ ffmpeg -use_wallclock_as_timestamps 1 -loglevel debug -an
 -rtsp_transport tcp -i rtsp://127.0.0.1:10105/proxyStream -dn -map 0
 -pix_fmt yuv420p -codec:v libx264 -preset ultrafast -crf 30.0 -f segment
 -segment_time 60 -segment_wrap 10 -segment_list_flags live
 -segment_list_size 10 -reset_timestamps 1 -segment_list
 52797b29c5399f4bf505e3d7.csv -y 52797b29c5399f4bf505e3d7_%02d.mkv
 ffmpeg version git-2015-08-14-a604289 Copyright (c) 2000-2015 the FFmpeg
 developers
   built with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
   configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl
 --enable-nonfree --enable-shared --enable-pic
   libavutil      54. 30.100 / 54. 30.100
   libavcodec     56. 57.100 / 56. 57.100
   libavformat    56. 40.101 / 56. 40.101
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5. 33.100 /  5. 33.100
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  2.101 /  1.  2.101
   libpostproc    53.  3.100 / 53.  3.100
 Splitting the commandline.
 Reading option '-use_wallclock_as_timestamps' ... matched as AVOption
 'use_wallclock_as_timestamps' with argument '1'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument 'debug'.
 Reading option '-an' ... matched as option 'an' (disable audio) with
 argument '1'.
 Reading option '-rtsp_transport' ... matched as AVOption 'rtsp_transport'
 with argument 'tcp'.
 Reading option '-i' ... matched as input file with argument
 'rtsp://127.0.0.1:10105/proxyStream'.
 Reading option '-dn' ... matched as option 'dn' (disable data) with
 argument '1'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0'.
 Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel
 format) with argument 'yuv420p'.
 Reading option '-codec:v' ... matched as option 'codec' (codec name) with
 argument 'libx264'.
 Reading option '-preset' ... matched as AVOption 'preset' with argument
 'ultrafast'.
 Reading option '-crf' ... matched as AVOption 'crf' with argument '30.0'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'segment'.
 Reading option '-segment_time' ... matched as AVOption 'segment_time' with
 argument '60'.
 Reading option '-segment_wrap' ... matched as AVOption 'segment_wrap' with
 argument '10'.
 Reading option '-segment_list_flags' ... matched as AVOption
 'segment_list_flags' with argument 'live'.
 Reading option '-segment_list_size' ... matched as AVOption
 'segment_list_size' with argument '10'.
 Reading option '-reset_timestamps' ... matched as AVOption
 'reset_timestamps' with argument '1'.
 Reading option '-segment_list' ... matched as AVOption 'segment_list' with
 argument '52797b29c5399f4bf505e3d7.csv'.
 Reading option '-y' ... matched as option 'y' (overwrite output files)
 with argument '1'.
 Reading option '52797b29c5399f4bf505e3d7_%02d.mkv' ... matched as output
 file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option loglevel (set logging level) with argument debug.
 Applying option y (overwrite output files) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input file rtsp://127.0.0.1:10105/proxyStream.
 Applying option an (disable audio) with argument 1.
 Successfully parsed a group of options.
 Opening an input file: rtsp://127.0.0.1:10105/proxyStream.
 [rtsp @ 0x1890880] SDP:
 v=0
 o=- 1440149753036288 1 IN IP4 192.168.0.2
 s=LIVE555 Streaming Media v2015.08.07
 i=LIVE555 Streaming Media v2015.08.07
 t=0 0
 a=tool:LIVE555 Streaming Media v2015.08.07
 a=type:broadcast
 a=control:*
 a=range:npt=0-
 a=x-qt-text-nam:LIVE555 Streaming Media v2015.08.07
 a=x-qt-text-inf:LIVE555 Streaming Media v2015.08.07
 m=video 0 RTP/AVP 96
 c=IN IP4 0.0.0.0
 b=AS:3000
 a=rtpmap:96 MP4V-ES/90000
 a=fmtp:96 profile-level-
 id=1;config=000001B001000001B5090000010000000120008C4007A8A021E0A31F
 a=control:track1

 Failed to parse interval end specification ''
 [rtsp @ 0x1890880] video codec set to: mpeg4
 [rtsp @ 0x1890880] hello state=0
 Failed to parse interval end specification ''
 [mpeg4 @ 0x18935e0] warning: first frame is no keyframe
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521537465
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521541293
 [rtsp @ 0x1890880] All info found
 Input #0, rtsp, from 'rtsp://127.0.0.1:10105/proxyStream':
   Metadata:
     title           : LIVE555 Streaming Media v2015.08.07
     comment         : LIVE555 Streaming Media v2015.08.07
   Duration: N/A, start: 1440150239.305167, bitrate: N/A
     Stream #0:0, 3, 1/90000: Video: mpeg4 (Simple Profile), 1 reference
 frame, yuv420p(left), 640x480 [SAR 10:11 DAR 40:33], 1/30, 30 fps, 30 tbr,
 90k tbn, 30 tbc
 Successfully opened the file.
 Parsing a group of options: output file 52797b29c5399f4bf505e3d7_%02d.mkv.
 Applying option dn (disable data) with argument 1.
 Applying option map (set input stream mapping) with argument 0.
 Applying option pix_fmt (set pixel format) with argument yuv420p.
 Applying option codec:v (codec name) with argument libx264.
 Applying option f (force format) with argument segment.
 Successfully parsed a group of options.
 Opening an output file: 52797b29c5399f4bf505e3d7_%02d.mkv.
 Successfully opened the file.
 detected 4 logical cores
 [graph 0 input from stream 0:0 @ 0x18b1000] Setting 'video_size' to value
 '640x480'
 [graph 0 input from stream 0:0 @ 0x18b1000] Setting 'pix_fmt' to value '0'
 [graph 0 input from stream 0:0 @ 0x18b1000] Setting 'time_base' to value
 '1/90000'
 [graph 0 input from stream 0:0 @ 0x18b1000] Setting 'pixel_aspect' to
 value '10/11'
 [graph 0 input from stream 0:0 @ 0x18b1000] Setting 'sws_param' to value
 'flags=2'
 [graph 0 input from stream 0:0 @ 0x18b1000] Setting 'frame_rate' to value
 '30/1'
 [graph 0 input from stream 0:0 @ 0x18b1000] w:640 h:480 pixfmt:yuv420p
 tb:1/90000 fr:30/1 sar:10/11 sws_param:flags=2
 [format @ 0x18b0c20] compat: called with args=[yuv420p]
 [format @ 0x18b0c20] Setting 'pix_fmts' to value 'yuv420p'
 [AVFilterGraph @ 0x18b1580] query_formats: 4 queried, 3 merged, 0 already
 done, 0 delayed
 [libx264 @ 0x1956720] using mv_range_thread = 40
 [libx264 @ 0x1956720] using SAR=10/11
 [libx264 @ 0x1956720] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
 SlowShuffle
 [libx264 @ 0x1956720] profile Constrained Baseline, level 3.0
 [libx264 @ 0x1956720] 264 - core 148 r2 73ae2d1 - H.264/MPEG-4 AVC codec -
 Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0
 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00
 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0
 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6
 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250
 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=30.0
 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
 [segment @ 0x18afe80] Selected stream id:0 type:video
 Output #0, segment, to '52797b29c5399f4bf505e3d7_%02d.mkv':
   Metadata:
     title           : LIVE555 Streaming Media v2015.08.07
     comment         : LIVE555 Streaming Media v2015.08.07
     encoder         : Lavf56.40.101
     Stream #0:0, 0, 1/1000: Video: h264 (libx264), -1 reference frame,
 yuv420p(left), 640x480 [SAR 10:11 DAR 40:33], 1/30, q=-1--1, 30 fps, 1k
 tbn, 30 tbc
     Metadata:
       encoder         : Lavc56.57.100 libx264
 Stream mapping:
   Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))
 Press [q] to stop, [?] for help
 [mpeg4 @ 0x1e5dec0] warning: first frame is no keyframe
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521544911
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521548510
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521552125
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521555717
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521559328
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521562932
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521566530
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521570194
 [rtsp @ 0x1890880] invalid dts/pts combination 129613521573837
 Past duration 0.915993 too large
 [libx264 @ 0x1956720] frame=   0 QP=27.00 NAL=3 Slice:I Poc:0   I:1200 P:0
 SKIP:0    size=919 bytes
 [segment @ 0x18afe80] segment:'52797b29c5399f4bf505e3d7_00.mkv' starts
 with packet stream:0 pts:0 pts_time:0 frame:0
 [segment @ 0x18afe80] stream:0 start_pts_time:0 pts:0 pts_time:0 dts:0
 dts_time:0 -> pts:0 pts_time:0 dts:0 dts_time:0
 [matroska @ 0x1e6b520] Writing block at offset 813, size 1515, pts 0, dts
 0, duration 33, keyframe 1
 *** Error in `ffmpeg': double free or corruption (fasttop):
 0x0000000001954ea0 ***
 Aborted (core dumped)
 }}}

  For example if I remove the segments stuff, it works correctly:

 {{{
 ffmpeg -use_wallclock_as_timestamps 1 -an -rtsp_transport tcp -i
 rtsp://127.0.0.1:10105/proxyStream -dn -map 0 -pix_fmt yuv420p -codec:v
 libx264 -preset ultrafast -crf 30.0 -y asd.mkv
 ffmpeg version git-2015-08-14-a604289 Copyright (c) 2000-2015 the FFmpeg
 developers
   built with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
   configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl
 --enable-nonfree --enable-shared --enable-pic
   libavutil      54. 30.100 / 54. 30.100
   libavcodec     56. 57.100 / 56. 57.100
   libavformat    56. 40.101 / 56. 40.101
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5. 33.100 /  5. 33.100
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  2.101 /  1.  2.101
   libpostproc    53.  3.100 / 53.  3.100
 [mpeg4 @ 0x20bf3e0] warning: first frame is no keyframe
 Input #0, rtsp, from 'rtsp://127.0.0.1:10105/proxyStream':
   Metadata:
     title           : LIVE555 Streaming Media v2015.08.07
     comment         : LIVE555 Streaming Media v2015.08.07
   Duration: N/A, start: 1440150366.212056, bitrate: N/A
     Stream #0:0: Video: mpeg4 (Simple Profile), yuv420p, 640x480 [SAR
 10:11 DAR 40:33], 30 fps, 30 tbr, 90k tbn, 30 tbc
 [libx264 @ 0x2184040] using SAR=10/11
 [libx264 @ 0x2184040] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
 SlowShuffle
 [libx264 @ 0x2184040] profile Constrained Baseline, level 3.0
 [libx264 @ 0x2184040] 264 - core 148 r2 73ae2d1 - H.264/MPEG-4 AVC codec -
 Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0
 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00
 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0
 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6
 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250
 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=30.0
 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
 Output #0, matroska, to 'asd.mkv':
   Metadata:
     title           : LIVE555 Streaming Media v2015.08.07
     comment         : LIVE555 Streaming Media v2015.08.07
     encoder         : Lavf56.40.101
     Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv420p,
 640x480 [SAR 10:11 DAR 40:33], q=-1--1, 30 fps, 1k tbn, 30 tbc
     Metadata:
       encoder         : Lavc56.57.100 libx264
 Stream mapping:
   Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))
 Press [q] to stop, [?] for help
 [mpeg4 @ 0x2693940] warning: first frame is no keyframe
 Past duration 0.926323 too large
 frame=   49 fps= 23 q=-1.0 Lsize=     208kB time=00:00:02.00 bitrate=
 850.0kbits/s dup=0 drop=1
 video:206kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.561731%
 [libx264 @ 0x2184040] frame I:1     Avg QP:27.00  size:  4042
 [libx264 @ 0x2184040] frame P:48    Avg QP:26.83  size:  4306
 [libx264 @ 0x2184040] mb I  I16..4: 100.0%  0.0%  0.0%
 [libx264 @ 0x2184040] mb P  I16..4:  2.7%  0.0%  0.0%  P16..4: 39.4%  0.0%
 0.0%  0.0%  0.0%    skip:57.8%
 [libx264 @ 0x2184040] coded y,uvDC,uvAC intra: 52.6% 22.7% 7.1% inter:
 16.5% 6.1% 1.3%
 [libx264 @ 0x2184040] i16 v,h,dc,p: 54% 18% 20%  7%
 [libx264 @ 0x2184040] i8c dc,h,v,p: 74% 13% 11%  2%
 [libx264 @ 0x2184040] kb/s:842.86
 Exiting normally, received signal 2.
 }}}

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


More information about the FFmpeg-trac mailing list