我想将两个视频合并成一个。让我们以 Youtube 上的两个视频为例。我希望最终视频的高度 = 第一个视频的高度 + 第二个视频的高度,宽度 = max(第一个视频的宽度,第二个视频的宽度)。上半部分播放第一个视频,下半部分播放第二个视频。
您知道在 Linux 下如何执行此操作吗?使用 mencoder、ffmpeg 或任何其他命令行命令时最佳的可能性是什么?
答案1
这可以用 ffmpeg 来完成。如果视频大小相同:
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
'[0:v]pad=iw:ih*2:0:0[intv];[intv][1:v]overlay=0:H/2[vid]' \
-map [vid] -c:v libx264 -crf 22 -preset veryfast output.mp4
如果它们的大小不同(其中input1.mp4具有更高的分辨率):
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
'[0:v]pad=iw:ih*2:0:0[intv];[intv][1:v]overlay=(W-w)/2:H/2[vid]'
-map [vid] -c:v libx264 -crf 22 -preset veryfast output.mp4
如果您知道视频的分辨率,则可以获得更好的输出。假设 input1.mp4 较大(或至少具有相同的分辨率),并且 input2.mp4 的高度为 360:
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
'[0:v]pad=iw:ih+360:0:0[intv];[intv][1:v]overlay=(W-w)/2:H-360[vid]'
-map [vid] -c:v libx264 -crf 22 -preset veryfast output.mp4
答案2
答案3
我想我在这里找到了答案: https://stackoverflow.com/questions/575705/how-can-i-tile-videos-create-a-video-montage 我将仔细研究该帖子中发布的解决方案。