SMI 字幕フォーマット
この形式が表現できること
- テキストのスタイル
- 太字と斜体
- 画面内の位置指定
- 対応
- カラオケのタイミング
- 非対応
- 字幕ブロック内の改行
- 対応
- タイムライン
- 各字幕の開始と終了の時刻
- タイミングの精度
- 1 ms
- フレーム番号で保存されるタイミング
- 非対応
- 右から左に書く言語
- 対応
例
典型的な SAMI ファイルと、そこから読み取れる内容
ファイル
<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>
ファイルの中身
2 cues, 3 lines of text
Start=1000 = 00:00:01.000 → 00:00:03.000
Hello there.
[Class=ENCC]
Start=3500 = 00:00:03.500 → 00:00:06.000
How are you?
Fine, thanks.
[Class=ENCC]
Outside the cues:
head a <STYLE> block with CSS for the paragraphs, kept as it came in
cue ends the next <SYNC> tag — a SAMI file writes no end time of its own
clearing a <P> block blanks the screen; the two here are kept as clearing blocks, not turned into cues右側は変換結果ではありません。このサイトが左側から読み取った内容で、そのファイルのどの変換もここから始まります。
乱れた SAMI ファイルでも読み取れる内容
ファイル
<SAMI>
<BODY>
<SYNC Start=abc>
<P Class=ENCC>this block's start cannot be read
<SYNC Start=2000>
<SYNC Start=4000>
<P>no attributes here<br>second line
<SYNC Start="6000">
some loose text before any P
</BODY>
</SAMI>ファイルの中身
3 cues, 3 lines of text
Start=2000 = 00:00:02.000 → 00:00:04.000
(no text)
Start=4000 = 00:00:04.000 → 00:00:06.000
no attributes here
second line
Start=6000 = 00:00:06.000 → 00:00:08.000
some loose text before any P
Outside the cues:
head no <STYLE> block and no <TITLE> — just the <SAMI> and <BODY> tags
cue ends the next <SYNC> tag; the last cue has none after it, so its end time was given a default
loose text text between two <SYNC> tags that belongs to no <P> is kept and attached to the cue open at that point
Reported while reading — repaired or skipped, never silently:
1 × SYNC blocks whose start time could not be read (they were skipped)
1 × the last cue has no following timestamp, so its end time was generated実在するファイルには BOM、Windows の改行、タイムコード前の余分な行、まったく読めないタイムコードが付いてきます。どれも例外にはなりません。理解できない部分は黙って捨てずに報告されます。
SAMI (SMI) を他の形式に変換
いずれもブラウザ内で完結します。ラベルには、その方向で何が失われるかが開く前に示されています。
- タイミング
- スタイル
- 位置
- 精度
- 形式固有の内容
- スタイル
- 位置
- フレームレート
- 形式固有の内容
- タイミング
- スタイル
- 位置
- 改行
- 形式固有の内容
この形式への変換
- SubRip (SRT) → SAMI (SMI)
- WebVTT (VTT) → SAMI (SMI)
- Advanced SubStation Alpha (ASS) → SAMI (SMI)
- SubStation Alpha (SSA) → SAMI (SMI)
- YouTube SBV → SAMI (SMI)
- LRC Lyrics → SAMI (SMI)
- MicroDVD → SAMI (SMI)
- TTML (Timed Text) → SAMI (SMI)
- SubtitleMatrix JSON → SAMI (SMI)
- Plain Text (TXT) → SAMI (SMI)
- CSV Spreadsheet → SAMI (SMI)
SAMI(SMI)はこのサイトが扱う字幕形式のひとつで、このページはその仕様をまとめたものです。何を保存でき、何を保存できず、どの形式へ変換できるかを示します。
上の表がすべてで、隠れた機能一覧はありません。ある行が「いいえ」なら、その要素は SMI に変換するとまさに失われます。下に並ぶ各変換ページは、ファイルを開く前にそのことを明示します。
どの変換もブラウザ内で動きます。アップロードもアカウントも不要です。秘密保持契約の下にある素材、診療記録、放送前の素材を扱うときに効いてきます。
よくある質問
SMI ファイルとは何ですか?
.smi は Microsoft の SAMI です。字幕を HTML の断片として書き、各 <SYNC Start=…> タグがその瞬間から画面に出す内容を宣言します。Windows Media Player や当時の DVD・放送用ツールが読み、今もアーカイブ素材で見かけます。
SMI はスタイルを保存できますか?
少しだけ、しかも本文の外ではなく中に保存します。強調と色は字幕の一部です(<b>、<i>、<u>、<font color="…">)。フォントサイズ、縁取り、余白を宣言する場所はなく、表示する側が決めます。SAMI は head の <STYLE> ブロックに段落向けの CSS を置くこともでき、字幕ファイルがフォントや色を指定するのは通常そこです。あるファイルはそれを保ち、ないファイルには書き出し時に小さな既定スタイルが付きます。
SMI の各字幕は開始と終了の両方を持ちますか?
はい。SMI の時刻は Start=4126 のように書きます。これが SMI の最小単位でミリ秒まで表現でき、値は正確です。字幕は短くも長くもでき、次の字幕と重なっても構いません。
SMI はどの形式に変換すべきですか?
このサイトに SMI のすべてを受け取れる形式はないため、無料の方向はありません。各変換ページが独自の損失一覧を示します。よく見かける形式かどうかではなく、どの一覧なら受け入れられるかで変換先を選んでください。
SMI(SAMI)ファイルは字幕の外に何を保持しますか?
head の <STYLE> ブロックに段落向け CSS を保持します。字幕ファイルでは通常、チャンネルの見た目(フォント、サイズ、色、画面内の位置)です。加えて <TITLE> と、各段落の Class=ENCC のような属性があり、段落を CSS の規則に対応付けます。どれも字幕ブロックのモデルには含まれないため、対応する概念のない形式には渡せず、各変換ページで損失として扱われます。