Opened 5 years ago

Closed 5 years ago

#7631 closed defect (fixed)

Segmentation fault with HLS var_stream_map

Reported by: pero Owned by:
Priority: important Component: avformat
Version: git-master Keywords: hls crash SIGSEGV
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Hello,
I have one video in 4 different resolution. They are ismv mp4 files.

I'd like to convert them to hls with var_stream_map.
At the end of the conversation FFmpeg dies with segmentation fault.
All files are generated successfully, only the master playlist file has zero content.

How to reproduce:


ffmpeg -y \
-i /var/www/html/nv/madarles-eteto/archive/20181219193901/archive-madarles-eteto-20181219193901-270.mp4 \
-i /var/www/html/nv/madarles-eteto/archive/20181219193901/archive-madarles-eteto-20181219193901-360.mp4 \
-i /var/www/html/nv/madarles-eteto/archive/20181219193901/archive-madarles-eteto-20181219193901-540.mp4 \
-i /var/www/html/nv/madarles-eteto/archive/20181219193901/archive-madarles-eteto-20181219193901-720.mp4 \
-map 0:v \
-map 1:v \
-map 2:v \
-map 3:v \
-map 0:a -c:v copy -c:a copy -f hls -var_stream_map "v:0,agroup:aud v:1,agroup:aud v:2,agroup:aud v:3,agroup:aud a:0,agroup:aud" \
-hls_flags single_file -hls_time 8 -hls_playlist_type vod -master_pl_name master.m3u8 \
/var/www/html/nv/teszt/madales-eteto_%v.m3u8

Output:

