博客
帧精确字幕时间轴:23.976、25 与混合帧率
阅读速度、重叠检测、NTSC 与掉帧,以及母带中途改帧率时怎么分段对时。给会被审计的翻译团队用。
文章头图(SVG,1200×630)
多数字幕 bug 不是翻译 bug,是对时 bug——直到广电帧率下 QA 才暴露,而剪辑预览从未用过那一档。客户电话打来时,问题往往在三个地方:源、侧车、播放器。
这篇是「别让那通电话打进来」的练习册。
多数人卡在这里
容器写 25fps,Resolve 里按 24 剪,SRT 却按 23.976 预览。多数对时失败是「元数据帧率」和「实际对时时间线」不一致。 信 ffprobe 或工程属性,别信文件名。
为什么帧率会影响「字」
硬切前 50ms 入点像「跟得上」,晚 50ms 像「拖沓」,晚 200ms 像「坏了」。窗口本来就窄;23.976 上长片 NTSC 漂移一小时能累积半秒——那就是每隔几段就「不对劲」的字幕。
Clipr 时间轴在游标上露出帧边界,就是为了不用猜入点落在哪一帧。
帧率备忘
| 母带帧率 | 每帧时长(约) | 常见场景 | 注意 |
|---|---|---|---|
| 23.976 | 41.708ms | 流媒体电影 | 长片 NTSC 漂移 |
| 24 | 41.667ms | 院线母带 | 与 23.976 勿混,长约 0.1% |
| 25 | 40ms | 欧广、PAL | 在 23.976 工程上对时每行约偏 4% |
| 29.97 | 33.367ms | 美广 NTSC | 掉帧时间码 ; |
| 30 | 33.333ms | 不少内录 | 易与 29.97 混淆,以 ffprobe tbr 为准 |
先记 23.976 / 25 / 29.97 三个。毁你一天的不是公式,是假设。
阅读速度(CPS)
经验粗线:
- 成人对白:约 17 字/秒舒适,21 字/秒上限边缘。
- 旁白解说:约 14 字/秒干净,18 字/秒显赶。
- 地铁手机扫一眼:封顶约 14 字/秒。
英译德 / 西等变长语种,CPS 常涨 25%。合并 WebVTT 前跑一遍 CPS,超标就拆行——宁可多一条索引。
重叠检测
相邻两条若重叠超过约 1 帧,部分播放器会默默丢第二条。合并前自动扫重叠;处理时拆长块、别乱砍短块——短块往往是名字和数字。
混合帧率母带
流媒体「23.976」成片里夹 25fps 采访再 conform 回去很常见:容器是 23.976,采访段对时却曾按 25 做。**解法不玄:**采访段单独拉一条时间轴 pass,对好再 merge。Clipr 可用区域级帧率覆盖,不必维护两份 SRT——原则:信你眼睛盯着的那条时间线,别盲信容器一行 metadata。
强制字幕轨
标牌、片内外语对白应单独 forced 轨,不要和全 SDH 搅在一起:播放器策略不同、供应商报价不同、对时规则也不同。若 mux 前把 forced 和 SDH 塌成一条,等于丢功能。
不行怎么办?
- **
ffprobe23.976 但进工程音画不同步:**可能是重封装元数据撒谎,解码 30 秒进新容器再探。 - **60 分钟整集「越飘越远」:**NTSC 掉帧数学;要么按母带帧率重对,要么要一份 non-drop 导出。
- **网页上隔行丢字:**Web 播放器更挑重叠;硬留 50ms 间隙。
- **客户说「慢」:**先看 CPS,不是入点。
- **字幕关着仍出 forced:**mux 轨搞混了;forced 单独轨 + 语言标签对上口语。
收尾
帧精确对时,快不是目标,诚实才是:先确认帧率,MT 前跑 CPS,merge 前扫重叠,forced 单独。做到这四条,审计电话会打到别人家项目。