在Ubuntu上合并多个(两个以上)视频

时间:2015-06-16 09:42:58

标签: ubuntu video ffmpeg concatenation mencoder

我想合并批量大小为二十(20)的视频。我正在运行Linux机器。视频采用mp4格式,质量适中。有些甚至丢失了音频流。到目前为止,我已经尝试过ffmpeg,mencoder,cvlc / vlc和MP4Box。我想编写一个命令行脚本来实现这一点,因为我正在进行批处理。

主要问题是我尝试的一些解决方案适用于两个视频,一些适用于带有音频流的视频,而另一些适用于我的视频集的其他部分。但是,我无法为此任务找到全面的解决方案。

3 个答案:

答案 0 :(得分:0)

FFmpeg是使用concat过滤器从命令行完成此操作的最佳方法。在我发现它之前,我尝试了20多种不同的方式,它就像一个魅力。如果视频没有音频,则命令为:

ffmpeg -i vid-1.mp4 -i vid-2.mp4 -filter_complex '[0:v] [1:v] concat=n=2:v=1 [v]' -map '[v]' output.mp4

如果视频有音频,您的命令将是:

ffmpeg -i vid-1.mp4 -i vid-2.mp4 -ar 44100 -ab 64k -ac 1 -c:a libmp3lame -filter_complex '[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 [v]' -map '[v]' -map '[a]' output.mp4

显然,您可以将音频比特率,频道等替换为其他数字,但这些都是非常标准的。

答案 1 :(得分:0)

更简单的选择是使用像Kdenlive这样的视频编辑工具。

答案 2 :(得分:0)

如果ffmpeg参数用法看起来很复杂并引起恐惧,就像对我一样,另一种替代方法是 mkvmerge

有关安装说明,请遵循>> MKVToolNix

mkvmerge -o /path/to/file/output_file.mkv /path/to/file/01.mp4 \+ /path/to/file/02.mp4 \+ /path/to/file/03.mp4 \+ ...

PS :我没有机会尝试使用其他格式化的媒体类型。