色彩
素材是混合的:Log 摄像机、HDR 手机、库存素材、AI 生成、RAW 照片。如果直接使用而不作处理,每个镜头都带有自身的光线和色调,整个作品看起来就像拼凑起来的一样。这项技能在处理文件前会对其进行测量,先转换后校正,并始终提供前后对比图。
详细信息位于此文件旁边的 referencias/ 目录中:
| 文件 | 内容 |
|---|---|
perfiles.md | 通过测量检测 S-Log3 和 HLG;曲线、矩阵和转换到 Rec.709 的 LUT;色彩标签 |
luts.md | 为辅助镜头调色,逐镜头 LUT(匹配镜头),人物和背景分离为两层,.cube 格式 |
lumetri-por-script.md | 通过脚本在 Premiere 中进行调色:结构、Lumetri 索引、陷阱、测量响应、目标 |
fotos-raw.md | 以肤色为参考显影 RAW 照片,以及照片和镜头的方向 |
流程
- 通过测量识别输入内容。 使用
ffprobe检查标签(color_transfer、color_primaries、color_space),如果显示unknown,则使用亮度百分位数。同时检查旋转角度和实际帧率。 - 将所有非 Rec.709 内容转换为 Rec.709,在任何其他操作之前:HLG → SDR,S-Log3 → Rec.709。强制设置输出标签。
- 在使用前为每个辅助镜头调色(B-roll、库存素材、AI 生成、客户提供),并附带前后对比图。
- 匹配镜头间的色彩。 提供“中性或一个参考镜头”选项,让用户选择哪个是基准。
- 当肤色和背景色调接近时,分离人物和背景: 在 rotoscoping 上应用两个 LUT。
- 在 Premiere 中进行调色: 在 V1 轨道上为每个镜头设置一个 Lumetri 效果,并将通用 Look 放在一个调整图层上。每次调整都通过导出一帧来测量效果。
- 在 Premiere 中或通过测量渲染输出来验证, 切勿在 QuickTime 中验证,并提供对比图。
不可违反的规则
每条规则都源自一次真实的校正经历。
- 测量的是文件本身,而不是它的文件名或标签。
因为 S-Log3 素材的标签是
unknown,看起来像是“缺少对比度”;有些 HLG 素材的文件名并未明确说明。 - 先转换,后调色。 因为在未转换的 Log 或 HLG 上进行色彩校正会导致画面发灰或出现橙色色偏。
- 所有辅助镜头在进入正片前必须经过调色: 正确的曝光、鲜活但可信的饱和度、牢固的对比度和中性的色温。 因为每个来源都有自己的光线和色调,整个作品看起来会像拼凑起来的一样。
- 三个通道使用相同的电平调整;仅使用接近灰色的像素进行白平衡。 因为单独拉伸每个通道会将被摄物的颜色误认为色偏:红色铁锈变成了黄色和紫色,而蓝色调的粉末状黄金也失真了。
- 在真正暖色调的场景中,绝不要单独调整每个通道的增益。 暖色调应通过 split-tone 和色调区域来建模。 因为每个通道的增益调整会破坏原本中性的灰色(在白色衣物和纸张上尤其明显)。
- 参考镜头由用户选择。 因为由你选择的“暖”参考镜头可能会显得太黄;之前就发生过。
- 在遮阳篷或彩色帐篷下,从第一次处理开始就测量肤色, 而不是测量中值或灰色。 因为帐篷主导了画面,导致脸部显得暗淡、偏黄和偏绿。
- 如果脸部在画面中占比很小,则以镜头的对比度为准。 黑色保持为黑色,并保留细节。 因为通过提升曝光度和阴影来提亮小脸会提高黑电平并冲淡色彩:结果就是“看起来很平”。
- 在最终处理前询问用户的偏好: 明亮通透,还是高对比度。如果没有回应,则选择更亮的方案。 因为一个虽然测量准确但对比度高且偏暗的 Look 曾被反馈为“调色太暗”。
- 在 Premiere 中或通过测量渲染输出来判断效果, 而不是在 QuickTime 或 Finder 的快速预览中。 因为那些应用程序应用了 Apple 的伽马曲线,会使得正确的输出看起来发灰。
- 始终对比前后对比图;对于颜色强烈的被摄物(金色、铁锈、产品),以 100% 的比例与原素材对比。 因为自动校正可能会改变被摄物的色调,而在缩略图中难以察觉。
- 对于在摄影棚背景下拍摄的客户产品,只在必要时才进行调整。 因为其背景已经过精心调整,任何修改都会打破这种平衡。
- 低分辨率素材不要全屏显示。 大特写镜头需要原生 1080p 或更高分辨率;重新缩放仅适用于小卡片。 因为没有任何色彩能修复模糊的图像。
- 在判断一张“拍得不好”的照片或片段之前,先检查其方向。 因为某些工具会忽略方向信息,导致你会丢弃那些只因为显示方向错误而看起来不好的好素材。
数值参考
| 项目 | 数值 |
|---|---|
| S-Log3 特征(8 位) | 第 1 百分位 ≈ 24–30 · 第 99 百分位 ≈ 148 · 最大值 ≈ 167 |
| HLG | color_transfer = arib-std-b67, primaries bt2020;在 Premiere 中,getColorSpace() trc 18 / prim 9(Rec.709 = 1 / 1) |
| LUT | 33³(35,937 个条目),四面体插值 |
| 辅助镜头调色 | 黑色位于通道最小值第 0.4 百分位,白色位于通道最大值第 99.6 百分位 · 使用饱和度 < 0.14 且亮度 0.18–0.85 的像素进行白平衡,强度 80%,限制在 ±10% · 目标平均亮度 0.44(暗场景为 0.34) · 饱和度 ×1.15(对于金色或其他强烈颜色为 ×1.0) |
| 镜头匹配 | 在 LAB 色彩空间中对主体中央裁剪区域应用 Reinhard 色调映射 · 强度 0.6 · 缩放限制在 0.65–1.6 |
| 调色良好且光线充足的镜头 | p1 ≈ 7 · p50 ≈ 92–124 · p99 ≈ 243 · 灰色部分 a* +0.8 / b* +4(自然暖色调) |
| 曝光良好的镜头 | 亮度第 95 百分位 ≈ 190–230 |
| 处于阴影中的脸部 | L* ≈ 45–52,且不超过画面中值 ~150 |
| 阴天室外,明亮 Look | 中值 ≈ 110–125(基于 255 范围) |
| Look 中的渐晕 | −0.25(达到 −0.5 时,角落变暗约 17%) |
技术陷阱
- ffmpeg 会保留 HLG 标签,即使你传递了
-color_trc bt709,Premiere 或 Remotion 会再次进行转换:导致金色变成橙色。在滤镜链末尾强制设置setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,并用ffprobe验证。 - 没有自动色调映射的序列会直接使用 HLG 素材,导致导出画面发灰。Premiere 的偏好设置“宽动态范围监控”会在屏幕上显示漂亮的 HDR 图像,但这并非导出结果:请关闭它。
- 在低分辨率下学习的 LUT 会使饱和颜色变成橙色:请在 1080p 或更高分辨率下学习 LUT。
- “凭记忆”的色彩矩阵通常会导致绿色和蓝色通道的行不正确:请从基色推导它们。
- 通过脚本控制 Lumetri: 单个色温改变会被当作色调调整;请连续三次设置这对参数(参见
lumetri-por-script.md)。 - 新的 LUT 只有在 Premiere 启动时才会加载,脚本中的“输入 LUT”指向的是一个索引,而不是文件路径。
- Lumetri 的“自动”不是一个好的起点: 它倾向于冷却画面,留下品红色色偏,并过度提升曝光。
- 使用 rotoscoping 时,背景模糊应应用于整个画面的轨道, 而不是旋转后的蒙版轨道:否则模糊效果会应用到人物身上。
- 通过脚本无法创建调整图层或移除效果: 调整图层需要用户手动创建;多余的效果保持为 0 值并给出提示。
- 通过管道将原始帧数据送入 ffmpeg 时, 请为输入指定与输出相同的色彩空间,否则它会转换曲线并导致画面变暗约 3 级。
- 手机声称的“120 fps”通常实际只有 30 fps: 检查
avg_frame_rate或nb_frames。
“在 QuickTime 中看起来发灰”
这几乎从来不是导出的问题。QuickTime 和 Finder 的快速预览(使用相同的 Apple 引擎)以大约 1.96 的伽马值读取 Rec.709:它们会提亮阴影并冲淡色彩。iPhone 可能也会这样显示;Android 则更接近 Premiere。而且,如果 Premiere 禁用了屏幕的色彩管理,显示器将显示原始数值,这可能在 P3 屏幕上显得更饱和。
在争论之前,请进行测量。从导出文件和 Premiere(使用 QE exportFramePNG 或 export_frame_uxp)中提取同一帧:
ffmpeg -nostdin -v error -ss 12.0 -i export.mp4 -frames:v 1 export_12s.png
如果在一个平坦区域(如墙面、天空)的 RGB 值相同,则导出是准确的。还要确认哪个窗口是哪个:显示“使用 QuickTime Player 打开”的是快速预览窗口;显示“程序:”的是 Premiere 窗口。
交付内容与验证方法
| 交付内容 | 验证方法 |
|---|---|
校正后的片段,文件名以 _c 后缀,与原文件放在一起(合成指向 _c) | ffprobe:标签为 bt709 / bt709 / bt709,与原片尺寸、帧率和时长相同 |
| 每个片段或镜头的“前后对比图” | 肤色自然,没有死黑或死白,没有色偏;被摄物颜色保持真实 |
.cube 格式的 LUT(逐镜头,或背景与人物分离) | 使用 ffmpeg -vf lut3d 应用后的结果与计算出的变换一致 |
| Premiere 中的调色结果 | 从每个镜头导出一帧:亮度 p1、p50 和 p99 百分位数,灰色区域的 a*/b* 值,以及肤色的 L* 值,包含调色前后数据 |
说明哪些事项尚未完成:需要重启 Premiere 才能加载的新 LUT、需要用户手动创建的调整图层,或一个在不强制调整的情况下无法达到目标的镜头(例如,帽檐下的脸部)。在工作记录文件 pieza.md 中记录已完成的操作。