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

通过ffmpeg直播HLS,如何强制客户端从头开始播放?从第一节开始,ffmpeg,streaming,video-streaming,http-live-streaming,Ffmpeg,Streaming,Video Streaming,Http Live Streaming,是否有一种方法,可以通过ffmpeg选项或标志,强制客户端播放器在实时流媒体而非实时中流媒体播放时始终从头开始播放播放列表 假设用户在视频流开始后进入1mn,而不是在1mn时开始观看,播放器将在视频开始时开始播放,因此零分钟 以下是我的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 yuv

是否有一种方法,可以通过ffmpeg选项或标志,强制客户端播放器在实时流媒体而非实时中流媒体播放时始终从头开始播放播放列表

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

以下是我的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\u list\u size 0
保留播放列表中的所有片段。使用大于0的值将导致播放列表使用
hls\u list\u size
长度的滑动窗口


同样值得注意的是,使用
-hls\u time 1
将大大增加播放列表文件的大小。Apple建议的值为6秒,因此您应该尝试将其增加到所需关键帧间隔的倍数。

谢谢您的尝试,我正在尝试将hls_时间值保持较低,因为这是一个实时流,我希望保持播放机查找播放列表并开始播放的时间较低,玩家似乎在开始游戏前等待了几段时间,因此hls_时间越长,延迟似乎越大。你知道这个延迟问题的另一个解决方案吗?它需要3段才能播放。但是,使用hls时间是不够的,还需要指定1s的关键帧间隔。您可以使用-g(GOP大小)选项来实现这一点。例如:-g 30将每30帧插入一个iframe,由于您的帧速率为30 fps,转换为1个iframe/sApple建议
-hls_时间为6@Abhay是的,他们同时更改了值。