Opened 4 years ago

Last modified 4 years ago

#8469 new defect

HLS muxer creates variant playlists with wrong segment lengths when x264 baseline profile is used

Reported by: pmiller Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords: hls
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

When baseline profile is used in a hls muxer, the segment lengths for the variant are wrong.
The other playlists have correct lengths (=6)

How to reproduce:

% ffmpeg -y -i bigbuckbunny.mp4 \
-report  -t 30  -ac 2 \ 
-flags +global_header+cgop \
-movflags faststart \
-lavfi '[0:v]split=3[v0][v01][v02];[v01]scale=w=trunc(in_w/8)*6:h=trunc(in_h/8)*6[v1];[v02]scale=w=trunc(in_w/8)*4:h=trunc(in_h/8)*4[v2]' \
-map '[v0]' -map 0:a:0 -map '[v1]' -map 0:a:0 -map '[v2]' -map 0:a:0 \
-r:v:0 30 -force_key_frames:v:0 "expr:eq(mod(n,60),0)" \
-c:v:0 libx264 \
-x264opts:v:0 rc-lookahead=60:keyint=120:min-keyint=60:no-open-gop=1 \
-pix_fmt:v:0 yuv420p \
-profile:v:0 high \
-b:v:0 3000k -minrate:v:0 3000k -maxrate:v:0 3300k -bufsize:v:0 3M \
-r:v:1 30 -force_key_frames:v:1 "expr:eq(mod(n,60),0)" \
-c:v:1 libx264 \
-x264opts:v:1 rc-lookahead=60:keyint=120:min-keyint=60:no-open-gop=1 \
-pix_fmt:v:1 yuv420p \
-profile:v:1 main \
-b:v:1 2000k -minrate:v:1 2000k -maxrate:v:1 2200k -bufsize:v:1 2M \
-r:v:2 15 -force_key_frames:v:2 "expr:eq(mod(n,30),0)" \
-c:v:2 libx264 \
-x264opts:v:2 rc-lookahead=30:keyint=60:min-keyint=30:no-open-gop=1 \
-pix_fmt:v:2 yuv420p \
-profile:v:2 baseline \
-b:v:2 800k -minrate:v:2 800k -maxrate:v:2 880k -bufsize:v:2 800k \
-b:a:0 96k -b:a:1 48k -b:a:2 32k \
-f hls -hls_segment_type fmp4 \
-var_stream_map 'v:0,a:0 v:1,a:1 v:2,a:2' \
-hls_segment_filename 'segments_%v.mp4' \
-master_pl_name master.m3u8 \
-hls_time 6 -hls_list_size 0 \
-hls_flags single_file+discont_start+program_date_time+independent_segments+round_durations \ 'variant_%v.m3u8'

cat variant_2.m3u8

#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:8
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-DISCONTINUITY
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MAP:URI="segments_2.mp4",BYTERANGE="1630@0"
#EXTINF:8,
#EXT-X-BYTERANGE:592264@1630
#EXT-X-PROGRAM-DATE-TIME:2020-01-13T18:44:47.000-0500
segments_2.mp4
#EXTINF:6,
#EXT-X-BYTERANGE:640195@593894
#EXT-X-PROGRAM-DATE-TIME:2020-01-13T18:44:55.000-0500
segments_2.mp4
#EXTINF:6,
#EXT-X-BYTERANGE:639175@1234089
#EXT-X-PROGRAM-DATE-TIME:2020-01-13T18:45:01.000-0500
segments_2.mp4
#EXTINF:6,
#EXT-X-BYTERANGE:496716@1873264
#EXT-X-PROGRAM-DATE-TIME:2020-01-13T18:45:07.000-0500
segments_2.mp4
#EXTINF:4,
#EXT-X-BYTERANGE:397751@2369980
#EXT-X-PROGRAM-DATE-TIME:2020-01-13T18:45:13.000-0500
segments_2.mp4
#EXT-X-ENDLIST

Change History (1)

comment:1 by Carl Eugen Hoyos, 4 years ago

Component: ffmpegundetermined
Keywords: profile:v baseline segment removed
Version: 4.2unspecified

To make this a valid ticket, please test current FFmpeg git head and provide the command line you tested together with the complete, uncut console output.

Note: See TracTickets for help on using tickets.