跳到主要内容
SubtitleMatrix

SMI 转 MicroDVD

格式转换SAMI(SMI)
或者粘贴字幕文本

选项

时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。

这次转换会改变什么

有 4 项会被丢弃或需要你决定

  • 样式

    全部样式(粗体、斜体、颜色、描边、阴影)

  • 定位

    屏幕定位(每条字幕条都会回到默认位置)

  • 帧率

    该格式以帧号存储时间——时间取决于你提供的帧率

  • 格式专有内容

    源格式保留在字幕条之外的内容(非字幕块、文件头文字、单条字幕的设置、被注释掉的事件)——目标格式没有地方存放它们

这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。

SMI 转 MicroDVD 把时钟时间换成帧号:每行以 `{开始帧}{结束帧}` 开头,第一行 `{1}{1}25` 声明帧率。这条转换必须选对帧率,否则时间会随片长逐渐漂移。

帧率默认 25 fps:1000 毫秒在 25 fps 下是第 25 帧,3500 毫秒是第 88 帧,4 秒处是第 100 帧。用错帧率时开头几乎看不出来,越到后面偏得越多,所以要用成片真实的帧率。

有损清单是样式、定位、帧率与格式私有内容。MicroDVD 不存任何样式,SMI 的 `<STYLE>`、`Class` 与行内颜色标签都会被去掉;定位和 `<TITLE>` 也没有字段可放。

多行字幕用竖线 `|` 合成一行,例如 `How are you?|Fine, thanks.`。处理在本机浏览器完成,不上传、不注册,批量任务可以取消并打成 ZIP。

示例

一份典型的 SMI 文件转成 MicroDVD

输入

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>&nbsp;
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

输出

{1}{1}25
{25}{75}Hello there.
{88}{150}How are you?|Fine, thanks.

产物丢了样式、定位、帧率声明与格式私有内容;帧号与文字逐行对应。

同一转换遇到一份脏文件

输入

<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom &amp; Jerry
<SYNC Start=12000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

输出

{1}{1}25
{63}{225}Line one|Line two
{225}{300}Tom &amp; Jerry

真实文件常见的损坏:BOM、混合换行、无效的 Start、散落的文本。解析器不抛异常,读不出的部分记进有损说明。

常见问题

SMI 转 MicroDVD 时,帧率设成多少才对?

设成这些字幕对应视频的帧率;页面默认 25 fps,4 秒在 25 fps 下是第 100 帧。设错时开头几乎看不出来,越到后面漂移越大。

SMI 转 MicroDVD 后,时间是怎么变成 `{25}{75}` 的?

把毫秒时间乘以帧率再四舍五入:1000 毫秒在 25 fps 下是第 25 帧,3000 毫秒是第 75 帧。第一行 `{1}{1}25` 声明帧率。

SMI 的样式和定位在 MicroDVD 里能保留吗?

不能。MicroDVD 不存任何样式,`<STYLE>`、`Class` 与行内颜色都会被去掉;定位和 `<TITLE>` 也没有字段可放。

SMI 的一条两行字幕转成 MicroDVD 是什么样?

合成一行,两半之间用竖线 `|` 分隔,例如 `How are you?|Fine, thanks.`。

SMI 转 MicroDVD 时,乱序字幕会怎么处理?

按开始时间升序重排后再换算帧号;帧号必须递增,否则播放器行为不可预期。

MicroDVD 转回 SMI 会丢什么?

帧率。SMI 用毫秒时间,不需要帧率,所以反向转换时那条声明没有落点。

相关工具