Javascript Videojs HLS Live长期播放内存问题
我正在使用video js HLS创建视频播放器来播放HLS实时视频。我正在创建16个视频播放器,同时连接16个不同的HLS live url。下面是创建视频元素的java脚本部分Javascript Videojs HLS Live长期播放内存问题,javascript,html,video.js,http-live-streaming,Javascript,Html,Video.js,Http Live Streaming,我正在使用video js HLS创建视频播放器来播放HLS实时视频。我正在创建16个视频播放器,同时连接16个不同的HLS live url。下面是创建视频元素的java脚本部分 var video = document.getElementById("video_id"); var player = videojs(video,{hls:{ bandwidth: 102400,enableLowInitialPlaylist:true}}); p
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();
}
可能是什么原因,是任何缓存存储在现场播放也,如果是这样,我如何才能清除内存 为了以防万一,有人来到这里寻找解决办法,下面是帮助我的方法。运行2小时后,当对单个hls视频进行直播时,videojs内存占用在
200MB
到250MB
之间波动
看起来有很多参数需要研究和配置。默认值设置错误
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 });
你找到答案了吗?嗨,CodeDezk,你解决这个问题了吗?我现在正在使用hls.js