使用 NodeJS 将 MediaRecorder 块合并为单个视频文件
Merge MediaRecorder chunks into a single video file with NodeJS
我正在尝试使用 MediaRecorder API 录制流,并使用 Socket.io 将可用块发送到服务器。我在后端获取块并成功合并到一个文件,但问题是只有第一个块可以播放。
这是我的代码,
前端:
recorder = new MediaRecorder(stream, {
mimeType: 'video/webm;codecs=vp8',
});
recorder.start(1000);
recorder.ondataavailable = function(e) {
if (e.data && e.data.size > 0) {
socket.emit("recordedChunk", {
room: room,
chunk: e.data
});
}
}
后端:
const fileStream = fs.createWriteStream('./recording/test.webm', { flags: 'a' });
socket.on('recordedChunk', function (data) {
fileStream.write(Buffer.from(new Uint8Array(data.chunk)));
});
请告诉我哪里做错了,或者有没有其他方法可以实现我想要的?
提前致谢!
我得到了解决方案!我从两个用户(呼叫者和被呼叫者)开始录音机。它正在制造一些冲突。现在我设置了一个条件,只有提供者才能开始录制。现在一切正常。
我正在尝试使用 MediaRecorder API 录制流,并使用 Socket.io 将可用块发送到服务器。我在后端获取块并成功合并到一个文件,但问题是只有第一个块可以播放。
这是我的代码,
前端:
recorder = new MediaRecorder(stream, {
mimeType: 'video/webm;codecs=vp8',
});
recorder.start(1000);
recorder.ondataavailable = function(e) {
if (e.data && e.data.size > 0) {
socket.emit("recordedChunk", {
room: room,
chunk: e.data
});
}
}
后端:
const fileStream = fs.createWriteStream('./recording/test.webm', { flags: 'a' });
socket.on('recordedChunk', function (data) {
fileStream.write(Buffer.from(new Uint8Array(data.chunk)));
});
请告诉我哪里做错了,或者有没有其他方法可以实现我想要的? 提前致谢!
我得到了解决方案!我从两个用户(呼叫者和被呼叫者)开始录音机。它正在制造一些冲突。现在我设置了一个条件,只有提供者才能开始录制。现在一切正常。