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

FFmpeg复杂滤镜画质劣化问题:720p输入输出近似240p画面

解决FFmpeg复杂滤镜缩放后画质骤降的问题

嘿,我来帮你排查这个FFmpeg复杂滤镜缩放后画质骤降的问题——这种情况我遇到过好几次,大概率是这几个细节没处理好:

1. 先检查你的scale滤镜参数是否写错了

你说已经缩放至720p,但很可能是参数设置出了问题:

  • 如果你直接写死宽高,要确保是720p的标准规格(比如16:9的话是scale=1280:720),别把宽高写反或者写成了更小的数值(比如480:270这种近似240p的尺寸)
  • 更稳妥的方式是用相对值保持宽高比,比如scale=-2:720(让FFmpeg自动计算对应宽度,避免拉伸或缩错比例)

2. 编码器默认码率太低,导致画质被过度压缩

就算分辨率是对的,如果FFmpeg用了默认的低码率编码,画面也会糊得像低分辨率。解决方法很简单:

  • 用CRF模式(推荐):添加-crf 23参数,数值越低画质越好(18-28之间是常用区间,23是默认),它会根据画面复杂度自动分配比特率
  • 或者固定码率:比如-b:v 3M(3Mbps),720p视频建议至少3M以上,动态画面多的话可以加到5M

3. 复杂滤镜链里藏着意外的分辨率修改

如果你的滤镜链里还有其他处理(比如crop、overlay或者多流操作),要注意:

  • 确保scale滤镜是在所有可能缩小画面的操作之后执行,避免先缩小再“缩放”(其实是放大低分辨率画面)
  • 检查输出的-map参数,别不小心映射了其他低分辨率的视频流或者错误的轨道

给你一个参考的正确命令示例

比如要把输入的720p视频用复杂滤镜缩放并保证画质:

ffmpeg -i input.mp4 -filter_complex "[0:v]scale=-2:720,format=yuv420p[v]" -map "[v]" -c:v libx264 -crf 22 -preset medium output.mp4

这里format=yuv420p是为了保证输出兼容绝大多数播放器,-preset medium平衡编码速度和压缩效率。

最后再确认下输入源的真实分辨率,用ffmpeg -i input.mp4就能看到Video流的详细信息,确保输入确实是720p规格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:43:44