[FFmpeg-trac] #9033(undetermined:new): HLS playlists created by DASH encoder do not indicate EXT-X-INDEPENDENT-SEGMENTS

FFmpeg trac at avcodec.org
Tue Dec 15 23:55:58 EET 2020


#9033: HLS playlists created by DASH encoder do not indicate EXT-X-INDEPENDENT-
SEGMENTS
-------------------------------------+-------------------------------------
             Reporter:  gordon       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Using latest release of ffmpeg.

 Apple Validator complains with "If EXT-X-INDEPENDENT-SEGMENTS is not in
 master playlist, then you MUST use the EXT-X-INDEPENDENT-SEGMENTS tag in
 all video media playlists"


 {{{
 ffmpeg -i /path/to/normalized.mp4 -map 0:v:0 -an -f dash -single_file 1
 -global_sidx 1 -dash_segment_type mp4 -hls_playlist 1 -seg_duration 6
 -use_template 1 -sc_threshold 0 -pix_fmt yuv420p -vsync cfr
 -force_key_frames 'expr:gte(t,n_forced*2)' -flags +cgop -reset_timestamps
 1 -avoid_negative_ts make_zero -g 60 -keyint_min 60 -profile:v high -level
 3.0 -b:v 145k -c:v libx264 -tag:v avc1 -bsf:v h264_mp4toannexb -filter:v
 scale=416:-2 -minrate 0 -maxrate 145k -bufsize 72k -passlogfile
 /path/to/work/passlog.ffmpeg2pass -pass 1 /path/to/work/working-
 manifest.mpd
 }}}

 {{{
 ffmpeg -i /path/to/normalized.mp4 -map 0:v:0 -an -f dash -single_file 1
 -global_sidx 1 -dash_segment_type mp4 -hls_playlist 1 -seg_duration 6
 -use_template 1 -sc_threshold 0 -pix_fmt yuv420p -vsync cfr
 -force_key_frames 'expr:gte(t,n_forced*2)' -flags +cgop -reset_timestamps
 1 -avoid_negative_ts make_zero -g 60 -keyint_min 60 -profile:v high -level
 3.0 -b:v 145k -c:v libx264 -tag:v avc1 -bsf:v h264_mp4toannexb -filter:v
 scale=416:-2 -minrate 0 -maxrate 145k -bufsize 72k -passlogfile
 /path/to/work/passlog.ffmpeg2pass -pass 2 -single_file_name segment.mp4
 /path/to/output/manifest.mpd
 }}}

 Results in a segment playlist like:
 {{{
 #EXTM3U
 #EXT-X-VERSION:6
 #EXT-X-TARGETDURATION:6
 #EXT-X-MEDIA-SEQUENCE:1
 #EXT-X-MAP:URI="segment.mp4",BYTERANGE="889 at 0"
 #EXTINF:6.006006,
 #EXT-X-BYTERANGE:107053 at 889
 #EXT-X-PROGRAM-DATE-TIME:2020-12-15T20:01:25.000+0000
 segment.mp4
 #EXTINF:6.006006,
 #EXT-X-BYTERANGE:101844 at 107942
 #EXT-X-PROGRAM-DATE-TIME:2020-12-15T20:01:31.006+0000
 segment.mp4
 #EXTINF:3.503504,
 #EXT-X-BYTERANGE:65242 at 209786
 #EXT-X-PROGRAM-DATE-TIME:2020-12-15T20:01:37.012+0000
 segment.mp4
 #EXT-X-ENDLIST
 }}}

 and a master like

 {{{
 #EXTM3U
 #EXT-X-VERSION:7
 #EXT-X-STREAM-INF:BANDWIDTH=148022,RESOLUTION=416x234,CODECS="avc1.64001e"
 media_0.m3u8
 }}}


 I tried adding `-hls_flags independent_segments` to the command but this
 did not work.

 Ideally, both playlists would include EXT-X-INDEPENDENT-SEGMENTS

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


More information about the FFmpeg-trac mailing list