gpt4 book ai didi

javascript - 媒体源扩展视频崩溃(内存泄漏)

转载 作者:行者123 更新时间:2023-11-29 21:31:27 25 4
gpt4 key购买 nike

我尝试使用媒体源扩展 (MSE) API 通过 websocket 播放实时流媒体。一切正常,除了浏览器会崩溃大约一天。我还发现内存会一直增加。下面是我的片段。我想我追加了太多数据,以至于内存会一直增加,从而导致 Chrome 出现异常行为。是否可以通过 MSE API 释放 MSE/视频缓冲区以防止内存泄漏?

操作系统:Windows 7 SP1 64 位Windows 10 64 位


var buffer_size = 5*1024*1024;
var buffer_index = 0;
var video = null;
var frag_mp4_buffer = new Uint8Array(buffer_size);

websocket.onmessage = function(evt){
var buffer = new Uint8Array(evt.data);
if(buffer.length !=0){
if((buffer_index + buffer.length) <= buffer_size){
frag_mp4_buffer.set(buffer, buffer_index);
buffer_index = buffer_index + buffer.length;
if(sourceBuffer.updating == false){
var appended = frag_mp4_buffer.slice(0,buffer_index);
sourceBuffer.appendBuffer(appended);
frag_mp4_buffer.fill(0);
buffer_index = 0;
}
}
}
};

最佳答案

使用 SourceBuffer.remove() api 删除已经播放的内容,为任何同步要求保留几秒钟。

Chrome 将此作为垃圾收集的一部分进行,但我发现在运行数小时的流时效率不高。

另请注意,这并不能完全解决问题,但有助于大大减少内存的积累。

关于javascript - 媒体源扩展视频崩溃(内存泄漏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36277074/

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