MicroDVD 转 SSA
或者粘贴字幕文本
选项
时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。
这次转换会改变什么
有 2 项会被丢弃或需要你决定
- 帧率
源文件以帧号存储时间——每个时间戳都取决于你提供的帧率
- 精度
时间精度——输出的时间刻度更粗,因此每个时间戳都会四舍五入到最接近的 10 毫秒
这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。
这一页把 MicroDVD 写成 SSA。每条字幕变成 `[Events]` 里的一行 `Dialogue:`,开头那个数字是 SSA 的 `Marked` 字段,不是 cue 序号;帧号先除以帧率换成时钟时间。
帧率按页面框、文件声明、默认 25 的顺序取。样例文件声明 23.976,但页面框默认 25,所以 `{100}` 仍然落在 4 秒——这个优先级是刻意的,让用户能纠正错的声明。
两样东西没有落点:帧率(SSA 存时钟,不存帧号)与精度(SSA 写厘秒,毫秒四舍五入到 10 ms,单条最多偏 5 ms)。SSA 能表达样式与定位,但 MicroDVD 的源里没有这些内容可带,所以这一页的损失清单比反方向短得多。
`|` 写成 `\N`,两行仍在同一条 cue。产物按开始时间升序,UTF-8、LF、无 BOM;批量串行、可取消、ZIP 打包,不上传。
示例
一份典型的 MicroDVD 文件转成 SSA
输入
{1}{1}25
{100}{150}The quick brown fox jumps over the lazy dog.
{200}{260}Faster than|the last one.
输出
[Script Info]
ScriptType: v4.00
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:04.00,0:00:06.00,Default,,0,0,0,,The quick brown fox jumps over the lazy dog.
Dialogue: 0,0:00:08.00,0:00:10.40,Default,,0,0,0,,Faster than\Nthe last one.
产物丢掉了帧率与精度;其余逐行一致。
同一转换遇到一份脏文件
输入
{1}{1}23.976
{0100}{0150}Leading zeros in the frame numbers.
[INFORMATION]
{300}{340}An unrecognized line above was kept in place.
{400}{450}Trailing spaces are kept.
输出
[Script Info]
ScriptType: v4.00
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:04.00,0:00:06.00,Default,,0,0,0,,Leading zeros in the frame numbers.
Dialogue: 0,0:00:12.00,0:00:13.60,Default,,0,0,0,,An unrecognized line above was kept in place.
Dialogue: 0,0:00:16.00,0:00:18.00,Default,,0,0,0,,Trailing spaces are kept.
真实文件常见的损坏:混合换行、BOM、散布的空白、带前导零的帧号、认不出的行。可以对照上面那份干净样例,看解析器能容忍到什么程度。
常见问题
MicroDVD 转 SSA 后,`Dialogue` 行开头的数字是什么?
是 `Marked` 字段,SSA 的固定列之一,不是 cue 的序号。SRT 在同一个位置放的是编号,两者不要混着读。
MicroDVD 转 SSA 的时间码精度是多少?
厘秒。SSA 写 `0:00:04.13`,毫秒换算结果四舍五入到最近的 10 ms,单条位移不超过 5 ms。
MicroDVD 转 SSA 会保留帧号吗?
不会。`{100}{150}` 只用于换算时间,产物里只有时钟;帧率也没有记录字段。
MicroDVD 转 SSA 时帧率框和文件第一行谁优先?
页面框优先。文件里的声明只在你把框留空时生效;两者都缺才用默认 25,并在有损说明里写明整条时间轴是按默认值猜的。
MicroDVD 转 SSA 时两行字幕怎么写?
用 `\N` 连接,仍然在同一条 `Dialogue:` 里。这是 SSA 的硬换行写法。
SSA 再转回 MicroDVD 会丢掉什么?
丢掉样式、定位、卡拉OK、帧率与格式私有构造。SSA 的样式表与覆写码在 MicroDVD 里没有落点。