使用 ffmpeg 连接视频的各个部分

使用 ffmpeg 连接视频的各个部分

我想截取视频的几个部分,然后使用连接 ffmpeg 过滤器. 就像FFmpeg 文档中的示例,只不过所有片段均来自同一源视频。

这是我正在尝试的:

ffmpeg \
  -ss 1.0 -frames:v 20 -i myInput.mp4 \
  -ss 2.0 -frames:v 20 -i myInput.mp4 \
  -ss 3.0 -frames:v 20 -i myInput.mp4 \
  -filter_complex '[0:0][0:1][1:0][1:1][2:0][2:1]concat=n=3:v=1:a=2[v][a1][a2]' \
  -map '[v]' -map '[a1]' -map '[a2]' myOutput.mp4

当我尝试此操作时,出现以下错误(完整输出在这里):

Stream specifier ':0' in filtergraph description [0:0][0:1][1:0][1:1][2:0][2:1]concat=n=3:v=1:a=2[v][a1][a2] matches no streams.

一些东西:

  • 错误是怎么回事?根据 stderr 输出,这些流确实存在。我遗漏了什么?
  • 当列出输入时,-ss(和-frames:v)不应该反映在 stderr 输出的“Duration:... start:... ”行中吗?
  • “-frames:v”选项是否可以用于指定输入的持续时间?(显然-t仅用于输出?)有没有办法用秒而不是帧来指定输入的持续时间?

帮助我,LordNeckbeard——你是我唯一的希望!

答案1

ffmpeg.exe -f concat -safe 0 -i "D:\Clips\concatepath.txt" -c copy "D:\Clips\ConcatinatedVideo.mp4"

其中 concatepath.txt 文件包含所有视频路径。以下是示例

file 'D:\Clips\video1.mp4'
file 'D:\Clips\video2.mp4'

相关内容