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

FFmpeg拼接PNG报错:SAR参数不匹配问题排查与解决求助

FFmpeg合成PNG视频时SAR参数不匹配问题解决

问题场景

我尝试用FFmpeg将4张静态PNG合成视频,执行命令如下:

ffmpeg -y -loop 1 -framerate 24 -t 3 \
-i ./images/title-card.png -loop 1 -framerate 24 -t 4 \
-i ./images/001.png -loop 1 -framerate 24 -t 4 \
-i ./images/002.png -loop 1 -framerate 24 -t 3 \
-i ./images/003.png -loop 1 -framerate 24 -t 4 \
-filter_complex "[0][1][2][3]concat=n=4:v=1:a=0" \
/tmp/silentVideoTest.mp4

执行后报错:

[Parsed_concat_0 @ 0x5603df1c4080] Input link in1:v0 parameters (size 1024x1024, SAR 0:1) do not match the corresponding output link in0:v0 parameters (1024x1024, SAR 3937:3937)
[Parsed_concat_0 @ 0x5603df1c4080] Failed to configure output pad on Parsed_concat_0
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #3:0

更换第一张PNG后命令可正常执行,推测问题出在PNG的SAR参数上,但有以下困惑:

  • 错误提示难以理解;
  • 使用Krita、Pinta、Photopea导出图片时无设置SAR的选项;
  • 不知道如何查看图片的SAR值以验证问题。

我曾尝试用ffmpeg -i title-card.png -vf setsar=1 title-card-new-sar.png修改SAR,但效果不稳定。后续尝试设置不同SAR值后仍报错,比如将SAR设为1后,出现SAR 2834:2834与SAR 1:1不匹配的错误(两者比值实际相等);设置为2834:2834后,又出现SAR 0:1与SAR 2834:2834不匹配的问题。

解决方法

1. 查看PNG的SAR值

用FFmpeg直接读取图片元数据即可查看SAR:

ffmpeg -i title-card.png

输出内容里会包含类似SAR 0:1或SAR 3937:3937的行,这就是当前图片的样本宽高比(Sample Aspect Ratio)。

如果只想提取SAR信息,可使用更简洁的命令:

ffmpeg -i title-card.png 2>&1 | grep -o "SAR [0-9]*:[0-9]*"

2. 让FFmpeg自动统一SAR参数

无需手动修改每张图片的SAR,直接在拼接前给所有输入流强制设置统一的SAR值。修改后的命令如下:

ffmpeg -y -loop 1 -framerate 24 -t 3 \
-i ./images/title-card.png -loop 1 -framerate 24 -t 4 \
-i ./images/001.png -loop 1 -framerate 24 -t 4 \
-i ./images/002.png -loop 1 -framerate 24 -t 3 \
-i ./images/003.png -loop 1 -framerate 24 -t 4 \
-filter_complex "[0:v]setsar=1[s0];[1:v]setsar=1[s1];[2:v]setsar=1[s2];[3:v]setsar=1[s3];[s0][s1][s2][s3]concat=n=4:v=1:a=0" \
/tmp/silentVideoTest.mp4

该命令会先将每个输入流的SAR统一设置为1:1,再执行拼接操作,彻底规避SAR不匹配的问题。

3. 错误提示解析

错误中的SAR是样本宽高比,FFmpeg的concat滤镜要求所有输入流的分辨率、SAR、帧率等参数完全一致——哪怕比值相同但表示形式不同(比如1:1和2834:2834),也会被判定为不匹配。而SAR 0:1是无效的SAR值,通常由图片元数据异常导致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:30:59