首页 > 解决方案 > 如何在 FFMPEG 中加速并排视频拼接

问题描述

我有两个相同大小和像素格式(约 240x360)的视频,我想将它们拼接在一起。

我在用着:

ffmpeg -i left.mp4 -i right.mp4  -filter_complex "[0:v][1:v]hstack=inputs=2:shortest=1[v]; [0:a][1:a]amerge[a]" -map "[v]" -map "[a]" -ac 2 -shortest -y output.mp4

在 3 核机器上大约需要 15 秒。我在转换线上看到 x1.25。

我知道这还不算太糟糕,但是我可以做出的任何加速都会有很大帮助,因为它在大量使用中。

有什么想法可以改进吗?

标签: videoffmpegmp4

解决方案


使用快速-preset

假设您将编码器 libx264 用于 MP4 输出,您可以使用更快的-preset. 请参阅FFmpeg 维基:H.264

ffmpeg -i left.mp4 -i right.mp4 -filter_complex "[0:v][1:v]hstack=inputs=2:shortest=1[v]; [0:a][1:a]amerge[a]" -map "[v]" -map "[a]" -preset veryfast -ac 2 -shortest -y output.mp4

由于编码器已经优化,您无能为力。

改用你的播放器

MPV播放器中并排视频的屏幕截图

如果您只需要并排播放文件,而不需要输出文件,则可以让播放器执行此操作,而无需进行任何编码。请参阅一个文件中的多个并排视频流,无需转码


推荐阅读