[FFmpeg-trac] #9510(avformat:reopened): HLS with fMP4 produces invalid segments
FFmpeg
trac at avcodec.org
Tue Jan 31 20:24:22 EET 2023
#9510: HLS with fMP4 produces invalid segments
-------------------------------------+-------------------------------------
Reporter: Andreas | Owner: (none)
Unterweger |
Type: defect | Status: reopened
Priority: normal | Component: avformat
Version: git-master | Resolution:
Keywords: HLS hls | Blocked By:
CHUNK ffmpeg |
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Changes (by Andreas Unterweger):
* status: closed => reopened
* resolution: needs_more_info =>
Old description:
> Using fMP4 segments with strftime and hls_init_time produces segments
> which are too short and cannot be played back.
>
> Example call:
>
> {{{
> ./ffmpeg -y -i timer_1M.mp4 -acodec aac -b:a 64k -vcodec h264 -b:v 1M -f
> hls -hls_segment_type fmp4 -strftime 1 -hls_segment_filename '%%18d.m4s'
> -hls_flags second_level_segment_index+split_by_time -hls_time 0.6
> -hls_init_time 0.600001 index.m3u8
> }}}
>
> This produces a segment 000000000000000006.m4s which is only about a
> tenth of the size of the other segments. Running FFprobe on it (by
> creating a dummy playlist with only this segment), it seems to contain
> only audio, but no video frames.
>
> Removing the hls_init_time parameter from the command "resolves" the
> issue, i.e., the segments are then split correctly and have video frames.
>
> I tried this with different files, including [https://file-examples-
> com.github.io/uploads/2017/04/file_example_MP4_480_1_5MG.mp4]. Changing
> the GOP size with -g:v does not make the error go away, which is why I
> think it is a bug in the HLS segmenter.
New description:
Using fMP4 segments with strftime and hls_init_time produces segments
which are too short and cannot be played back.
Example call:
{{{
./ffmpeg -y -i CDR-Dinner_LAN_800k.mp4 -acodec aac -b:a 64k -vcodec h264
-b:v 1M -f hls -hls_segment_type fmp4 -strftime 1 -hls_segment_filename
'%%18d.m4s' -hls_flags second_level_segment_index+split_by_time -hls_time
0.6 -hls_init_time 0.600001 index.m3u8
}}}
This produces a segment 000000000000000006.m4s which is only about a tenth
of the size of the other segments. Running FFprobe on it (by creating a
dummy playlist with only this segment), it seems to contain only audio,
but no video frames.
Removing the hls_init_time parameter from the command "resolves" the
issue, i.e., the segments are then split correctly and have video frames.
I tried this with different files, including
[https://samples.ffmpeg.org/MPEG-4/CDR-Dinner_LAN_800k.mp4]. Changing the
GOP size with -g:v does not make the error go away, which is why I think
it is a bug in the HLS segmenter.
--
Comment:
The issue is still present, even with recent master. I pointed the URL to
a different file from the FFmpeg samples. It occurs not only with this
file, but every file I tried as an input. As stated above, this seems to
be an issue of the HLS segmenter.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9510#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list