首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ffmpeg从多个视频中提取视频?

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

Stack Overflow用户
提问于 2020-11-14 12:19:15
回答 1查看 275关注 0票数 0

我想用ffmpeg从多个视频中提取视频。通常,我可以使用以下命令从一个大的视频文件中提取视频文件。

代码语言:javascript
复制
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等),而不是一个大文件。我想要提取的视频从其中一个部分开始,另一个部分结束。

我的问题是如何从多个视频中提取视频?

我已经和ffmpeq打交道好几天了,但没能处理好。如果你能帮忙,我会很感激的。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-01-06 21:56:54

您可以在FFmpeg中将所有部分实际上连接在一起:

代码语言:javascript
复制
./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=音频流;最后一个数字0是只选择一个找到的流。为每个输入文件添加更多的[x:v:0][x:a:0]。命令concat=n=2:v=1:a=1告诉FFmpeg如何处理所有这些流(n=2是因为有2个输入;增加了每个输入文件的数量;v=1用于一个视频;a=1用于一个音频输出)。[outv][outa]是过滤器的输出名称。

-map "[outv]" -map "[outa]"映射过滤器的输出以供进一步处理。

现在你有了一个虚拟视频/音频。例如,如果您有两个持续时间为10秒的输入文件,则虚拟流现在有20秒长。

你知道,-ss 00:04 -t 11已经在寻找和修剪视频了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64833814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档