[FFmpeg-trac] #9321(undetermined:new): Wrong HLS segment duration on playlist rotation
FFmpeg
trac at avcodec.org
Wed Jul 7 16:00:23 EEST 2021
#9321: Wrong HLS segment duration on playlist rotation
-------------------------------------+-------------------------------------
Reporter: ohmerci | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: hls segment | Blocked By:
duration |
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
Trying to output a HLS live stream with fixed segment duration (10s in
this case).
'''video segmentation issue''': when hls_list_size is reached, instead of
a 10s video segment a 2s and 8s video segment are generated (durations of
the parts is dependent on GOP length and hls_time value), and added to the
video manifest.
After which output continues with 10s segments as expected.
Intitial full-lenght manifest:
{{{
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:2
#EXT-X-INDEPENDENT-SEGMENTS
#EXTINF:10,
#EXT-X-PROGRAM-DATE-TIME:2021-07-07T14:25:39.502+0200
video_2.ts
#EXTINF:10,
#EXT-X-PROGRAM-DATE-TIME:2021-07-07T14:25:49.502+0200
video_3.ts
#EXTINF:10,
#EXT-X-PROGRAM-DATE-TIME:2021-07-07T14:25:59.502+0200
video_4.ts
#EXTINF:10,
#EXT-X-PROGRAM-DATE-TIME:2021-07-07T14:26:09.502+0200
video_5.ts
#EXTINF:2,
#EXT-X-PROGRAM-DATE-TIME:2021-07-07T14:26:19.502+0200
video_6.ts
}}}
Next, the manifest file rotates for a first time and a 8s segment is added
{{{
#EXTINF:8,
#EXT-X-PROGRAM-DATE-TIME:2021-07-07T14:26:21.502+0200
video_7.ts
}}}
Next, 10s are generated and added to the manifest file again
{{{
#EXTINF:10,
#EXT-X-PROGRAM-DATE-TIME:2021-07-07T14:26:29.502+0200
video_8.ts
}}}
----
'''audio segmentation issue''': when hls_list_size is reached a 0s audio
segment is generated and added to the audio manifest file.
{{{
#EXTINF:0,
#EXT-X-PROGRAM-DATE-TIME:2021-07-07T14:28:54.484+0200
eng_audio_6.ts
}}}
----
Forcing 10s GOP -g:v 250 (and remove keyint=50:min-keyint=50:no-scenecut)
, fixes the splitted video segment, but doesn't fix the 0s audio segment.
----
How to reproduce:
{{{
ffmpeg -re -fflags +genpts -i /data/str02/pseudo_src/devmul/ott-en-us.mp4
-map 0 -c:v libx264 -x264opts "keyint=50:min-keyint=50:no-scenecut" -b:v
2M -g:v 50 -r:v 25 -c:a aac -b:a 128k -f hls -hls_delete_threshold 20
-hls_segment_filename "hlsdir/%v_%d.ts" -hls_time 10 -hls_init_time 10
-hls_list_size 5 -master_pl_name master.m3u8 -var_stream_map
"a:0,name:eng_audio,agroup:audio,language:ENG,default:YES
v:0,name:video,agroup:audio" -hls_flags
independent_segments+program_date_time+round_durations "hlsdir/%v.m3u8"
}}}
----
ffmpeg version:
{{{
ffmpeg version N-102852-g758e2da289 Copyright (c) 2000-2021 the FFmpeg
developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --prefix=/data/local/home/ramdata/ffmpeg-master --enable-
gpl --enable-version3 --enable-nonfree --enable-openssl --enable-postproc
--enable-avfilter --enable-pthreads --enable-filter=movie --enable-
libfontconfig --enable-libfreetype --enable-libfribidi --enable-libx264
--enable-libfdk-aac
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9321>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list