[FFmpeg-trac] #7918(ffmpeg:new): ffmpeg segfaults when trim or fade in complex filter is used with HLS

FFmpeg trac at avcodec.org
Wed May 22 23:52:44 EEST 2019


#7918: ffmpeg segfaults when trim or fade in complex filter is used with HLS
-------------------------------------+-------------------------------------
             Reporter:  pmiller      |                     Type:  defect
               Status:  new          |                 Priority:  important
            Component:  ffmpeg       |                  Version:  4.1
             Keywords:  HLS          |               Blocked By:
  filter_complex trim fade segfault  |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 I want to run a command with a complex filtergraph to trim/fade/scale and
 generate HLS output.
 My test input is a scaled down  Big Buck Bunny clip encoded in x264/aac,
 but it crashes on all the inputs I have tried.

 The full complex filter works when I generate two outputs.
     ffmpeg -y -nostats -hide_banner -i test.mp4 -filter_complex
 "[0:v]trim=1.00:duration=5.50,setpts=PTS-
 STARTPTS,fade=t=in:st=0:d=1.0,fade=t=out:st=1:d=1.0[v0];[0:a]atrim=1.00:duration=5.50,asetpts
 =PTS-
 STARTPTS,afade=t=in:st=0:d=1.0,afade=t=out:st=1:d=1.0[a0];[v0]split[ov0][ov01];[a0]asplit[oa0][oa1];[ov01]scale=iw*.5:-1[ov1]"
 -map "[ov0]" -map "[oa0]" -b:v:0 400k -b:a:0 96k -c:v:0 libx264 -c:a:0 aac
 av0.mp4 -map "[ov1]" -map "[oa1]" -b:v:1 197k -b:a:1 96k -c:v:1 libx264
 -c:a:1 aac av1.mp4

 If there is no trim or fade, I can scale the input and generate HLS
 manifests with fragmented mp4s.
     ffmpeg -y -nostats -hide_banner -i test.mp4 -filter_complex
 "[0:v]split[ov0][ov01];[0:a]asplit[oa0][oa1];[ov01]scale=iw*.5:-1[ov1]"
 -map "[ov0]" -map "[oa0]" -b:v:0 400k -b:a:0 96k -c:v:0 libx264 -c:a:0 aac
 -map "[ov1]" -map "[oa1]" -b:v:1 197k -b:a:1 96k -c:v:1 libx264 -c:a:1 aac
 -var_stream_map "v:0,a:0 v:1,a:1" -hls_time 6 -hls_segment_type fmp4 -f
 hls -hls_segment_filename segment_%v.mp4 -hls_flags single_file
 -master_pl_name av1.m3u8 variant_%v.m3u8

 If I add trim or fade to the filtergraph, I get a segfault instantly. I
 tried it with different inputs on MacOS(4.1.3 installed with brew) and
 ubuntu 16 (apt install).
 I ran with -report, but there is no information before the segfault.

 How to reproduce:
 {{{
 %ffmpeg -y -nostats -i test.mp4 -filter_complex
 "[0:v]trim=1.00:duration=5.50,setpts=PTS-
 STARTPTS,fade=t=in:st=0:d=1.0,fade=t=out:st=1:d=1.0[v0];[0:a]atrim=1.00:duration=5.50,asetpts
 =PTS-
 STARTPTS,afade=t=in:st=0:d=1.0,afade=t=out:st=1:d=1.0[a0];[v0]split[ov0][ov01];[a0]asplit[oa0][oa1];[ov01]scale=iw*.5:-1[ov1]"
 -map "[ov0]" -map "[oa0]" -b:v:0 400k -b:a:0 96k -c:v:0 libx264 -c:a:0 aac
 -map "[ov1]" -map "[oa1]" -b:v:1 197k -b:a:1 96k -c:v:1 libx264 -c:a:1 aac
 -var_stream_map "v:0,a:0 v:1,a:1" -hls_time 6 -hls_segment_type fmp4 -f
 hls -hls_segment_filename segment_%v.mp4 -hls_flags single_file
 -master_pl_name av1.m3u8 variant_%v.m3u8

 ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
   built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
   configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1_3 --enable-shared
 --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-
 avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay
 --enable-gpl --enable-libaom --enable-libmp3lame --enable-libopus
 --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx
 --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-
 libfontconfig --enable-libfreetype --enable-frei0r --enable-libass
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp
 --enable-libspeex --enable-videotoolbox --disable-libjack --disable-
 indev=jack
   libavutil      56. 22.100 / 56. 22.100
   libavcodec     58. 35.100 / 58. 35.100
   libavformat    58. 20.100 / 58. 20.100
   libavdevice    58.  5.100 / 58.  5.100
   libavfilter     7. 40.101 /  7. 40.101
   libavresample   4.  0.  0 /  4.  0.  0
   libswscale      5.  3.100 /  5.  3.100
   libswresample   3.  3.100 /  3.  3.100
   libpostproc    55.  3.100 / 55.  3.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     title           : Big Buck Bunny
     artist          : Peach Open Movie Team
     composer        : Sacha Goedegebure / Ton Roosendaal
     date            : 2008
     encoder         : Lavf56.25.101
     copyright       : © 2008 Blender Foundation | www.bigbuckbunny.org
   Duration: 00:09:56.50, start: 0.000000, bitrate: 664 kb/s
     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
 640x360, 528 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
 stereo, fltp, 128 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
 Stream mapping:
   Stream #0:0 (h264) -> trim
   Stream #0:1 (aac) -> atrim
   split:output0 -> Stream #0:0 (libx264)
   asplit:output0 -> Stream #0:1 (aac)
   scale -> Stream #0:2 (libx264)
   asplit:output1 -> Stream #0:3 (aac)
 Press [q] to stop, [?] for help
 [libx264 @ 0x7fcd73831c00] using cpu capabilities: MMX2 SSE2Fast SSSE3
 SSE4.2 AVX
 [libx264 @ 0x7fcd73831c00] profile High, level 3.0
 [libx264 @ 0x7fcd73831c00] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC
 codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options:
 cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1
 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1
 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=11
 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25
 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=400
 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
 [libx264 @ 0x7fcd73834600] using cpu capabilities: MMX2 SSE2Fast SSSE3
 SSE4.2 AVX
 [libx264 @ 0x7fcd73834600] profile High, level 1.3
 [libx264 @ 0x7fcd73834600] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC
 codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options:
 cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1
 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1
 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6
 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25
 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=197
 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
 [hls @ 0x7fcd73830000] Opening 'segment_0.mp4' for writing
 [hls @ 0x7fcd73830000] Opening 'segment_1.mp4' for writing
 Output #0, hls, to 'variant_%v.m3u8':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     title           : Big Buck Bunny
     artist          : Peach Open Movie Team
     composer        : Sacha Goedegebure / Ton Roosendaal
     date            : 2008
     copyright       : © 2008 Blender Foundation | www.bigbuckbunny.org
     encoder         : Lavf58.20.100
     Stream #0:0: Video: h264 (libx264), yuv420p, 640x360, q=-1--1, 400
 kb/s, 30 fps, 15360 tbn, 30 tbc
     Metadata:
       encoder         : Lavc58.35.100 libx264
     Side data:
       cpb: bitrate max/min/avg: 0/0/400000 buffer size: 0 vbv_delay: -1
     Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 96 kb/s
     Metadata:
       encoder         : Lavc58.35.100 aac
     Stream #0:2: Video: h264 (libx264), yuv420p, 320x180, q=-1--1, 197
 kb/s, 30 fps, 15360 tbn, 30 tbc
     Metadata:
       encoder         : Lavc58.35.100 libx264
     Side data:
       cpb: bitrate max/min/avg: 0/0/197000 buffer size: 0 vbv_delay: -1
     Stream #0:3: Audio: aac (LC), 44100 Hz, stereo, fltp, 96 kb/s
     Metadata:
       encoder         : Lavc58.35.100 aac
 [hls @ 0x7fcd73830000] Cannot use rename on non file protocol, this may
 lead to races and temporary partial files
 [hls @ 0x7fcd73830000] Opening 'variant_0.m3u8' for writing
 [hls @ 0x7fcd73830000] Opening 'variant_1.m3u8' for writing
 [hls @ 0x7fcd73830000] Opening 'av1.m3u8' for writing
 Segmentation fault: 11
 }}}

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


More information about the FFmpeg-trac mailing list