在Node Js中,我如何写入从视频上传的文件块

问题描述 投票:0回答:1

[我正在尝试将网络摄像头或音频流上传到Nodejs并将其保存到磁盘。目的是在数据可用时立即将数据块发送到服务器。我已经从gerUserMedia中获取了流,设置了mediaRecorder,当数据可用时,我将blob转换为arrayBuffer并将其发送到服务器。我知道代码是错误的,因为我不确定正确的方法是什么,但是当数据发送到服务器时,将保存一个文件,但仅保存1kb的文件,该文件应为大视频文件。我该怎么办?

//Client Side

recorder.ondataavailable = (event) => {
      const reader = new FileReader();
      reader.onload = (event) =>{
        recordedChunks.push(event.data);
        sendDataToServer(event.target.result)
      }
      reader.readAsArrayBuffer(event.data)
    }
reader.readAsArrayBuffer(event.data)


//Server-Side

app.post('/media', function (req, res, next) { 

  try {
    const { data } = req.body;
    const dataBuffer = new Buffer(data, 'base64');
    const fileStream = fs.createWriteStream('video.webm');
    fileStream.write(dataBuffer);

  } catch (error) {
    console.log(error);

  }

  })
javascript node.js express webrtc getusermedia
1个回答
0
投票

我会研究formidable,它为您提供了一些很棒的帮助文件上传的东西。他们也有一个使用express的示例。

form.on('progress',(bytesReceived,bytesExpected)=> {});

给个镜头,让我们知道如何进行,或者如果您还有其他问题。

© www.soinside.com 2019 - 2024. All rights reserved.