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

为什么使用FFmpeg将PNG序列合成视频后尺寸出现异常变化?

问题原因

你遇到的高度缩减问题是libx264编码器的像素格式对齐要求导致的:

  • libx264默认使用YUV 4:2:0像素格式,该格式下色度通道的分辨率是亮度通道的1/2,要求视频宽高都必须为偶数
  • 部分编码预设会额外要求宽高对齐到8的整数倍,你的目标高度540无法被8整除,ffmpeg会自动将高度向下调整到最近的符合要求的数值536,因此最终输出高度少了4像素。

解决方法

场景1:必须严格保留928x540的输出尺寸

可以指定编码器使用不需要宽高对齐的YUV 4:4:4像素格式,调整后的命令如下:

ffmpeg -y -r 25 -start_number 0 -i frame%d.png -vf scale=928:540 -c:v libx264 -crf 0 -pix_fmt yuv444p out.mp4

注意:YUV 4:4:4格式的视频兼容性略差,部分老旧播放器可能无法正常播放。

场景2:需要兼容通用播放器(保留YUV 4:2:0格式)

你可以选择两种处理方式:

  1. 用pad滤镜补全高度到符合对齐要求的544,上下各加2像素黑边,内容无裁剪:
ffmpeg -y -r 25 -start_number 0 -i frame%d.png -vf "scale=-1:540,pad=width=928:height=544:x=0:y=2:color=black" -c:v libx264 -crf 0 out.mp4
  1. 强制scale滤镜仅对齐到2的倍数,不需要对齐到8,直接输出928x540的YUV 4:2:0视频:
ffmpeg -y -r 25 -start_number 0 -i frame%d.png -vf scale=-1:540:force_divisible_by=2 -c:v libx264 -crf 0 out.mp4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:45:03