Как получить полный BLOB-объект MediaStreamRecorder на сервере узла? - PullRequest
0 голосов
/ 19 января 2019

Я работаю с BLOB-файлом MediaStreamRecorder, который сначала передается на мой сервер NodeJS, а затем загружается на AWS S3.Когда я посылаю BLOB-объект из файла javascript, он достигает узла js-сервера в виде буфера.Я хочу изменить его снова на blob (имеющий размер, тип и двоичные данные).

Я много гуглил, чтобы найти решение для этого, но я только что узнал, что у узлов j есть буферы, такие же, как и у блобов в браузерах, но когда я загружаю свой блоб напрямую в 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);
    });

  }

Мой сервер Node имеет вид

    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"); 
      });

    });

Я хочу загрузить те же данные с сервера узла, что и данные из браузера

...