我一直在尝试在一些 JavaScript 代码中使用 FFMPEG 修剪视频。
代码执行时不会抛出任何错误。
try {
const command = `ffmpeg -i ${
CROPPING_DIR + CROPPED_VIDEO_PREFIX + id + ".mp4"
} -ss 00:00:04 -to 00:00:06 -c copy ${
CROPPING_DIR + TRIMMED_VIDEO_PREFIX + id + ".mp4"
}`;
console.log(command);
const { stdout, stderr } = await exec(command);
return "NA";
} catch (error) {
console.error("Error executing ffmpeg command:", error);
}
在 VsCode 中,我无法查看修剪后的视频。相反,我看到“加载视频文件时发生错误”。
从文件资源管理器中查看,没有显示视频帧,但我可以看到视频进度条在移动。
我尝试了许多 FFMPEG 命令,但得到了相同的结果。
ffmpeg -i C:/Users/bryan/Desktop/Other/project/code/project/app/cropping_images/_cropped_d372d8ff-84c8-4cab-9359-513ee6ad7536.mp4 -ss 00:00:04 -to 00:00:06 -c copy C:/Users/bryan/Desktop/Other/project/code/project/app/cropping_images/_trimmed_d372d8ff-84c8-4cab-9359-513ee6ad7536.mp4
ffmpeg -i C:/Users/bryan/Desktop/Other/project/code/project/app/cropping_images/_cropped_87f094f2-b06f-4c21-bd41-ae5e4ca222ae.mp4 -ss 1.05 -to 2.45 -c copy C:/Users/bryan/Desktop/Other/project/code/project/app/cropping_images/_trimmed_87f094f2-b06f-4c21-bd41-ae5e4ca222ae.mp4
ffmpeg -i C:/Users/bryan/Desktop/Other/project/code/project/app/cropping_images/_cropped_f5b89e96-3efc-4a6e-bba4-428751fb38eb.mp4 -ss 0.00 -to 6.93 -c:v copy -c:a copy C:/Users/bryan/Desktop/Other/project/code/project/app/cropping_images/_trimmed_f5b89e96-3efc-4a6e-bba4-428751fb38eb.mp4
如果您查看浏览器的调试控制台,您会看到一些错误:
“await”是为异步函数设计的,但 exec() 是同步的,所以从这一行中删除它...
const { stdout, stderr } = await exec(command);
这种在不知名的地方返回是非法的,所以将其注释掉......
return "NA";
因此解决这两个问题是一个很好的起点!