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

使用FFmpeg无重叠合并16:9视频并维持比例,主视频占80%以上、副视频置于右下角的方法

使用FFmpeg无重叠合并16:9视频并维持比例,主视频占80%以上、副视频置于右下角的方法

嘿,这个需求用FFmpeg完全可以搞定!核心思路是创建一个16:9的画布,把主视频缩放后占据大部分区域(80%以上),再把副视频缩放到合适尺寸放在右下角,两者完全不重叠,最终输出保持16:9比例。

我给你两种实现方式,一种是固定分辨率(适合已知原视频尺寸的情况),另一种是自适应比例(通用所有16:9视频):

一、固定分辨率实现(以1920×1080为例)

如果你的原视频是1920×1080的16:9格式,直接用这个命令:

ffmpeg -i main.mp4 -i sub.mp4 -filter_complex "
# 创建1920×1080的黑色画布,帧率和主视频一致
color=c=black:s=1920x1080:r=30[base];
# 主视频缩放到1920×864(占画布高度的80%,保持16:9)
[0:v]scale=1920:-1,scale=1920:864[main_scaled];
# 副视频缩放到384×216(画布宽度的20%,保持16:9)
[1:v]scale=384:-1[sub_scaled];
# 把主视频放在画布顶部
[base][main_scaled]overlay=0:0[tmp];
# 把副视频放在画布右下角(W是画布宽度,w是副视频宽度;H是画布高度,h是副视频高度)
[tmp][sub_scaled]overlay=W-w:H-h[out]
" -map "[out]" -map 0:a? -c:v libx264 -crf 23 -preset medium output.mp4

二、自适应比例实现(通用所有16:9视频)

如果你的原视频不是1920×1080,用这个自适应命令,会自动匹配主视频的分辨率:

ffmpeg -i main.mp4 -i sub.mp4 -filter_complex "
# 先获取主视频的原始分辨率,创建对应尺寸的黑色画布
[0:v]scale=iw:ih[main_original];
color=c=black:s=iw:ih:r=30[base];
# 主视频缩放到画布高度的80%,宽度自动保持16:9(如果要占满宽度,把scale改成iw:ih*0.8)
[main_original]scale=-1:ih*0.8[main_scaled];
# 副视频缩放到画布宽度的20%,高度自动保持16:9
[1:v]scale=iw*0.2:-1[sub_scaled];
# 主视频居中放置(如果要顶格放,把overlay参数改成0:0)
[base][main_scaled]overlay=(W-w)/2:0[tmp];
# 副视频固定放在右下角
[tmp][sub_scaled]overlay=W-w:H-h[out]
" -map "[out]" -map 0:a? -c:v libx264 -crf 23 -preset medium output.mp4

额外注意事项

  • 音频处理:上面的命令默认保留主视频的音频,如果需要把副视频的音频也混音进去,可以修改滤镜链,添加音频处理部分:
    ffmpeg -i main.mp4 -i sub.mp4 -filter_complex "
    # 视频部分和之前一致
    color=c=black:s=1920x1080:r=30[base];
    [0:v]scale=1920:-1,scale=1920:864[main_scaled];
    [1:v]scale=384:-1[sub_scaled];
    [base][main_scaled]overlay=0:0[tmp];
    [tmp][sub_scaled]overlay=W-w:H-h[out];
    # 音频混音,取较短的视频时长作为输出时长
    [0:a][1:a]amix=inputs=2:duration=shortest[aout]
    " -map "[out]" -map "[aout]" -c:v libx264 -crf 23 -preset medium output.mp4
    
  • 时长匹配:如果副视频比主视频长,想要输出时长和主视频一致,只需在最后一个overlay滤镜后加上:shortest=1,比如:overlay=W-w:H-h:shortest=1[out]
  • 参数调整:如果觉得主视频占比不够,可以把主视频的高度比例0.8改成0.85或更高,对应的副视频宽度比例改成0.15,只要两者的区域不重叠且整体保持16:9即可。
  • 编码参数:-c:v libx264是FFmpeg常用的H.264编码,*-crf 23是推荐的质量参数(数值0-51,越小质量越高、文件越大),-preset medium*平衡了编码速度和压缩率,你可以换成fast加快速度,或slow获得更小的文件。

备注:内容来源于stack exchange,提问作者Petr Glaser

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:00:33