我正在寻找一个开源视频编辑程序,可以将两个视频合并为一个视频,两个视频可以并排播放(见示例这里)
一个视频是用我自己的一组图像制作的(从 powerpoint 演示文稿导出),因此没有声音,如果需要可以调整速度
有什么建议 ?
答案1
您描述的合并行为称为画中画 (PiP),或者更具体地说,它被称为画中画(PaP、P&P),通常称为画中画(PbP)。
对于 Linux,你可以尝试使用西内拉拉到创建 PIP 视频。
对于 Windows,您将面临很多试用版/共享软件,因此最好的选择是专业软件。
要编写自己的解决方案,您可以使用这个 OpenCV 示例。
答案2
我相信 VideoPad 视频编辑器可以做到这一点......
答案3
ffmpeg 无所不能:D
假设两个视频的分辨率相同(input1.mp4 位于左侧,input2.mp4 位于右侧,这将从 input1.mp4 中获取音频):
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
'[0:v]pad=iw*2:ih:0:0[left];[left][1:v]overlay=W/2:0[out]' \
-map [out] -map 0:a -c:a copy \
-c:v libx264 -crf 23 -preset veryfast output.mp4
首先,软垫过滤器从 input1.mp4 中获取视频[0:v]
,并将其宽度加倍(在右侧添加额外的黑色负载),创建一个名为 的输出[left]
。然后,覆盖过滤器将 input2.mp4 中的视频[1:v]
放在 右侧的黑色区域上[left]
,创建一个名为 的输出[out]
。-map [out] -map 0:a
告诉 ffmpeg 在最终编码中使用 [out] 和 input1.mp4 中的音频。其余部分都是标准编码选项。
为了实现与问题中链接的视频类似的效果(即,左侧上角有一个较小的视频,右侧有一个较大的视频),您必须知道较小视频的分辨率。假设它的宽度为 320:
ffmpeg -i input-large.mp4 -i input-small.mp4 -filter_complex \
'[0:v]pad=iw+320:ih:320:0[right];[right][1:v]overlay=0:0[out]' \
-map [out] -map 0:a -c:a copy \
-c:v libx264 -crf 23 -preset veryfast output.mp4