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

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

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

假设用户在流开始后 100 万进入,而不是在 100 万开始观看,播放器将从视频的开头开始,所以零分钟。

这是我的 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 的滑动窗口长度。
还要注意的是,使用 -hls_time 1将大大增加您的播放列表文件大小。 Apple 推荐的值为 6 秒,因此您应该尝试将其增加到所需关键帧间隔的倍数。

关于ffmpeg - 通过ffmpeg直播HLS,如何强制客户端从头开始播放?从第一段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28980650/

相关文章:

java - jax-rs 流式输出并读取服务器上的数据,为什么会这样?

php - 如何使用 HTML 5 从 Torrent 流式传输视频?

spring - 使用 Spring Framework 和 Chrome 设置视频流

需要ffmpeg textdraw.so

使用 Intel Quick Sync 的 FFMPEG 编码,抛出 "Access violation reading location "

java - Android java 应用程序上的 FFMPEG

encoding - 流短声音文件

java - Akka流滑动窗口通过SourceQueue控制receive到sink

flutter - 如何在 Flutter 中保持关闭屏幕的视频播放?

filter - ffmpeg 使用平铺过滤器表达式