我有这段代码:
const ffmpegPath = require("@ffmpeg-installer/ffmpeg").path;
const ffmpeg = require("fluent-ffmpeg");
ffmpeg.setFfmpegPath(ffmpegPath);
app.put("/upload-content", async (req, res) => {
// 1. Get video and save locally to the server
const video = req.files.video;
const localTempPath = "./tmp/" + video.name;
video.mv(localTempPath, function (error) {
if (error) return res.send(error);
});
// 2. Convert video and apply settings
processVideo(localTempPath).catch((err) => {
return res.send(err);
});
return res.send("done");
});
function processVideo(localTempPath) {
return new Promise((resolve, reject) => {
ffmpeg(localTempPath)
.withVideoCodec("libx264")
.withSize("630x320")
.withOutputFormat("avi")
.on("error", (error) => reject("Failed to process video: " + error))
.on("progress", (progress) => console.log(progress))
.on("end", resolve("Successfully processed video"))
.saveToFile(localTempPath);
});
}
没有任何效果,我试过只带走音频,尝试更改视频编解码器,尝试输出而不是保存,在承诺之外尝试。我也尝试过不同的路径等。发送请求时,res.send('done')实际上会立即发送,因此清除也没有运行,没有错误,而且我知道函数正在运行,因为我在其中放置了调试语句。 ..依然没有。
森栏
相关分类