[英]How to extract video from multiple videos with ffmpeg?
我想使用 ffmpeg 从多个视频中提取视频。通常,我可以使用以下命令从一个大视频文件中提取视频文件。
ffmpeg -ss 648 -t 29 -i /MatrixMovie.ts -f mpegts -pix_fmt yuv422p -c:v libx264 -preset ultrafast -map 0 snapshot.ts
但是现在我有这个视频文件的 10 分钟部分(MatrixMovie_part1.ts、MatrixMovie_part2.ts 等)而不是一个大文件。 我要提取的视频从这些部分之一开始,到另一部分结束。
我的问题是如何使用 ffmpeg 从多个视频中提取视频?
几天来我一直在处理 ffmpeq 但无法管理它。 如果您能提供帮助,我将不胜感激。 谢谢你。
您可以将 FFmpeg 中的所有部分虚拟地串联在一起:
./ffmpeg -i file1.ts -i file2.ts -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -ss 00:04 -t 11 out.ts
简短说明:
-i <file>
为您拥有的每个源文件添加
现在我们需要将所有文件合并到一个过滤器-filter_complex
中。 [0:v:0][0:a:0][1:v:0][1:a:0]
定义所有相关输入(第一个数字是输入文件的计数器;v = 视频流,a = audio-stream; 最后一位 0 是只挑选一个找到的 stream。为每个输入文件添加更多[x:v:0][x:a:0]
。命令concat=n=2:v=1:a=1
告诉 FFmpeg 如何处理所有这些流(n=2 因为有 2 个输入;每个输入文件增加这个数字;一个视频 v=1;一个音频输出 a=1)。 [outv][outa]
是过滤器的 output 名称。
-map "[outv]" -map "[outa]"
映射过滤器的 output 以供进一步处理。
现在你有一个虚拟视频/音频。 例如,如果您有 2 个持续时间为 10 秒的输入文件,则虚拟 stream 现在是 20 秒长。
-ss 00:04 -t 11
您已经知道要搜索和修剪视频。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.