avconv:如何连接一堆flv文件(h264编码视频,adpcm_swf编码音频)?

时间:2013-04-12 17:55:25

标签: ubuntu-12.10 avconv

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

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

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

这给了我一个结果,它只包含1.flv的内容,似乎用默认的flv-settings重新编码。通过提供适当的输出选项可以实现这一点,但理论上应该可以在不重新编码的情况下连接文件吗?

我的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

2 个答案:

答案 0 :(得分:4)

您可以将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

答案 1 :(得分:1)

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

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

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