【发布时间】:2019-04-15 23:15:00
【问题描述】:
我正在设置一个 Express.js 端点,该端点将支持解码来自客户端(相机记录)的 base64 字符串,这基本上是一个编码的 webm 视频。 问题是为了验证这一点,我试图从服务器上编码的 base64 字符串创建一个 .webm 视频文件。不幸的是,由于“没有找到支持格式和 MIME 类型的视频”错误(Ubuntu 18.04),导致视频文件无法播放。 我对任何其他 .webm 文件都没有任何问题,但 base64 URL 肯定是正确的,因为我在 cliet 上使用它作为元素的源来重放记录的内容并且工作正常。 我怀疑的问题是在服务器路由上生成文件的代码有问题。
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”作为第三个参数,但结果相同。
任何输入将不胜感激!谢谢!
【问题讨论】:
标签: node.js base64 decoding webm