我有一个代码,记录从客户端到服务器的摄像机输入如下:
async function saveIntoMp4(chunks) {
const options = { type: "video/webm" }
let blob = new Blob(chunks, options);
chunks.length = 0 // to stop any memory leaks
const buffer = Buffer.from(await blob.arrayBuffer());
try {
fs.writeFile(
`./videos/1.mp4`,
buffer,
() => console.log("video is saved!" )
);
} catch (error) {
console.log('ERROR', error)
}
}
每次调用这段代码时,我都会得到保存的视频的确切数量(或大致相同的数量),占用我的RAM。我完全不知道该怎么处理这件事。我如何从我的代码中克服这个(可能的内存泄漏)问题?
1条答案
按热度按时间ldfqzlk81#
我猜你不应该从块中创建一个缓冲区(这会占用内存两次),而是直接写入块。这是伪代码,将其调整为工作版本: