我正在寻找一个命令来合并两个视频文件,但是我希望视频以分屏、逐帧的方式合并,而不是一个接一个地合并。
有什么想法吗?似乎使用 ffmpeg 无法实现这一点。
答案1
使用最新版本的 ffmpeg(假设两个视频的分辨率相同):
ffmpeg -i input1.mp4 -i input2.mp4 \
-filter_complex \
"[0:v]pad=iw*2:ih[int]; \
[int][1:v]overlay=W/2:0[vid]" \
-map "[vid]" \
-c:v libx264 -crf 23 \
output.mp4
这实际上使 input1.mp4 的大小增加了一倍填充右侧的黑色部分与原始视频大小相同,然后将 input2.mp4 放在黑色区域的顶部,覆盖筛选。
如果您的某个视频包含需要添加到输出的音轨,请添加-map 0:a
第一个文件的音频或-map 1:a
第二个文件的音频的选项。
如果您想要混合两个音轨,请使用以下amix
过滤器:
ffmpeg -i input1.mp4 -i input2.mp4 \
-filter_complex \
"[0:v]pad=iw*2:ih[int]; \
[int][1:v]overlay=W/2:0[vid]; \
[0:a][1:a]amix=inputs=2:duration=longest[aud]" \
-map "[vid]" \
-map "[aud]" \
-c:v libx264 -crf 23 \
-c:a aac -b:a 192k \
output.mp4
答案2
这可以通过 SOC 版本的 libavfilter 和一些巧妙的方法来实现