目录
[一、tune 的本质(先纠偏)](#一、tune 的本质(先纠偏))
[二、x264 支持的 tune 全量清单](#二、x264 支持的 tune 全量清单)
[三、逐个 tune 详解(重点区)](#三、逐个 tune 详解(重点区))
[1.film ------ 真人电影 / 实拍素材首选](#1.film —— 真人电影 / 实拍素材首选)
[2.animation------ 动画 / 矢量内容亲妈](#2.animation—— 动画 / 矢量内容亲妈)
[3.grain ------ 胶片颗粒 / 老片修复](#3.grain —— 胶片颗粒 / 老片修复)
[4.stillimage ------ 静态图像序列](#4.stillimage —— 静态图像序列)
[5.psnr / ssim ------ 评测专用,反人类画质](#5.psnr / ssim —— 评测专用,反人类画质)
[6.fastdecode ------ 给烂播放器留活路](#6.fastdecode —— 给烂播放器留活路)
[7.zerolatency ------ 直播 / 实时通信必选](#7.zerolatency —— 直播 / 实时通信必选)
[四、x265 的 tune 差异点](#四、x265 的 tune 差异点)
[五、tune 能组合吗?](#五、tune 能组合吗?)
[六、tune 与 preset / crf 的关系(重要)](#六、tune 与 preset / crf 的关系(重要))
[七、新手最常问的 3 个问题](#七、新手最常问的 3 个问题)
[Q1:不写 tune 行不行?](#Q1:不写 tune 行不行?)
[Q2:直播为什么不用 film?](#Q2:直播为什么不用 film?)
[Q3:tune 能救"糊"吗?](#Q3:tune 能救“糊”吗?)
觉得有用,就请您帮忙点赞转发收藏吧,您的鼓励是我创作的动力,多谢看官。
由于能力水平有限,文中的错误或不严谨的地方在所难免,还请批评指正。
ffmpeg是一个非常强大的命令行工具,用于处理音频和视频文件。它支持多种格式的转换、剪辑、过滤、编码等操作。ffmpeg中的-tune参数是用来优化编码输出的,使其更适合特定的应用场景。
很多人用 FFmpeg 编码只会写:
-preset veryfast -crf 23
但遇到这些场景就开始抓瞎:
-
直播延迟高得离谱 → 加
-tune zerolatency -
动画转出来全是马赛克 → 听说要
-tune animation -
老电影噪点被压没了 → 有人让你加
-tune grain -
录屏字体发虚 →
-tune fastdecode?
-tune不是画质开关,也不是速度档,它是 "场景语义提示" :告诉编码器**"我现在压的是什么东西"**,让它把算法重心挪到对的地方。
本文就把 FFmpeg(主要是 libx264 / libx265)里 tune 的全家桶都说一说。
一、tune 的本质(先纠偏)
-tune= 在选定 preset 的基础上,针对某类内容做参数微调
它不会:
改变容器格式
覆盖 preset 的速度量级
单独决定码率/CRF
它会动的东西包括:
心理视觉优化强度(psy-rd)
运动估计偏好
deblock / 环路滤波
B 帧 / GOP 结构
延迟相关缓冲区(VBV/lookahead)
量化矩阵
一句话:
preset 管"算多久",tune 管"偏向谁"
二、x264 支持的 tune 全量清单
ffmpeg -h encoder=libx264
常见值:
film
animation
grain
stillimage
psnr
ssim
fastdecode
zerolatency
(部分旧版还有 psnr-fast之类,忽略)
三、逐个 tune 详解(重点区)
1.film ------ 真人电影 / 实拍素材首选
调了什么:
提高 psy-rd(心理视觉 RD 权重)
稍微加强色度量化保留
减少"平涂感"
效果:
肤色更自然
暗部细节更顺
同码率下主观画质↑
适合:
电影、纪录片、短视频实拍
YouTube / B 站投稿
-preset slow -tune film -crf 20
如果你不指定 tune,film 是最接近"默认最优"的
2.animation------ 动画 / 矢量内容亲妈
调了什么:
提高色度量化精度
弱化亮度平滑
更激进的 MB 分区(因为边缘多)
效果:
线条更锐
色块过渡不糊
减少"水彩化"
适合:
番剧、国创、Flash 转码
UI 录屏(部分情况)
-preset slow -tune animation -crf 22
实拍用 animation → 噪点变怪、皮肤像塑料
3.grain ------ 胶片颗粒 / 老片修复
调了什么:
降低 psy-trellis 平滑
保留高频噪声
量化时"故意不把噪点压掉"
效果:
胶片感保留
老电影不变成塑料脸
但码率会明显上涨
适合:
35mm 扫描片
噪点本身就是艺术风格
-tune grain -preset veryslow
不适合:
-
直播(码率爆炸)
-
动画(全是脏点)
4.stillimage ------ 静态图像序列
调了什么:
几乎禁用运动搜索
强化帧内编码
关掉临时噪声模型
适合:
PPT 转视频
电子书翻页
图片幻灯片
有运动画面用了会画质崩坏
5.psnr / ssim ------ 评测专用,反人类画质
调了什么:
关闭 psy-rd
纯粹优化数学指标
让人眼观感"更平、更死"
用途:
论文 benchmark
编码器对比
跑 PSNR/SSIM 曲线
绝对别用于成品分发(看起来更糊)
-tune psnr
6.fastdecode ------ 给烂播放器留活路
调了什么:
减少 CABAC 复杂度
限制环路滤波
降低 B 帧依赖
效果:
解码 CPU ↓
老手机 / 嵌入式能播
但压缩率变差
适合:
监控回放
低端机 HLS 分发
7.zerolatency ------ 直播 / 实时通信必选
调了什么:
关闭 lookahead
禁用 B 帧(或极少)
极小 VBV buffer
强制帧立即发出
效果:
端到端延迟从 1~3s → 100~300ms
同码率画质略降(B 帧没了)
适合:
RTMP / WebRTC / SRT
OBS 推流
-preset veryfast -tune zerolatency -g 30
zerolatency 不是画质 tune,是管道 tune
四、x265 的 tune 差异点
x265 也支持 tune,但侧重点不同:
| tune | 说明 |
|---|---|
psnr/ ssim |
同 x264,评测用 |
fastdecode |
解码端减负 |
zerolatency |
实时 HEVC 必备 |
grain |
HEVC 下更吃码率 |
animation |
效果不如 x264 明显 |
x265 没有 film这个独立 tune(默认心理视觉已经偏实拍)。
五、tune 能组合吗?
不能。只能一个:
-tune film ✅
-tune film,grain ❌(后者覆盖前者)
想要"film + grain"效果?只能手动改参数:
-preset veryslow
-psy-rd 1.2:0.15
-qcomp 0.7
六、tune 与 preset / crf 的关系(重要)
正确层级:
内容类型 → tune
时间预算 → preset
画质目标 → crf / bitrate
例子(直播动画):
-preset veryfast -tune zerolatency -crf 23
例子(番剧归档):
-preset veryslow -tune animation -crf 18
例子(老电影修复):
-preset slow -tune grain -crf 19
七、新手最常问的 3 个问题
Q1:不写 tune 行不行?
行。x264 默认相当于 偏向 film 的 neutral 状态。但显式写会更可控。
Q2:直播为什么不用 film?
film 会开 lookahead → 延迟↑。直播必须 zerolatency 优先。
Q3:tune 能救"糊"吗?
不能。糊 → 提码率 / 降 CRF / 换 slow。tune 只决定"细节长什么样"。
八、一张选型速查表
| 内容 | 推荐 tune |
|---|---|
| 实拍 / 短视频 | film |
| 番剧 / 动画 | animation |
| 老胶片 | grain |
| 直播 / RTC | zerolatency |
| 幻灯片 | stillimage |
| 低性能播放端 | fastdecode |
| 跑分评测 | psnr/ ssim |
九、总结
tune 不是"画质加强器",而是"场景翻译器":你把内容语义告诉 x264,它才敢把算力花在对的地方。
工程里的真理只有一句:
实拍用 film,动画用 animation,直播无脑 zerolatency,其余别乱加。