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

如何用FFmpeg直接实现0.55秒间隔的纯色循环淡变10秒视频?

解决方案

核心思路

直接利用FFmpeg的滤镜链生成纯色源,通过fade或concat滤镜实现颜色循环切换/淡变,无需生成任何中间PNG文件。


方案1:硬切换(严格0.55秒间隔切换颜色)

如果需求是到点直接切换颜色(无过渡),用concat+loop滤镜实现,命令简洁高效:

-f lavfi -i "color=c=#FF0000:s=640x480:d=0.55,loop=loop=-1:size=1[hex1];color=c=#0000FF:s=640x480:d=0.55,loop=loop=-1:size=1[hex2];[hex1][hex2]concat=n=2:v=1:a=0,trim=duration=10" -c:v libx264 output.mp4
  • 替换#FF0000和#0000FF为你的目标十六进制颜色值
  • loop=-1让单帧无限循环,concat将两个循环流拼接成交替序列,trim裁剪到10秒时长

方案2:淡变过渡(每0.55秒完成一次颜色淡变)

如果需求是两个颜色之间平滑淡变(0.55秒完成一次淡入/淡出),用fade+overlay滤镜实现:

-f lavfi -i "color=c=#FF0000:s=640x480:d=10[bg];color=c=#0000FF:s=640x480:d=10[fg];[fg]fade=t=in:st=0:d=0.55,fade=t=out:st=0.55:d=0.55,fade=t=in:st=1.10:d=0.55,fade=t=out:st=1.65:d=0.55,fade=t=in:st=2.20:d=0.55,fade=t=out:st=2.75:d=0.55,fade=t=in:st=3.30:d=0.55,fade=t=out:st=3.85:d=0.55,fade=t=in:st=4.40:d=0.55,fade=t=out:st=4.95:d=0.55,fade=t=in:st=5.50:d=0.55,fade=t=out:st=6.05:d=0.55,fade=t=in:st=6.60:d=0.55,fade=t=out:st=7.15:d=0.55,fade=t=in:st=7.70:d=0.55,fade=t=out:st=8.25:d=0.55,fade=t=in:st=8.80:d=0.55,fade=t=out:st=9.35:d=0.55[fg_faded];[bg][fg_faded]overlay" -c:v libx264 -r 60 -t 10 output.mp4
  • color滤镜直接生成两种纯色背景流,时长10秒
  • fade滤镜按0.55秒间隔设置淡入/淡出:t=in是淡入,st是起始时间,d是淡变时长
  • overlay将带淡变效果的前景色叠加到背景色上
  • -r 60设置60帧/秒保证时间精度,避免切换卡顿

优化说明

  • 若需调整淡变时长,修改fade滤镜的d参数即可(比如设为0.1秒实现快速淡变)
  • 颜色值支持十六进制(#RRGGBB)或RGB数值(rgb(255,0,0))两种格式
  • 输出格式可根据需求替换,比如改为output.mkv或output.gif

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:15:06