【问题标题】:How to extract video from multiple videos with ffmpeg?如何使用 ffmpeg 从多个视频中提取视频?
【发布时间】:2021-02-26 05:20:59
【问题描述】:

我想用 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 好几天了,但无法管理它。如果您能提供帮助,我将不胜感激。谢谢。

【问题讨论】:

    标签: video ffmpeg extract mpeg mpeg2-ts


    【解决方案1】:

    您可以在 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 = 音频流;最后一个数字 0 是只选择一个找到的流。为每个输入文件添加更多 [x:v:0][x:a:0] . 命令concat=n=2:v=1:a=1 告诉 FFmpeg 如何处理所有这些流(n=2,因为 2 个输入;为每个输入文件增加这个数字;v=1 用于一个视频;a=1 用于一个音频输出)。@987654327 @ 是过滤器的输出名称。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      相关资源
      最近更新 更多