使用 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)));
});

请告诉我哪里做错了,或者有没有其他方法可以实现我想要的? 提前致谢!

我得到了解决方案!我从两个用户(呼叫者和被呼叫者)开始录音机。它正在制造一些冲突。现在我设置了一个条件,只有提供者才能开始录制。现在一切正常。