Opened 3 years ago

Closed 2 years ago

#9238 closed defect (fixed)

Unexpected EXT-X-PROGRAM-DATE-TIME tags are added to old hls segment list

Reported by: litzh Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: HLS
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

When I try to append new segments into old hls segment list. Unexpected EXT-X-PROGRAM-DATE-TIME tags are added to old hls segment list.

How to reproduce:

bbb.mp4 is a 10 seconds clip from Big Buck Bunny.

  1. Convert MP4 into HLS:
    $ ffmpeg_g -y -i bbb.mp4 -vcodec copy -acodec copy -hls_time 4 -hls_flags append_list -hls_list_size 0 -hls_segment_filename bbb-%04d.ts -f hls hls.m3u8
    ffmpeg version N-102515-g175f675f7b Copyright (c) 2000-2021 the FFmpeg developers
      built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
      configuration: --pkg-config-flags=--static --extra-ldflags='-ldl -lm -lpthread -lrt -lstdc++ -static' --enable-gpl --enable-nonfree --enable-version3 --extra-libs=-ldl --disable-programs --enable-ffmpeg --enable-ffprobe --enable-static
      libavutil      57.  0.100 / 57.  0.100
      libavcodec     59.  1.100 / 59.  1.100
      libavformat    59.  0.101 / 59.  0.101
      libavdevice    59.  0.100 / 59.  0.100
      libavfilter     8.  0.101 /  8.  0.101
      libswscale      6.  0.100 /  6.  0.100
      libswresample   4.  0.100 /  4.  0.100
      libpostproc    56.  0.100 / 56.  0.100
    Guessed Channel Layout for Input Stream #0.1 : 5.1
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bbb.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        title           : Big Buck Bunny, Sunflower version
        artist          : Blender Foundation 2008, Janus Bager Kristensen 2013
        composer        : Sacha Goedegebure
        encoder         : Lavf58.45.100
        comment         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
        genre           : Animation
      Duration: 00:00:10.08, start: 0.000000, bitrate: 1380 kb/s
      Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 979 kb/s, 60 fps, 60 tbr, 15360 tbn (default)
        Metadata:
          handler_name    : GPAC ISO Video Handler
          vendor_id       : [0][0][0][0]
      Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 394 kb/s (default)                                                                                 Metadata:
          handler_name    : GPAC ISO Audio Handler
          vendor_id       : [0][0][0][0]
    Output #0, hls, to 'hls.m3u8':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        title           : Big Buck Bunny, Sunflower version
        artist          : Blender Foundation 2008, Janus Bager Kristensen 2013
        composer        : Sacha Goedegebure
        genre           : Animation
        comment         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
        encoder         : Lavf59.0.101
      Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 979 kb/s, 60 fps, 60 tbr, 90k tbn (default)
        Metadata:
          handler_name    : GPAC ISO Video Handler
          vendor_id       : [0][0][0][0]
      Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 394 kb/s (default)
        Metadata:
          handler_name    : GPAC ISO Audio Handler
          vendor_id       : [0][0][0][0]
    Stream mapping:
      Stream #0:0 -> #0:0 (copy)
      Stream #0:1 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [hls @ 0x33492c0] Opening 'bbb-0000.ts' for writing0 bitrate=N/A speed=   0x
    [hls @ 0x33492c0] Opening 'hls.m3u8.tmp' for writing
    [hls @ 0x33492c0] Opening 'bbb-0001.ts' for writing
    [hls @ 0x33492c0] Opening 'hls.m3u8.tmp' for writing
    [hls @ 0x33492c0] Opening 'bbb-0002.ts' for writing
    [hls @ 0x33492c0] Opening 'hls.m3u8.tmp' for writing
    frame=  602 fps=0.0 q=-1.0 Lsize=N/A time=00:00:10.00 bitrate=N/A speed= 923x
    video:1199kB audio:483kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    
  1. There is no EXT-X-PROGRAM-DATE-TIME tag in m3u8 file:
    $ cat hls.m3u8
    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:4
    #EXT-X-MEDIA-SEQUENCE:0
    #EXT-X-DISCONTINUITY
    #EXTINF:4.166667,
    bbb-0000.ts
    #EXTINF:4.166667,
    bbb-0001.ts
    #EXTINF:1.700000,
    bbb-0002.ts
    #EXT-X-ENDLIST
    
  1. Append new segments into old hls segment list:
    $ ffmpeg_g -y -i bbb.mp4 -vcodec copy -acodec copy -hls_time 4 -hls_flags append_list -hls_list_size 0 -hls_segment_filename bbb-%04d.ts -f hls hls.m3u8
    ffmpeg version N-102515-g175f675f7b Copyright (c) 2000-2021 the FFmpeg developers
      built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
      configuration: --pkg-config-flags=--static --extra-ldflags='-ldl -lm -lpthread -lrt -lstdc++ -static' --enable-gpl --enable-nonfree --enable-version3 --extra-libs=-ldl --disable-programs --enable-ffmpeg --enable-ffprobe --enable-static
      libavutil      57.  0.100 / 57.  0.100
      libavcodec     59.  1.100 / 59.  1.100
      libavformat    59.  0.101 / 59.  0.101
      libavdevice    59.  0.100 / 59.  0.100
      libavfilter     8.  0.101 /  8.  0.101
      libswscale      6.  0.100 /  6.  0.100
      libswresample   4.  0.100 /  4.  0.100
      libpostproc    56.  0.100 / 56.  0.100
    Guessed Channel Layout for Input Stream #0.1 : 5.1
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bbb.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        title           : Big Buck Bunny, Sunflower version
        artist          : Blender Foundation 2008, Janus Bager Kristensen 2013
        composer        : Sacha Goedegebure
        encoder         : Lavf58.45.100
        comment         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
        genre           : Animation
      Duration: 00:00:10.08, start: 0.000000, bitrate: 1380 kb/s
      Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 979 kb/s, 60 fps, 60 tbr, 15360 tbn (default)
        Metadata:
          handler_name    : GPAC ISO Video Handler
          vendor_id       : [0][0][0][0]
      Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 394 kb/s (default)
        Metadata:
          handler_name    : GPAC ISO Audio Handler
          vendor_id       : [0][0][0][0]
    Output #0, hls, to 'hls.m3u8':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        title           : Big Buck Bunny, Sunflower version
        artist          : Blender Foundation 2008, Janus Bager Kristensen 2013
        composer        : Sacha Goedegebure
        genre           : Animation
        comment         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
        encoder         : Lavf59.0.101
      Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 979 kb/s, 60 fps, 60 tbr, 90k tbn (default)
        Metadata:
          handler_name    : GPAC ISO Video Handler
          vendor_id       : [0][0][0][0]
      Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 394 kb/s (default)
        Metadata:
          handler_name    : GPAC ISO Audio Handler
          vendor_id       : [0][0][0][0]
    Stream mapping:
      Stream #0:0 -> #0:0 (copy)
      Stream #0:1 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [hls @ 0x3bba2c0] Opening 'bbb-0003.ts' for writing0 bitrate=N/A speed=   0x
    [hls @ 0x3bba2c0] Opening 'hls.m3u8.tmp' for writing
    [hls @ 0x3bba2c0] Opening 'bbb-0004.ts' for writing
    [hls @ 0x3bba2c0] Opening 'hls.m3u8.tmp' for writing
    [hls @ 0x3bba2c0] Opening 'bbb-0005.ts' for writing
    [hls @ 0x3bba2c0] Opening 'hls.m3u8.tmp' for writing
    frame=  602 fps=0.0 q=-1.0 Lsize=N/A time=00:00:10.00 bitrate=N/A speed=1.02e+03x
    video:1199kB audio:483kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    
  1. Unexpected EXT-X-PROGRAM-DATE-TIME tags are found:
    $ cat hls.m3u8
    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:4
    #EXT-X-MEDIA-SEQUENCE:0
    #EXT-X-DISCONTINUITY
    #EXTINF:4.166667,
    bbb-0000.ts
    #EXTINF:4.166667,
    #EXT-X-PROGRAM-DATE-TIME:1970-01-01T08:00:04.167+0800
    bbb-0001.ts
    #EXTINF:1.700000,
    #EXT-X-PROGRAM-DATE-TIME:1970-01-01T08:00:08.333+0800
    bbb-0002.ts
    #EXT-X-DISCONTINUITY
    #EXTINF:4.166667,
    bbb-0003.ts
    #EXTINF:4.166667,
    bbb-0004.ts
    #EXTINF:1.700000,
    bbb-0005.ts
    #EXT-X-ENDLIST
    

Change History (4)

comment:1 by pero, 2 years ago

I can confirm this with the latest master.

in reply to:  2 comment:3 by pero, 2 years ago

Thank you, it is working perfectly now :)

comment:4 by Steven Liu, 2 years ago

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