如何在节点服务器中获取完整的MediaStreamRecorder Blob?

时间:2019-01-19 13:15:36

标签: javascript node.js websocket blob arraybuffer

我正在处理MediaStreamRecorder blob,该blob首先传递到我的NodeJS服务器,然后将其上传到AWS S3。 当我从javascript文件发送blob时,它以Buffer的形式到达node js服务器。我想再次将其更改为blob(具有大小,类型和二进制数据)。

我已经在Google上进行了大量搜索来找到解决方案,但是我才知道节点js在浏览器中具有与Blob相同的缓冲区,但是当我将Blob直接上传到AWS时,视频运行良好,但是当我上传数组缓冲区时到S3,则显示损坏的文件。

我的JS文件将数据发送到S3的

    var mimeType = 'video/webm';
    var fileExtension = 'webm';
    if (isMimeTypeSupported('video/webm\;codecs=h264')) {
            mimeType = 'video/mp4';
            fileExtension = 'mp4';
    }

    var file = new File([recorder ? recorder.blob : ''], getFileName(fileExtension), {
        type: mimeType
    });

我的JS文件将数据发送给我的节点服务器

  function client(blob){
    socket.send(blob)

    socket.addEventListener('message', event => {
      console.log(`Message from server: `,event);
    });

  }

我的节点服务器为

    server.on('connection', socket => {
      console.log("Commention Eslablished");

      socket.on('message', message => {
        console.log(message);
        bigBlob.push(message);
      });

      socket.send('blob recived');


      socket.on('close', message => {
        console.log("close with"); 
      });

    });

我想从节点服务器上传与从浏览器上传相同的数据

0 个答案:

没有答案