ffmpeg找不到合适的输出格式

时间:2018-10-16 11:10:09

标签: ffmpeg node.js

我正在使用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之后应该有双引号,并且应该在输出文件之前结束。我也尝试使用模板文字,但是它不起作用。

0 个答案:

没有答案