字幕位置调整
或者粘贴字幕文本
选项
九个预设格位,外加一个移除选项。写出的标记是数值小键盘顺序的 {\anN} —— 7/8/9 是顶行,4/5/6 是中行,1/2/3 是底行 —— 它放在每条字幕第一行的前面。ASS 和 SSA 会把它读成真正的对齐代码;在 SRT 里它是字面文本,libass、VLC 和 mpv 会照做,更简单的播放器则原样打印。已有的 \pos 坐标永远不会被改动。选择最后一项则去掉位置标记,而不是添加一个。
这一页把字幕文件里的每条 cue 挪到九个屏幕位置之一,或者把已有定位标记从文件里清掉。它写在每条 cue 第一行的开头一个 `{\anN}` 对齐码,N 按数字小键盘编号:`7` `8` `9` 是上面一排,`4` `5` `6` 中间,`1` `2` `3` 下面。这个排法不是阅读顺序,页面自带的示例主要就是为了让“想选左上角、结果拿到左下角”不可能发生。
这个标记是三种格式都认的唯一一种定位写法。在 ASS 与 SSA 里它是合法的覆写码,读入时进入 cue 自己的字段、写出时按文档顺序排在 `\pos` 之后,所以始终留在 ASS 里的文件逐字节往返。SRT 根本没有定位语法,标记于是作为字面文字写在行首:基于 libass 的播放器(VLC、mpv)会照它摆放,不认它的播放器会把四个字符印在屏幕上。页面把这一点写明,而不是承诺它保证不了的定位。
位置属于整条 cue,所以标记只加在第一行,哪怕这条 cue 有两三行。已有的 `\pos(x,y)` 不动:像素坐标把 cue 钉死在某一个分辨率上,换一个分辨率就错位,而对齐码让播放器自己算位置;把别人手工摆好的 cue 挪走,也不是这一页被要求做的事。
位置列表里的“移除”是一条真指令,不是第十个位置:它剥掉每条 cue 开头的标记与存储的对齐值——这是把 SRT 变回没有标记的朴素形态的唯一途径——而写在行中间的标记留在原地,因为那属于台词而不属于定位。只接受 SRT、ASS、SSA 三种格式;文件不上传,时间码不碰。
示例
两条普通 SRT 字幕挪到顶部居中
输入
1
00:00:01,000 --> 00:00:02,000
Hello there.
2
00:00:03,000 --> 00:00:04,000
Second line.
输出
1
00:00:01,000 --> 00:00:02,000
{\an8}Hello there.
2
00:00:03,000 --> 00:00:04,000
{\an8}Second line.
`\an8` 是上方中间那格——数字小键盘上面一排的中间键。标记加在文字开头,不单独占一行;时间码、编号与空行都不动,文件仍是合法 SRT,只是每条 cue 多了四个字符。
同一份文件放在左上角与左下角
输入
1
00:00:01,000 --> 00:00:02,000
Hello there.
输出
1
00:00:01,000 --> 00:00:02,000
{\an7}Hello there.
左上是 `7`,左下是 `1`——差六个,因为编号跟着小键盘走而不是阅读顺序。这是手工最容易弄错的一处映射,所以九个预设各有一个例子:一个数字笔误在有人看片之前是看不见的。
常见问题
{\an1} 在屏幕哪个角,为什么不从左上角开始数?
`1` 是左下角。九个值按数字小键盘排:`7` `8` `9` 是上排,`4` `5` `6` 中排,`1` `2` `3` 下排,所以左上是 `7`、中间是 `5`、右下是 `3`。页面的位置列表按阅读顺序写,替你换算成这些数字。
为什么只接受 SRT、ASS、SSA 三种格式?
因为 WebVTT 与 TTML 有自己的定位语法,比如 cue 设置里的 `line:`、`align:` 或 `tts:` 属性,这一页不写那些;收下它们只会出现“报告改了位置、文件却原样”的情况。JSON 的位置字段只有五个横向取值,同样够不上九宫格。
SRT 里的 {\an8} 会被播放器当成文字显示吗?
取决于播放器,页面改不了这一点。SRT 没有定位语法,`\an8` 只是行首的普通字符;libass 系的播放器(VLC、mpv)按对齐指令摆放,简单的播放器会把它印在屏幕上。要在所有设备上都有保证的位置,只能把字幕烧进画面。
原有的 \pos(x,y) 会被新位置覆盖吗?
不会。像素坐标与对齐码是两种指令:`\an` 让播放器按当前屏幕算位置,`\pos` 把 cue 钉死在某一个点、某一个分辨率上。删掉手工摆好的 `\pos` 等于否定别人的工作,所以这一页只写对齐、也只清对齐。
一条 cue 有两行时,每行都会加标记吗?
只有第一行加,因为位置属于 cue 而不属于行。移除时规则反过来:只有第一行最前面的标记会被剥掉,写在句子中间的标记按台词处理。
同一个位置应用两次会怎样?
第二次跑完文件逐字节相同,并报告没有 cue 变化。页面写新标记前会先清掉旧的,所以本来就有的位置是“删掉再加同样四个字符”;在评审反复来回的文件上再跑一遍不会挪动任何东西。