【发布时间】:2016-06-25 17:07:57
【问题描述】:
我正在使用来自远程 src 的 ffmpeg 生成 hls 内容,并且我一直在浏览器中无法理解滞后的体验。
例如,即使有说 out8.ts, out9.ts ... hls.js 播放器也会说 out7.ts 而不会加载 out8.ts 或 out9 .ts.
它一直等到 out7.ts 几乎完成播放,然后尝试加载 out.m3u8,其中将包含 out8.ts 和可能的 out9.ts。但这样做太晚了,最终导致滞后。我正在本地主机上以一种有效的方式执行此操作。
一旦开始发生,这似乎会重演。
如何使 hls.js 更频繁地请求 m3u8 并缓冲曾经存在的内容?还是尽可能多?
另外如果有已经说 1-10.ts 文件,我怎样才能让 hls.js 不是从最后一个开始(虽然更接近生活),但可能是 5.ts 所以它不会遇到关于下一个更新的 m3u8 和可能会阻止它缓冲它的长度 11.ts 的这个紧迫的截止日期问题吗?
我的选择:
new Hls({
autoStartLoad: true,
debug: App.isDevelopment(),
manifestLoadingTimeOut : 60000,
/*manifestLoadingMaxRetry : 9,*/
manifestLoadingRetryDelay : 500,
levelLoadingTimeOut : 60000,
/*levelLoadingMaxRetry : 9,*/
levelLoadingRetryDelay : 500,
fragLoadingTimeOut : 60000,
/*fragLoadingMaxRetry : 6,*/
fragLoadingRetryDelay : 250,
startFragPrefetch : true
});
使用 clapper 而不是 hls.js 在控制这些事情方面有什么区别吗?
【问题讨论】:
-
您找到了一个好的解决方案吗?谢谢。
标签: ffmpeg video.js http-live-streaming live-streaming clappr