通过ffmpeg直播HLS,如何强制客户端从头开始播放?从第一段

Live streaming HLS via ffmpeg, How to force client to start playing from the beginning? From 1st segment

有没有办法,也许通过 ffmpeg 选项或标志,强制客户端播放器在直播时始终从头开始播放列表,而不是实时中流?

假设用户在流媒体开始后 100 万分钟到达,而不是在 100 万分钟开始观看,播放器将在视频开头开始播放,即第 0 分钟。

这是我的 ffmpeg 命令:

ffmpeg -f "screen capture" -s 1280x720 -r 30 -i :0.0+nomouse -f alsa -ac 2 -i pulse -async 30 -vcodec libx264 -pix_fmt yuv420p -acodec libfdk_aac -ar 44100 -b:a 64k -threads 0 -s 640x360 -f hls -g 1 -hls_time 1 -hls_list_size 1 -hls_allow_cache 0 /hls/#{@stream_name}/index.m3u8

谢谢!

使用-hls_list_size 0 将所有片段保留在播放列表中。使用大于 0 的值将导致播放列表使用 hls_list_size 长度的滑动 window。

另外请注意,使用 -hls_time 1 会大大增加播放列表文件的大小。 Apple 推荐的值为 6 秒,因此您应该尝试将其增加到所需关键帧间隔的倍数。