video - 如何在 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。
我知道这还不算太糟糕,但是我可以做出的任何加速都会有很大帮助,因为它在大量使用中。
有什么想法可以改进吗?
解决方案
使用快速-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
由于编码器已经优化,您无能为力。
改用你的播放器
如果您只需要并排播放文件,而不需要输出文件,则可以让播放器执行此操作,而无需进行任何编码。请参阅一个文件中的多个并排视频流,无需转码。