Декодирование Web64-закодированного видео в NodeJs - PullRequest
0 голосов
/ 16 апреля 2019

Я настраиваю конечную точку Express.js, которая будет поддерживать декодирование строки base64, полученной от клиента (запись камеры), которая в основном представляет собой закодированное видео webm. Проблема в том, что для проверки этого я пытаюсь создать видеофайл .webm из зашифрованной строки base64 на сервере. К сожалению, это приводит к появлению видеофайла, который невозможно воспроизвести из-за ошибки «Не найдено видео с поддерживаемым форматом и типом MIME» (Ubuntu 18.04). У меня не было никаких проблем с другими файлами .webm, но URL-адрес base64 наверняка будет правильным, так как я использую его в качестве источника элемента для воспроизведения записанного и работает нормально. Я подозреваю, что что-то не так с кодом, который генерирует файл на маршруте сервера.

import express from "express";
import multer from "multer";
import fs from "fs";
const router = express.Router();
// ...

router.post("/upload", multer().fields([]), (req, res) => {
  const formData = req.body;
  // formData.vid_string is the base64 encoded string
  fs.writeFileSync(
    "./test.webm",
    Buffer.from(formData.vid_string.split(",")[1], "base64")
  );

  res.sendStatus(200);
});

Я также пытался изменить код fs.writeFileSync и добавить «base64» в качестве третьего аргумента, но он имеет тот же результат. Любой вклад будет оценен! Спасибо!

...