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

FFmpeg缩放视频尺寸异常及缩略图捕获问题咨询

问题分析与解决方案

为什么显示尺寸和编码尺寸不一致?

这是**像素宽高比(SAR)和显示宽高比(DAR)**在搞鬼!你的视频编码分辨率确实是720×404,但FFmpeg可能继承了原视频的像素宽高比设置,或者自动给你加了一个小于1的SAR值。播放器播放时会按公式 显示宽度 = 编码宽度 × SAR 计算实际显示尺寸——你这里720×SAR=279,算下来SAR是279/720=0.3875,所以最终显示成了279×404。而FFmpeg默认截图是直接提取编码的像素数据,不会考虑SAR缩放,所以截图是720×404。

如何捕获279×404的缩略图?

要让FFmpeg按照播放器的逻辑,根据SAR计算显示尺寸后再截图,用滤镜指定按显示宽高比缩放即可。试试这个命令:

ffmpeg -i scaled.mp4 -y -f image2 -ss 1 -vframes 1 -vf "scale=trunc(ih*dar):ih" ./xx.jpg

这里trunc(ih*dar)会根据视频的显示宽高比(DAR)自动计算显示宽度,ih是视频的编码高度(404),生成的截图就会和播放器显示的尺寸完全一致。

如何让视频真正缩放至你定义的720×404(播放时也显示这个尺寸)?

关键是强制设置像素宽高比为1:1,让编码尺寸和显示尺寸完全对应。重新执行缩放命令时加上setsar=1:1滤镜:

ffmpeg -i input.mp4 -y -vf "scale=720:404,setsar=1:1" scaled_final.mp4

处理后视频的SAR就是1:1,播放器会直接按720×404的编码尺寸显示,不会再进行缩放。你可以用ffmpeg -i scaled_final.mp4验证,输出里会看到SAR=1:1和DAR=720:404的信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:02:35