gpt4 book ai didi

javascript - Videojs HLS Live 长时间播放内存问题

转载 作者:行者123 更新时间:2023-12-04 13:43:34 29 4
gpt4 key购买 nike

我正在使用 video-js HLS 创建视频播放器来播放 HLS Live 视频。我正在创建 16 个视频播放器并同时连接 16 个不同的 HLS 直播网址。下面是创建视频元素的 java 脚本部分。

  var video = document.getElementById("video_id");


var player = videojs(video,{hls:{ bandwidth: 102400,enableLowInitialPlaylist:true}});
player.src({
src: videoURL,
type: 'application/x-mpegURL',
withCredentials: false
});

代码运行良好,RAM 使用量约为 33-400 MB,但问题是随着时间的推移,内存使用量(RAM)逐渐增加,大约 2-3 小时后,RAM 达到 2GB 以上,浏览器由于内存问题而崩溃。

我尝试了一种方法来减少此问题,例如每隔 15 分钟销毁所有播放器并创建新播放器并重新连接实时源。
这在执行步骤时对代码有一些影响,RAM 使用量正在减少,但大约为 400-500 MB,这意味着内存使用量在每 15 分钟周期内仍在增加,并且在 5-6 小时和浏览器后达到 2GB崩溃。

这是删除视频播放的代码
    var videoElement =  document.getElementById(video_id);
if (typeof(videoElement) != 'undefined' && videoElement != null){
var player = videojs(video_id);
player.dispose();
}

可能是什么原因,是 Live play 中的任何缓存存储,如果是这样,我如何清除内存。

最佳答案

以防万一其他人在这里寻找修复程序,以下是帮助我的方法。运行 2 小时后,videojs 内存占用在 200MB 之间波动。至250MB直播单个 hls 视频时。
看起来有很多参数需要探索和配置。默认值设置不当。

window.addEventListener("offline", (e) => window.location.reload());

this.instanceId = new Date().getTime();

videojs.registerPlugin("hlsQualitySelector", qualitySelector);

this.player = videojs(
this.videoNode,
{
techOrder: ["html5", "flash", "other supported tech"],
liveui: true,
autoPlay: "muted",
controls: true,

html5: {
hlsjsConfig: {
enableWorker: true,
liveBackBufferLength: 15,
backBufferLength: 15,
liveMaxBackBufferLength: 15,
maxBufferSize: 0,
maxBufferLength: 10,
liveSyncDurationCount: 1,
},
},
},
function onPlayerReady() {
this.play();
},
);

this.player.hlsQualitySelector({ displayCurrentQuality: true });

关于javascript - Videojs HLS Live 长时间播放内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53284797/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com