我正在使用javascript从多个视频文件创建视频文件。我有一个数组,在其中存储我的源视频文件,然后使用以下命令并尝试生成单个视频:
ffmpeg -c:v libvpx -i sourceVideos/a1.mkv -c:v libvpx -i sourceVideos/a2.mkv -c:v libvpx -i sourceVideos/a3.mkv -filter_complex "[1]setpts=PTS+5.00/TB[a2];[2]setpts=PTS+10.00/TB[a3];[0][a2]overlay[o2];[o2][a3]overlay" with4.mp4
当我在控制台中运行命令时,它可以完美运行,但是我正在使用execFileSync从javascript程序创建视频,
let myString2 = '"' + string2;
let myString3 = string3 + '"';
let argsString = myString2 + myString3;
let myArgs = argsString.toString();
const createMasterStreams = execFileSync('ffmpeg', [string1, '-filter_complex', myArgs, masterOutFile]);
string1,string2和string3的内容如下:
string1: -c:v libvpx -i sourceVideos/a1.mkv -c:v libvpx -i sourceVideos/a2.mkv -c:v libvpx -i sourceVideos/a3.mkv
string2: [1]setpts=PTS+5.00/TB[a2];[2]setpts=PTS+10.00/TB[a3];
string3: [0][a2]overlay[o2];[o2][a3]overlay
当我运行程序时,出现以下错误:
[NULL @ 0000026d8d77ad80] Unable to find a suitable output format for '"[1]setpts=PTS+5.00/TB[a2];[2]setpts=PTS+10.00/TB[a3];[0][a2]overlay[o2];[o2][a3]overlay"'
"[1]setpts=PTS+5.00/TB[a2];[2]setpts=PTS+10.00/TB[a3];[0][a2]overlay[o2];[o2][a3]overlay": Invalid argument
child_process.js:624
我在做什么错??
以下错误表明参数周围的双引号缺失:
Error: Command failed: ffmpeg -c:v libvpx -i sourceVideos/a1.mkv -c:v libvpx -i sourceVideos/a2.mkv -c:v libvpx -i sourceVideos/a3.mkv -filter_complex [1]setpts=PTS+5.00/TB[a2];[2]setpts=PTS+10.00/TB[a3];[0][a2]overlay[o2];[o2][a3]overlay with4.mp4
-filter_complex之后应该有双引号,并且应该在输出文件之前结束。我也尝试使用模板文字,但是它不起作用。