跳到主要内容
SubtitleMatrix

SMI 转 SBV

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

这次转换会改变什么

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

  • 样式

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

  • 定位

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

  • 格式专有内容

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

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

SMI 转 SBV 得到最简的时间码格式:没有编号、没有文件头,一行 `0:00:01.000,0:00:03.000`,下一行是正文,两条之间空一行。

SBV 与 SMI 都能精确到毫秒,所以时间轴不经过舍入:`Start=4126` 对应 `0:00:04.126`,2.9 秒的字幕仍然是 2.9 秒。两条 SMI 行会以两行正文保留,仍属于同一条字幕。

代价是样式、定位与格式私有内容。`<STYLE>` 里的 CSS、`Class=ENCC` 段落属性、`<TITLE>` 都没有落点;行内粗体、斜体、下划线与颜色会作为标签留在正文里,因为那属于文字本身。

输出 UTF-8、LF、无 BOM,cue 按开始时间排序。转换在浏览器里完成,文件不上传、不注册;批量拖入逐条处理,可取消,最后打包成 ZIP 下载。

示例

一份典型的 SMI 文件转成 SBV

输入

<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>

输出

0:00:01.000,0:00:03.000
Hello there.

0:00:03.500,0:00:06.000
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>

输出

0:00:02.500,0:00:09.000
Line one
Line two

0:00:09.000,0:00:12.000
Tom &amp; Jerry

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

常见问题

SMI 转 SBV 的时间码会舍入吗?

不会。两边都能到毫秒,`Start=4126` 写成 `0:00:04.126`,不经过四舍五入。

SMI 转 SBV 的产物有编号和文件头吗?

都没有。SBV 只有一行两个时间、一行正文,两条字幕之间空一行。

SMI 的 `<STYLE>` 块在 SBV 里怎么处理?

丢弃。`<STYLE>` CSS、`<TITLE>` 与 `Class=ENCC` 段落属性在 SBV 里没有字段;行内粗体、斜体、颜色会作为标签留在正文里。

SMI 的一条两行字幕转成 SBV 还是一组吗?

是。两行正文上下排列,仍属于同一条字幕,播放器会一起显示。

SMI 转 SBV 后能再转回 SMI 吗?

能,反向不额外丢东西,因为 SBV 存的东西本来就比 SMI 少;但这次丢掉的样式与定位不会因此回来。

SMI 转 SBV 输出用什么换行符?

LF,编码 UTF-8,无 BOM;输入文件原本的 Windows 换行或 BOM 会在读取时规范化。

相关工具