Я настраиваю конечную точку 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» в качестве третьего аргумента, но он имеет тот же результат.
Любой вклад будет оценен! Спасибо!