我正在使用远程src的ffmpeg生成hls内容,并且我在浏览器中无法理解的经验滞后。
例如,尽管有out8.ts,out9.ts .hls.js播放器将使用out7.ts,而不是加载出8.ts或out9.ts。
它一直等到out7.ts 几乎完成了播放,然后尝试加载out.m3u8,其中将包含out8.ts,也可能包含out9.ts。但是它做得太晚了,它最终导致了滞后。我是在本地主机上高效地这样做的。
一旦开始发生,这种情况似乎就会重演。
如何使hls.js 更经常地请求m3u8,和缓冲区--现在的是什么?还是尽可能多?
此外,如果已经有1-10.ts文件,我如何使hls.js开始不是最后一个文件(虽然更接近生命),但可能在5.ts上,这样它就不会遇到与下一个更新的m3u8有关的紧迫的截止日期问题,并且可能会导致它无法缓冲吗?
我的选择:
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的有什么不同吗?
发布于 2016-03-11 17:27:54
您正在经历的滞后可能是段持续时间的原因。对于活动流,较短的持续时间会导致对播放列表的更频繁的请求,这可能导致额外的网络通信量。苹果推荐10秒,但(我相信) ffmpeg默认使用2秒。如果使用的是ffmpeg的hls,则可以使用-hls_time选项设置段持续时间;如果使用段,则可以使用-segment_time选项。我会先试试这个。
HLS规范指定重新加载播放列表之间的时间由段的目标持续时间决定,因此,如果要符合规范,则播放器必须遵守这一点。
您可以使用EXT-X-START标记来进行在特定的时间点开始播放视频。
发布于 2020-11-04 07:34:23
尝试使用maxBufferLength.This是hls.js尝试达到的保证缓冲区长度,而不管maxBufferSize如何。
https://stackoverflow.com/questions/35923543
复制相似问题