【问题标题】:avconv: How to concatenate a bunch of flv files (h264 encoded video, adpcm_swf encoded audio)?avconv:如何连接一堆flv文件(h264编码视频,adpcm_swf编码音频)?
【发布时间】:2013-04-12 17:55:25
【问题描述】:

我想连接一些 .flv 文件(每个文件都是使用相同设置编码的 h264/adpcm_swf)。理想情况下,我想在文件之间添加一些剪辑——黑屏 1 或 2 秒就足够了。

我尝试过使用 avconv 的“concat”-protocol,如下所示:

avconv -i concat:1.flv\|2.flv\|3.flv result.flv

这给了我一个结果,它只包含 1.flv 的内容,并且似乎使用默认的 flv 设置重新编码。这可以通过提供适当的输出选项来处理,但理论上应该可以在不进行大量重新编码的情况下连接文件?

我的 avconv 版本:

avconv version 0.8.6-6:0.8.6-0ubuntu0.12.10.1, Copyright (c) 2000-2013 the Libav developers
  built on Apr  2 2013 17:02:16 with gcc 4.7.2
avconv 0.8.6-6:0.8.6-0ubuntu0.12.10.1
libavutil    51. 22. 1 / 51. 22. 1
libavcodec   53. 35. 0 / 53. 35. 0
libavformat  53. 21. 1 / 53. 21. 1
libavdevice  53.  2. 0 / 53.  2. 0
libavfilter   2. 15. 0 /  2. 15. 0
libswscale    2.  1. 0 /  2.  1. 0
libpostproc  52.  0. 0 / 52.  0. 0

【问题讨论】:

    标签: ubuntu-12.10 avconv


    【解决方案1】:

    您可以使用 ffmpeg 来连接电影。首先通过运行ffmpeg 检查您是否安装了ffmpeg。如果第一行以“FFmpeg 开发人员”结尾,那就没问题了。如果是“Libav 开发者”,那么 ffmpeg 就是 avconv 的一个别名(在 Ubuntu 上就是这种情况)。如果你没有 ffmpeg 并且真正的 ffmpeg 不在你的仓库中,你必须自己编译 ffmpeg。

    现在您已经有了真正的 ffmpeg,创建文件 inputs.txt 并包含以下文本:

    file 1.flv
    file 2.flv
    file 3.flv
    

    然后运行:

    ffmpeg -f concat -i inputs.txt -c copy result.flv
    

    【讨论】:

    • 这意味着您拥有avconv 并将ffmpeg 定义为avconv 的别名。从ffmpeg.org下载ffmpeg源码,如需使用上述方法,请自行编译。
    【解决方案2】:

    另一种使用 ffmpeg 连接文件而不需要将所有文件名存储在 txt 文件中的方法如下:

    ffmpeg -f concat -i <(for f in *.flv; do echo "file '$f'"; done) -c copy result.flv
    

    您可以将 *.flv 替换为您想要的任何文件类型。在这种情况下,不要忘记更改结果文件的扩展名。

    【讨论】:

      猜你喜欢
      • 2012-04-08
      • 2017-02-08
      • 2011-08-22
      • 2017-10-11
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      相关资源
      最近更新 更多