SMI 转 TXT
或者粘贴字幕文本
这次转换会改变什么
有 5 项会被丢弃或需要你决定
- 时间
整条时间轴(输出格式完全不记录时间)
- 样式
全部样式(粗体、斜体、颜色、描边、阴影)
- 定位
屏幕定位(每条字幕条都会回到默认位置)
- 换行
换行(多行字幕条会被合并成一行)
- 格式专有内容
源格式保留在字幕条之外的内容(非字幕块、文件头文字、单条字幕的设置、被注释掉的事件)——目标格式没有地方存放它们
这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。
SMI 转 TXT 只留下文字:没有时间码、没有编号、没有样式,一行正文对应一行字幕,适合做翻译底稿、校对或全文搜索,也方便直接粘进翻译工具。
它丢的是时间轴、样式、定位、换行分组与格式私有内容。TXT 无法把几行合成一条 cue,所以原本一条两行的 SMI 字幕会变成两行独立文本,再读回去就是两条字幕;如果需要保留时间轴,请不要用 TXT 作为中转格式。
SMI 的 `<STYLE>`、`<TITLE>`、`Class=ENCC` 以及行内粗体、斜体、颜色都不会出现在产物里;`<P> ` 的清屏块本来就没有文字,不会凭空造出一行。
正文顺序保持开始时间的升序。转换在浏览器本机完成,文件不上传、不注册;整季剧集一次拖入也不会有额外操作,批量处理串行执行、可取消,最终打包成一个 ZIP 下载。
示例
一份典型的 SMI 文件转成 TXT
输入
<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>
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>
</BODY>
</SAMI>
输出
Hello there.
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 & Jerry
<SYNC Start=12000>
<P Class=ENCC>
</BODY>
</SAMI>
输出
Line one
Line two
Tom & Jerry
真实文件常见的损坏:BOM、混合换行、无效的 Start、散落的文本。解析器不抛异常,读不出的部分记进有损说明。
常见问题
SMI 转 TXT 后,时间码去哪了?
没有地方可去。TXT 只存文字,产物里不写开始或结束时间,也不写编号。
SMI 的一条两行字幕转成 TXT 会变成几条?
两行独立文本。TXT 无法把几行合成一条 cue,再读回去就是两条字幕,这一点在处理翻译底稿时要注意。
SMI 的样式和定位在 TXT 里怎么处理?
全部丢弃。`<STYLE>` CSS、`Class=ENCC`、`<TITLE>` 与行内颜色标签都不会出现在纯文本里。
SMI 的清屏块会在 TXT 里留下空行吗?
不会。`<P> ` 没有文字,不写出一行,避免产物里出现来源不明的空行。
SMI 转 TXT 后,字幕顺序还在吗?
在,按开始时间升序输出;第 N 条字幕的文字仍然排在第 N 位,只是不再有时间信息。
TXT 转回 SMI 会丢什么?
会丢时间轴。TXT 没有时间信息,反向转换只能生成没有可靠时间的字幕,因此那条路径有自己的有损清单。