FlvPlayer缓冲中断问题

本文最后更新于:2025年2月18日 下午

问题描述

1
2
3
4
[FlvPlayer] > Maximum buffering duration exceeded, suspend transmuxing task
[FlvPlayer] > Continue loading from paused position
flv.js:10093 [FLVDemuxer] > Unsupported tag type 70, skipped
flv.js:10093 [FLVDemuxer] > Unsupported tag type 193, skipped

原因是flv.js缓冲直播视频流超过最大值后会停止继续缓冲,等到播放一定时长后,会自动从暂停点恢复。但是,这时出现不支持的标签类型并跳过的问题。

问题解决

若出现此问题,但是视频播放不受影响,可忽略此问题。
我这边是出现此问题后,视频还没放完缓冲的数据,等播放到缓冲暂停点时,播放器就开始一直加载,而且无法播放了…
我去flv.jsgithub中的issue中看了,有提到相关的问题,但只是提了缓冲到最大会暂停缓冲的事,而且目前没有答复。

解决方法:

这算是一个异常点,可以通过捕获异常来解决。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const flv = flvjs.createPlayer({ type: 'flv', url });
flv.attachMediaElement(video);
art.flv = flv;
flv.load();
flv.on(flvjs.Events.ERROR, (errorType, details) => {
console.error(`Error: ${errorType}, Details: ${details}`);
// 根据错误类型采取恢复措施
switch (errorType) {
case 'NetworkError':
// 网络错误,尝试重新加载视频
console.info('Network error, reloading video...')
flv.load();
break;
case 'MediaError':
// 媒体错误,尝试恢复播放
console.info('Media error, recovering playback...')
flv.recoverMediaError();
break;
default:
// 其他错误,尝试重新加载视频
console.info('Unknown error, reloading video...')
flv.load();
break;
}
});

可根据自己的代码逻辑自行修改。


以上为个人浅薄理解,亲身实践,如有更好的方法或者有需要改进的地方,欢迎评论区友好交流指正。

如果觉得有帮助的话,不妨点个赞和收藏,加个关注吧!

不定期更新遇到并解决的问题哦。


FlvPlayer缓冲中断问题
https://superlovelace.top/2024/12/06/[FlvPlayer] > Maximum buffering duration exceeded, suspend transmuxing task/
作者
棱境
发布于
2024年12月6日
更新于
2025年2月18日
许可协议