[FFmpeg-trac] #9238(avformat:new): Unexpected EXT-X-PROGRAM-DATE-TIME tags are added to old hls segment list

FFmpeg trac at avcodec.org
Wed May 12 12:13:13 EEST 2021


#9238: Unexpected EXT-X-PROGRAM-DATE-TIME tags are added to old hls segment list
----------------------------------+--------------------------------------
             Reporter:  litzh     |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avformat  |                  Version:  git-master
             Keywords:  HLS       |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+--------------------------------------
 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
 }}}

 2. 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
 }}}

 3. 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
 }}}

 4. 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
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9238>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list