ffmpeg version N-92742-ga07470ba37 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
  configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --enable-cuda-sdk --enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/ --extra-ldflags=-L/usr/local/cuda/lib64/ --enable-gpl --enable-libass --enable-libx264 --extra-libs=-lpthread --enable-nvenc --enable-nonfree --enable-filter=drawtext --enable-libfreetype --enable-vaapi
  libavutil      56. 24.101 / 56. 24.101
  libavcodec     58. 42.104 / 58. 42.104
  libavformat    58. 24.101 / 58. 24.101
  libavdevice    58.  6.101 / 58.  6.101
  libavfilter     7. 46.101 /  7. 46.101
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/html/nv/madarles-eteto/archive/20181219193901/archive-madarles-eteto-20181219193901-270.mp4':
  Metadata:
    major_brand     : isml
    minor_version   : 512
    compatible_brands: piff
    title           : InfoCAM.hu madarles-eteto live 270p
    encoder         : Lavf58.23.101
  Duration: 00:07:08.20, start: 0.000000, bitrate: 369 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 480x270 [SAR 1:1 DAR 16:9], 361 kb/s, 25 fps, 25 tbr, 10000k tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/html/nv/madarles-eteto/archive/20181219193901/archive-madarles-eteto-20181219193901-360.mp4':
  Metadata:
    major_brand     : isml
    minor_version   : 512
    compatible_brands: piff
    title           : InfoCAM.hu madarles-eteto live 360p
    encoder         : Lavf58.23.101
  Duration: 00:07:08.20, start: 0.000000, bitrate: 728 kb/s
    Stream #1:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 721 kb/s, 25 fps, 25 tbr, 10000k tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/html/nv/madarles-eteto/archive/20181219193901/archive-madarles-eteto-20181219193901-540.mp4':
  Metadata:
    major_brand     : isml
    minor_version   : 512
    compatible_brands: piff
    title           : InfoCAM.hu madarles-eteto live 540p
    encoder         : Lavf58.23.101
  Duration: 00:07:08.20, start: 0.000000, bitrate: 1358 kb/s
    Stream #2:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 960x540 [SAR 1:1 DAR 16:9], 1351 kb/s, 25 fps, 25 tbr, 10000k tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #2:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Input #3, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/html/nv/madarles-eteto/archive/20181219193901/archive-madarles-eteto-20181219193901-720.mp4':
  Metadata:
    major_brand     : isml
    minor_version   : 512
    compatible_brands: piff
    title           : InfoCAM.hu madarles-eteto live 720p
    encoder         : Lavf58.23.101
  Duration: 00:07:08.20, start: 0.000000, bitrate: 2260 kb/s
    Stream #3:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2252 kb/s, 25 fps, 25 tbr, 10000k tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #3:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/madales-eteto_0.ts' for writing
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/madales-eteto_1.ts' for writing
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/madales-eteto_2.ts' for writing
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/madales-eteto_3.ts' for writing
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/madales-eteto_4.ts' for writing
[mpegts @ 0x55a916af94c0] frame size not set
Output #0, hls, to '/var/www/html/nv/teszt/madales-eteto_%v.m3u8':
  Metadata:
    major_brand     : isml
    minor_version   : 512
    compatible_brands: piff
    title           : InfoCAM.hu madarles-eteto live 270p
    encoder         : Lavf58.24.101
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 480x270 [SAR 1:1 DAR 16:9], q=2-31, 361 kb/s, 25 fps, 25 tbr, 90k tbn, 25 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], q=2-31, 721 kb/s, 25 fps, 25 tbr, 90k tbn, 25 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:2(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 960x540 [SAR 1:1 DAR 16:9], q=2-31, 1351 kb/s, 25 fps, 25 tbr, 90k tbn, 25 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:3(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 2252 kb/s, 25 fps, 25 tbr, 90k tbn, 25 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:4(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
  Stream #2:0 -> #0:2 (copy)
  Stream #3:0 -> #0:3 (copy)
  Stream #0:1 -> #0:4 (copy)
Press [q] to stop, [?] for help
[hls @ 0x55a9167f9700] Cannot use rename on non file protocol, this may lead to races and temporary partial files
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/madales-eteto_0.m3u8' for writing
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/madales-eteto_1.m3u8' for writing
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/madales-eteto_2.m3u8' for writing
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/madales-eteto_3.m3u8' for writing
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/madales-eteto_4.m3u8' for writing
[hls @ 0x55a9167f9700] Opening '/var/www/html/nv/teszt/master.m3u8' for writing
Segmentation fault (core dumped)


Thank you!

Change History (6)

comment:1 by jeeb, 5 years ago

Please re-build your FFmpeg with "--disable-stripping" set during configure, or if you still have the ffmpeg_g binary around, try running it under gdb.

Crash course:

  1. "gdb path/to/ffmpeg(_g)"
  2. Wait until you see "symbols loaded" (if symbols cannot be found, exit with ctrl+D and re-build with disable-stripping)
  3. "run -your -parameters -here"
  4. Wait for crash.
  5. "bt full"

After this you can post the result of "bt full" here.

comment:2 by pero, 5 years ago

#0  __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:120
No locals.
#1  0x000055555591b05d in create_master_playlist (input_vs=0x555557504040, s=0x5555573ce700) at libavformat/hlsenc.c:1270
        aud_st = <optimized out>
        i = 0
        ret = <optimized out>
        bandwidth = <optimized out>
        vs = 0x555557504040
        options = 0x0
        j = <optimized out>
        hls = 0x5555577bca80
        m3u8_rel_name = 0x0
        ccgroup = <optimized out>
        ccs = <optimized out>
        temp_vs = <optimized out>
        vid_st = <optimized out>
        m3u8_name_size = <optimized out>
        hls = <optimized out>
        vs = <optimized out>
        temp_vs = <optimized out>
        vid_st = <optimized out>
        aud_st = <optimized out>
        options = <optimized out>
        i = <optimized out>
        j = <optimized out>
        m3u8_name_size = <optimized out>
        ret = <optimized out>
        bandwidth = <optimized out>
        m3u8_rel_name = <optimized out>
        ccgroup = <optimized out>
        ccs = <optimized out>
#2  hls_window (s=s@entry=0x5555573ce700, last=last@entry=1, vs=vs@entry=0x555557505680) at libavformat/hlsenc.c:1468
        hls = 0x5555577bca80
        en = <optimized out>
        target_duration = <optimized out>
        ret = <optimized out>
---Type <return> to continue, or q <return> to quit---


comment:3 by Carl Eugen Hoyos, 5 years ago

Component: undeterminedavformat
Keywords: hls crash SIGSEGV added
Priority: normalimportant

comment:5 by pero, 5 years ago

It is working with this patch.
Thank you!

comment:6 by Steven Liu, 5 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.