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

时间:2015-03-11 07:16:46

标签: ffmpeg streaming video-streaming http-live-streaming hls

是否有办法,可能通过ffmpeg选项或标记,强制客户端播放器始终在实时流式传输时从头开始播放播放列表,而不是实时的中间流?

假设用户在流开始后1分钟进入,而不是开始观看1分钟,播放器将在视频开头处开始,因此分钟为零。

这是我的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

谢谢!

1 个答案:

答案 0 :(得分:3)

使用-hls_list_size 0保留播放列表中的所有细分。使用大于0的值将导致播放列表使用hls_list_size长度的滑动窗口。

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