В Node Js как я могу записать в файл фрагменты, загруженные из видео - PullRequest
0 голосов
/ 22 апреля

Я пытаюсь загрузить веб-камеру или аудиопоток на Nodejs и сохранить его на диск. Цель состоит в том, чтобы отправить куски данных на сервер, как только они станут доступны. Я взял поток из gerUserMedia, настроил mediaRecorder и, когда данные стали доступны, я превращаю большой двоичный объект в arrayBuffer и отправляю его на сервер. Я знаю, что код неправильный, так как я не уверен, что правильно, но когда данные отправляются на сервер, файл сохраняется, но только 1 КБ файл, где это должен быть большой видеофайл. Как я могу это сделать?

//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);

  }

  })

1 Ответ

0 голосов
/ 22 апреля

Я бы посмотрел на грозный , он предлагает вам несколько замечательных вещей, которые помогут с загрузкой файлов. У них также есть пример использования этого с express.

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

Сделайте это и дайте нам знать, как это происходит или если у вас есть дополнительные вопросы.

...