Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在nodeJS中将音频和视频.webm文件合并为一个文件?_Node.js_Ffmpeg_Video Processing_Webm - Fatal编程技术网

Node.js 如何在nodeJS中将音频和视频.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

我有两个文件(音频和视频)在录制后输出。我试图将它们合并到node JS中,但没有成功

有人能告诉我如何合并音频和视频.webm文件吗

下面是我正在尝试的示例代码

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复制操作非常快