我想截取视频的几个部分,然后使用连接 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'