【问题标题】:Concat multiple video and audio files with ffmpeg使用 ffmpeg 连接多个视频和音频文件
【发布时间】:2014-04-09 17:51:11
【问题描述】:

我有一组音频和视频剪辑,其中每个音频剪辑与其视频剪辑具有 1:1 的相关性。每个视频和每个音频剪辑的编码都是相同的。如何连接所有音频剪辑和所有视频剪辑,然后将它们合并在一起以输出视频。到目前为止,我只知道如何将 1 个音频剪辑与 1 个视频剪辑合并:

$ ffmpeg -i video_1.webm -i audio_1.wav -acodec copy -vcodec copy output.mkv

更新 我刚刚遇到mkvmerge,这可能是一个更好的选择吗?

【问题讨论】:

    标签: ffmpeg codec


    【解决方案1】:

    如果所有文件都使用相同的编解码器进行编码,那么这很容易做到。首先像您已经完成的那样合并音频和视频文件,这样每对文件都包含在一个 mkv 中。然后你可以像这样使用 concat demuxer 连接它们:

    ffmpeg -f concat -i <(printf "file '%s'\n" ./file1.mkv ./file2.mkv ./file3.mkv) -c copy merged.mkv
    

    或:

    ffmpeg -f concat -i <(printf "file '%s'\n" ./*.mkv) -c copy merged.mkv
    

    您还可以在名为 mergelist.txt(或任何您想要的名称)的文本文件中每行列出一个文件,即:

    file './file1.mkv'
    file './file2.mkv'
    file './file3.mkv'
    

    然后将其用作输入,a la:

    ffmpeg -f concat -i mergelist.txt -c copy merged.mkv
    

    这是迄今为止最简单、最快速的方式,因为它不会重新编码文件,只需将它们一个接一个地排列。

    【讨论】:

      【解决方案2】:

      您可以在这个老问题中找到答案:

      Concatenate two mp4 files using ffmpeg

      此答案不限于 MP4。但这取决于您要连接的文件格式!

      一旦您有了新的 VIDEO 文件和 AUDIO 文件,将它们合并在一起:

      ffmpeg -i AUDIO -i VIDEO -acodec copy -vcodec copy OUTPUT

      【讨论】:

      • 我会尝试连接视频文件,但是我该如何处理连接的视频文件,并将它们合并/添加到连接的音频文件中?
      • 很好,很好用!最后一个问题,音频和视频文件是否被压缩了两次,一次在 concat 期间,一次在合并期间?或者,ffmpeg 是否只是简单地组合没有压缩的文件?
      • 取决于你连接它们的方式,它们必须被重新编码......我给你的​​最后一步不需要重新编码。参数“-acodec copy”和“-vcodec copy”保证只是一个transmux,不会损失任何质量。
      • 对不起,如何从问题中重复命令行来回答问题?他想连接多个文件,这意味着一个接一个,而不是一个接一个。这肯定会将音频 A 和视频 B 合并到 MKV C 中,但不会帮助他连接 MKV A MKV B 和 MKV C。
      • 阅读一遍。最初,他将音频和视频分开。我解释说他已经拥有的命令只是加入音频+视频。如何连接视频和如何连接音频是他的实际问题。我给了他一个链接……一旦连接起来,他就可以使用他已经知道的命令来加入音频+视频。
      猜你喜欢
      • 1970-01-01
      • 2016-09-06
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 2023-04-06
      • 2013-05-22
      • 2019-09-12
      相关资源
      最近更新 更多