免费试用
← 返回博客

别急着把字幕文件删了重下,SRT 的乱码和时间轴错位都有得修

从论坛和网盘转手的字幕,打开一整屏问号;好不容易显示出中文,播到后面字幕越跑越偏。视频好好的,文件也在,配在一起就是不对劲——SRT 字幕的这些毛病,多数不在播放器上,而在文件本身:编码被认错、时间码行被写坏,各自都有对应的修法。

SRT 字幕出问题,先开文件分清是乱码还是时间轴错位

用记事本打开字幕文件做分诊:文字行读不懂是编码病,文字读得顺但对不上拍是时间轴病,两条路分开走。SRT 属于纯文本格式,结构由四层组成:SubRip 格式的通行约定里,每条字幕由序号行、时间码行、一行或多行文字构成,条目之间用空行分隔。时间码行写作「时:分:秒,毫秒 --> 时:分:秒,毫秒」,是整个文件的骨架——后面要修的几处断点,全都落在这行和那个分隔空行上。先分清方向,力气才不会用错地方。

乱码的根子在编码被认错,另存一次 UTF-8 多半能救回来

乱码时文件里的字节没有坏,坏的是读它的方式——播放器用错了字符集,中文自然面目全非。典型样态有两种:整行变成 是这样 这类西文夹杂,是 UTF-8 内容被按单字节编码去读;整片问号或方块,多半是反向错认。SRT 格式本身并不规定编码,老工具保存时常用本地编码(中文环境下的 GBK),换到默认按 UTF-8 读取的环境就对不上了。修法在记事本里两步完成:打开文件,另存为时把编码手动选成 UTF-8。Windows 上建议选带 BOM 的 UTF-8——Unicode 官方 FAQ 说明,BOM 的作用正是帮读取程序识别编码。两个坑顺手避开:别用 Word 保存字幕,它会把排版信息塞进文件,结构直接作废;另存对话框里的编码项要手动选,老系统默认的 ANSI 并非 UTF-8。

时间轴的错乱分两种:偏差恒定是平移,越放越歪是漂移

开头对齐一次,再拖到中段和结尾各对一次——偏差从头到尾一样是平移,越来越大是漂移,修法完全不同。平移常见于字幕与视频版本不匹配:同一部片子剪掉了片头广告,字幕就从某个固定值开始慢。这种情况先开播放器的字幕延迟微调救急;要修文件本身,用 Subtitle Edit 这类开源工具整体平移一次,几十行时间码不用手碰。漂移是开头准、结尾能差出十几秒,通常出在帧率版本不一致——电影常见的 23.976 与 25 帧之间转手,或者视频被变速过。漂移手改救不了,得按比例重算:以两个已知对齐点为基准,让工具线性缩放整条时间轴。

箭头、逗号、空行:时间码行上三处高频断点,批量替换就能接上

三处断点都能在记事本里用查找替换解决,前提是知道每处正确的样子。

  • 箭头被写坏:时间码行中间的箭头固定是两个连字符加一个大于号,转手过程中常被改成中文破折号接箭头、或缺了字符——查找替换回标准写法;
  • 逗号变点号:毫秒分隔符按格式规定是英文逗号,个别软件导出成点号,严格的播放器会把整行时间码拒收;
  • 空行丢失:条目之间靠一个空行分界,复制粘贴时被吃掉,播放器就把两条字幕并成一条乱蹦。

修完做一次抽查:开头、中段、结尾各挑一条,对齐视频核对显示时机。批量替换改的是形,抽查验的是果,两步都做了才算修完。

修好的字幕配上完整的视频,底稿和正片一起存到本地

字幕落定之后还差正片——底稿从源头拿干净的,视频用下载和录制两路存全。

第 1 步:下载并安装 VidBrowser

VidBrowser 是一款桌面视频浏览器,适合在 Windows 和 Mac 上观看并保存视频,内置下载与录制两大功能。

第 2 步:用「YouTube 字幕下载」入口拿一份干净的底稿

左侧导航切到「工具」页,打开「YouTube 字幕下载」,贴入视频链接即可把 SRT 存下来。YouTube 原生字幕轨的编码规整,比转手文件干净得多;入口的四步走查在 YouTube 字幕下载篇里。

第 3 步:回到视频页,把正片用下载按钮存下

播放视频时,右侧「视频媒体库」面板会列出带橙色「下载」按钮的条目,点一下保存为 MP4,也可以先选好分辨率再下载。

第 4 步:拿不到下载入口的内容,用录制功能补

鼠标移到视频画面上会叠加显示录制控件——选择录制速度(1x 实时、2x 或 4x 倍速更快录完),点「全录」录制整个视频,左侧录制按钮可随时启停。存完去左侧导航的时钟图标看下载历史;文件落在哪、之后怎么按时间找回来,下载文件去哪了里有地图。

总结

SRT 出问题先开文件分诊:文字行乱码,是编码被认错,记事本另存 UTF-8 就能救;对不上拍,先分清平移和漂移——前者整体挪一次,后者按比例重算。箭头、逗号、空行三处断点,批量替换之后首中尾各抽查一条。修完把正片配齐:字幕几 KB,视频几百兆,两样在手这份内容才算完整。

常见问题

另存 UTF-8 之后还是乱码怎么办?

两个常见遗漏:另存对话框里的编码项要手动选择,老系统默认是 ANSI 而非 UTF-8;少数播放器按自己的默认编码读取,可以在字幕设置里手动指定一次字符集。另外文件开头若出现几个奇怪符号,别删——那是 BOM 标记,正是帮播放器认编码用的。

存下来的字幕后缀是 .txt,还能用吗?

后缀不影响内容,改回 .srt 就行。改之前用记事本确认结构:有「序号+时间码+文字」才是能用的字幕文件;要是连时间码行都没有,那就是纯文本稿,得回头找带时间轴的版本。

字幕整体慢两秒,要一行一行改吗?

不用。先开播放器的字幕延迟微调,临时看够用;要修文件本身,用 Subtitle Edit 整体平移一次。逐行手改既慢又容易改出新错,真需要按比例重算的,是那种开头准、结尾差出十几秒的漂移。

更多博客