繁体   English   中英

如何使用 ffmpeg 从多个视频中提取视频?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM