You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并两个视频实现各占输出视频50%的上下分屏布局?

实现上下分屏视频合并(基于FFmpeg)

核心场景:两个视频分辨率一致

如果你的两个视频宽度、高度完全相同,直接用vstack滤镜垂直堆叠即可,执行以下命令:

ffmpeg -i top_video.mp4 -i bottom_video.mp4 -filter_complex "[0:v][1:v]vstack=inputs=2[v]" -map "[v]" -map 0:a? -map 1:a? -c:v libx264 -crf 23 output.mp4

参数说明:

  • [0:v][1:v]vstack=inputs=2[v]:将第一个输入视频的视频流(0:v)和第二个输入视频的视频流(1:v)垂直堆叠,输出标记为[v]
  • -map "[v]":指定输出视频采用堆叠后的流
  • -map 0:a? -map 1:a?:可选,自动保留两个视频的音频流(?表示仅当音频存在时才映射)
  • -c:v libx264 -crf 23:使用H.264编码,CRF23是兼顾画质和体积的默认参数

适配场景:两个视频分辨率不同

如果两个视频尺寸不一样,需要先统一每个视频的尺寸为输出分屏的单块大小(比如输出总分辨率1920x1080,单块就是1920x540),再堆叠:

ffmpeg -i top_video.mp4 -i bottom_video.mp4 -filter_complex "[0:v]scale=1920:540:force_original_aspect_ratio=decrease,pad=1920:540:(ow-iw)/2:(oh-ih)/2[v0];[1:v]scale=1920:540:force_original_aspect_ratio=decrease,pad=1920:540:(ow-iw)/2:(oh-ih)/2[v1];[v0][v1]vstack=inputs=2[v]" -map "[v]" -map 0:a? -map 1:a? -c:v libx264 -crf 23 output.mp4

参数说明:

  • scale=1920:540:force_original_aspect_ratio=decrease:按比例缩小视频,确保不超过1920x540的尺寸
  • pad=1920:540:(ow-iw)/2:(oh-ih)/2:给缩放后的视频补黑边,使其刚好填满1920x540的区域,画面居中
  • 后续的vstack操作和核心场景一致

额外提示

  • 如果其中一个视频时长更长,FFmpeg默认会以较短视频的时长截断输出。想要保留长视频的完整时长,可添加-shortest 0参数
  • 若只需要保留其中一个视频的音频,比如仅保留上半部分视频的音频,把-map 0:a? -map 1:a?替换为-map 0:a即可

内容的提问来源于stack exchange,提问作者Gadzhimurad Radzhabov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 22:23:19