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

如何通过FFmpeg命令行实现视频缩放与多素材合成?

用FFmpeg实现多素材合成的解决方案

当然没问题!FFmpeg就是干这个的好手——多层媒体合成、缩放、叠加一条龙都能搞定。我给你写好具体命令,再拆解每个部分的作用,你照着来就能得到想要的600x400输出视频。

完整FFmpeg命令

ffmpeg -i red_background.jpg -i overlay.png -i input_video.mp4 -filter_complex \
"[2:v]scale=422:282[v_scaled]; \
 [0:v]scale=600:400[bg]; \
 [bg][1:v]overlay=x=(W-w)/2:y=(H-h)/2[bg_with_png]; \
 [bg_with_png][v_scaled]overlay=x=(W-w)/2:y=(H-h)/2[final]" \
-map "[final]" -c:v libx264 -crf 23 -preset medium output_final.mp4

命令拆解(帮你理解每一步)

  • 输入素材:-i red_background.jpg -i overlay.png -i input_video.mp4 按顺序指定三个素材:红色背景图、PNG图、原MP4视频
  • 缩放视频:[2:v]scale=422:282[v_scaled] 把第三个输入(原视频)缩放成你要的422x282尺寸,给这个处理后的视频流起名叫v_scaled
  • 统一背景尺寸:[0:v]scale=600:400[bg] 强制把红色背景图调整为600x400(如果你的背景图本身就是这个尺寸,可以删掉这一行,直接用[0:v]作为背景层)
  • 叠加PNG到背景:[bg][1:v]overlay=x=(W-w)/2:y=(H-h)/2[bg_with_png] 将PNG图居中叠加在背景层上(W是背景宽度,w是PNG宽度,这个公式自动计算居中位置),得到带PNG的背景组合层
  • 叠加缩放后的视频:[bg_with_png][v_scaled]overlay=x=(W-w)/2:y=(H-h)/2[final] 再把缩放后的视频居中叠加到组合层上,得到最终的画面流final
  • 输出设置:-map "[final]" 指定用最终合成的画面流输出;-c:v libx264 -crf 23 -preset medium 用H.264编码输出MP4,crf23是平衡质量和体积的默认值,preset medium兼顾编码速度和压缩率

额外小贴士

  • 如果需要保留原视频的音频,在命令里加上 -map 2:a 即可(把原视频的音频流映射到输出)
  • 要是想调整PNG或视频的位置,直接修改overlay的x和y值就行,比如x=50:y=50就是距离左上角各50像素
  • 如果你的PNG图本身就是600x400,那居中叠加后会完全覆盖背景,你可以根据实际需求调整位置或透明度(比如加alpha=0.5让PNG半透明)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:24:10