Node.js 如何在nodeJS中将音频和视频.webm文件合并为一个文件?
我有两个文件(音频和视频)在录制后输出。我试图将它们合并到node JS中,但没有成功 有人能告诉我如何合并音频和视频.webm文件吗 下面是我正在尝试的示例代码Node.js 如何在nodeJS中将音频和视频.webm文件合并为一个文件?,node.js,ffmpeg,video-processing,webm,Node.js,Ffmpeg,Video Processing,Webm,我有两个文件(音频和视频)在录制后输出。我试图将它们合并到node JS中,但没有成功 有人能告诉我如何合并音频和视频.webm文件吗 下面是我正在尝试的示例代码 var util = require("util"); var child_process = require("child_process"); var exec = child_process.exec; const audioFile = "./RMa56600d80211
var util = require("util");
var child_process = require("child_process");
var exec = child_process.exec;
const audioFile =
"./RMa56600d802119433a6fcd59b5404ff49_works/MT56a3ad9dfad21408331fb93b2205061d/1.webm";
const videoFile =
"./RMa56600d802119433a6fcd59b5404ff49_works/MTf4a4283fa27c7f6193749f39462fdeec/1.webm";
const outputFileName = "./RMa56600d802119433a6fcd59b5404ff49_works/merged.webm";
function puts(error, stdout, stderr) {
console.log("Puts func called");
stdout ? util.print("stdout: " + stdout) : null;
stderr ? util.print("stderr: " + stderr) : null;
error ? console.log("exec error: " + error) : null;
}
exec("ffmpeg -i videoFile -i audioFile -map 0:0 -map 1:0 outputFileName", puts);
下面是我得到的错误
app.js:237未捕获类型错误:exec不是函数
值得一提的是,我目前在我的一个项目中成功地使用了webm/opus和mp4/mp4a文件。为了达到预期效果,我使用的ffmpeg命令如下所示:
ffmpeg -i vfn -i afn -vcodec copy -acodec copy ofn
但我使用:
const spawn = require('child_process').spawnSync;
const output = spawn('ffmpeg',['-i',vfn,'-i',afn,'-vcodec','copy','-acodec','copy',ofn]);
其中vfn、afn和ofn是视频、音频和输出文件名。我在分叉进程中使用它,所以同步阻塞不是问题。无论如何,ffmpeg复制操作非常快