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

FFmpeg处理1920×1080图片交叉淡入报错的原因及解决方法

问题分析与解决:FFmpeg Blend滤镜SAR不匹配错误

错误原因

这个报错的核心是两张输入图片的样本宽高比(SAR, Sample Aspect Ratio)不一致:

  • 第一张图的SAR是 0:1(这是一个无效的SAR值,通常意味着图片元数据里没有正确记录SAR,或者记录有误)
  • 第二张图的SAR是 1:1(标准的正方形像素宽高比)

FFmpeg的blend滤镜要求所有输入视频流的核心参数(包括分辨率、SAR、帧率等)必须完全一致,否则无法完成帧混合的配置——你的测试图(1024×768)刚好SAR参数一致,所以能正常运行,但原始1080p图片的SAR不匹配就触发了这个错误。

解决方法

只需要强制统一两张输入图片的SAR参数即可,这里推荐两种简单的实现方式:

方式1:给每个输入单独设置SAR

在每个输入文件后添加-filter:v setsar=1:1,强制将图片的SAR设置为标准的1:1(正方形像素):

ffmpeg -loop 1 -i 1-test.jpg -filter:v setsar=1:1 -loop 1 -i 2-test.jpg -filter:v setsar=1:1 -filter_complex "[1:v][0:v]blend=all_expr='A*(if(gte(T,3),1,T/3))+B*(1-(if(gte(T,3),1,T/3)))'" -t 4 frames_%04d.png

方式2:在滤镜链中统一处理

如果习惯用filter_complex统一管理所有滤镜,可以把SAR设置整合到复合滤镜链里:

ffmpeg -loop 1 -i 1-test.jpg -loop 1 -i 2-test.jpg -filter_complex "[0:v]setsar=1:1[bkg];[1:v]setsar=1:1[fg];[fg][bkg]blend=all_expr='A*(if(gte(T,3),1,T/3))+B*(1-(if(gte(T,3),1,T/3)))'" -t 4 frames_%04d.png

这两种方式都能让两张图片的SAR参数完全对齐,满足blend滤镜的要求,从而正常生成淡入效果的帧序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:15:17