跳到主要内容
SubtitleMatrix

MicroDVD 转 CSV

格式转换MicroDVD(SUB)
或者粘贴字幕文本

选项

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

这次转换会改变什么

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

  • 帧率

    源文件以帧号存储时间——每个时间戳都取决于你提供的帧率

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

这一页把 MicroDVD 写成 CSV:第一行是表头 `start,end,text`,之后一条 cue 一行,时间是 `00:00:04.000` 这样的时钟写法。CSV 里没有帧号,也没有“这份文件按多少 fps 写”的位置,所以转换的第一步一定是把帧号除以帧率。

帧率仍然按页面框、文件声明、默认 25 的顺序取。填错的表现不在开头:四秒处可能只差几帧,看起来没问题,跑到一小时就按比例偏出好几秒。这也是帧率框放在页面上的原因——它决定整条时间轴,不是某个边角参数。

会丢的是帧率这一维:CSV 存得下毫秒,却没有任何字段记录“原来的第 100 帧”或“这份字幕是按 25 fps 写的”。多行 cue 并不会被拆成两行,而是放进同一个 `text` 单元格,里面用换行分隔,整格按 CSV 规则加引号——带逗号、带引号、或首尾有空白的格子同样会被引号包住。

产物按开始时间升序,编码固定 UTF-8、LF 换行、无 BOM;UTF-16 或 Windows 单字节编码的源文件会先解码,结果面板会说明。批量时串行处理、可取消、打成一个 ZIP,全程不上传。

示例

一份典型的 MicroDVD 文件转成 CSV

输入

{1}{1}25
{100}{150}The quick brown fox jumps over the lazy dog.
{200}{260}Faster than|the last one.

输出

start,end,text
00:00:04.000,00:00:06.000,The quick brown fox jumps over the lazy dog.
00:00:08.000,00:00:10.400,"Faster than
the 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.   

输出

start,end,text
00:00:04.000,00:00:06.000,Leading zeros in the frame numbers.
00:00:12.000,00:00:13.600,An unrecognized line above was kept in place.
00:00:16.000,00:00:18.000,"Trailing spaces are kept.   "

真实文件常见的损坏:混合换行、BOM、散布的空白、带前导零的帧号、认不出的行。可以对照上面那份干净样例,看解析器能容忍到什么程度。

常见问题

MicroDVD 转 CSV 的产物有几列?

三列:`start`、`end`、`text`。时间是 `00:00:04.000` 形式的时钟写法,正文在第三列,一条 cue 占一行。

MicroDVD 转 CSV 时,一条两行字幕怎么放进单元格?

放进同一个 `text` 单元格,两行之间是换行,整格按 CSV 规则用双引号包住。它仍然是一条字幕,不会被拆成两行记录。

MicroDVD 转 CSV 会写帧号还是时间码?

只写时间码。`{100}{150}` 会先按帧率换算成秒,再写成 `00:00:04.000,00:00:06.000`;帧号本身不保留,CSV 也没有地方记录帧率。

MicroDVD 转 CSV 时正文里有逗号会被拆成两列吗?

不会。格子里的逗号、双引号、换行或首尾空白都会触发引号包裹,双引号本身按 CSV 规则写成两个。

MicroDVD 转 CSV 时帧率框留空会怎样?

先看文件第一行的声明;文件没有声明才用默认的 25,并在有损说明里写明默认值被用上了。两种情况下时间轴都会按那个值整体换算。

CSV 再转回 MicroDVD 会丢掉什么?

丢掉帧率。CSV 里只有时钟时间,回转时要重新指定帧率,取整到帧;这次取整与原始帧号不是同一个数。

相关工具