ffmpeg退出代码1:配置复杂过滤器时出错

ryc*_*ell 5 ffmpeg fluent-ffmpeg

我正在使用fluent-ffmpeg节点包来合并视频.我正在完全遵循文档,但我收到以下错误:Error: ffmpeg exited with code 1: Error configuring complex filters. 这是代码:

ffmpeg('/videos/test/part1.mov')
  .input('/videos/test/part2.mov')
  .on('error', function(err) {
    console.log('An error occurred: ' + err.message);
  })
  .on('end', function() {
    console.log('Merging finished !');
  })
  .mergeToFile('videos/test/final.mp4', 'videos/test/tempDir');
Run Code Online (Sandbox Code Playgroud)

这是错误输出(我将fluent-ffmpeg生成的命令记录到控制台):

C:\Program Files\ffmpeg\bin\ffmpeg.exe [ '-formats' ] { captureStdout: true }
C:\Program Files\ffmpeg\bin\ffmpeg.exe [ '-encoders' ] { captureStdout: true }
C:\Program Files\ffmpeg\bin\ffmpeg.exe [ '-i',
  '/videos/test/part1.mov',
  '-i','/videos/test/part2.mov',
  '-y',
  '-filter_complex',
  'concat=n=2:v=1:a=1',
  'videos/test/final.mp4' ] { niceness: 0 }
An error occurred: Error: ffmpeg exited with code 1: Error configuring complex filters.
Invalid argument

at ChildProcess.<anonymous> (C:\test\node_modules\fluent-ffmpeg\lib\processor.js:169:22)
at ChildProcess.emit (events.js:98:17)
at Process.ChildProcess._handle.onexit (child_process.js:809:12)
Run Code Online (Sandbox Code Playgroud)

我可以在我的机器上运行ffmpeg以执行其他任务,并且工作正常.我不确定'-filter_complex'标志应该做什么.我使用的是fluent-ffmpeg版本2.0.1和ffmpeg windows static build git-9d1fb9e(2015-12-17).

ryc*_*ell 4

发生错误的原因是两个视频的帧大小不同。手动运行 ffmpeg 提供了更详细的输出:

[Parsed_concat_0 @ 04fd2b40] Input link in1:v0 parameters (size 1920x1080, SAR 1:1) do not match the corresponding output link in0:v0 parameters (1280x720, SAR 1:1)
[Parsed_concat_0 @ 04fd2b40] Failed to configure output pad on Parsed_concat_0
Error configuring complex filters.
Invalid argument
Run Code Online (Sandbox Code Playgroud)

文档中也提到了这一点: https: //trac.ffmpeg.org/wiki/Concatenate#filter