Synchronized Accessible Media Interchange

開く保存HTML多言語

Microsoftが1998年に作った、Windows Media Player向けのキャプション形式です。各キャプションの前に同期の指定がある、HTMLベースの形式です。スタイルシートのクラスが言語を表すため、1つのファイルに複数の言語を入れられます。他の環境ではほとんど見かけませんが、韓国では今も一般的な字幕ファイルです。

概要

拡張子.smi
メディアタイプ登録なし
仕様Microsoft、Understanding SAMI 1.0(2001年、2003年に更新)。公開されており、ライセンス料はかかりません。
時間の精度ミリ秒
文字エンコーディング宣言されません。古い韓国語のファイルの多くはCP949で、新しいものはUTF-8です。Subtitldはどちらも自動判別します。
装飾HTMLのインラインタグとCSS: 斜体、太字、下線、取り消し線、色、フォント
表示位置映像上の位置指定はありません。キャプションは専用の領域に表示されます。
話者Source行(ID=Source)。キャプションの上に表示されます。
言語1つのファイルに複数。言語ごとに1つのCSSクラス
コンテナ内なし。動画と同じ名前で、動画の横に置くファイルです。

ファイルの構造

HTML文書です。言語を定義するスタイルシートがあり、その後にキャプションが切り替わるタイミングごとの同期(sync)が続きます。

<SAMI><HEAD><STYLE><!--
.KRCC {lang:ko-KR;}
.ENCC {lang:en-US;}
--></STYLE></HEAD><BODY>
<SYNC Start=23000>
<P Class=KRCC>넌 정말 못됐어.
<P Class=ENCC>You're a jerk.
<SYNC Start=24500>
<P Class=KRCC>&nbsp;
<P Class=ENCC>&nbsp;
  1. 1 · ヘッダー部

    スタイルシートです。言語ごとにクラスがあり、langと、再生ソフトが表示するNameを指定します。最初に定義されたクラスが、再生ソフトで最初に使われる言語です。

  2. 2 · 同期

    動画の先頭からの時間(ミリ秒)です。

  3. 3 · 字幕

    言語ごとの段落です。次に同じ言語の同期が現れるまで表示されます。&nbsp;を入れると表示が消えます。

タイミング

同期には開始時刻だけがあり、終了時刻はありません。キャプションは、同じ言語の次のキャプションが始まったとき、または空のキャプションが始まったときに終わります。そのため、途切れるたびに同期が必要です。

閉じタグは省略できます。 Microsoftの公式サンプルでは、<P>も<SYNC>も閉じていませんが、再生ソフトはどちらの書き方でも読み取ります。Windows Media Playerでは、サンプルのように大文字のタグが必要な場合があります。

スタイル

SAMIのテキストはHTML、スタイルシートはCSSです。キャプションは、Pのスタイル、次にそのクラスのスタイル、次にそのstyle属性、最後に内部のタグの順に適用されます。

記述 効果 Subtitldでの扱い
<I>、<EM> 斜体 保持
<B>、<STRONG> 太字 保持
<U>、<S>、<STRIKE> 下線、取り消し線 保持
<FONT color="#FFD700"> 文字色 保持
color、font-style、font-weight、text-decoration 同じ効果を、スタイルシートまたはstyleから指定 保持
<BR> 改行 保持
<FONT face>、font-size、margin フォント、サイズ、余白 保持されない
<RUBY>…<RT> テキストの上の読み仮名 テキストは保持、読み仮名は保持されない

言語

各クラスは1つの言語を表します。再生ソフトはNameを使って言語を選択肢として示し、指定がない限り最初に定義された言語を表示します。クラスのない段落は、言語に関係なく表示されます。韓国語のファイルに英語を並べて入れることもでき、視聴者が選べます。

Subtitldは、複数の言語を含むファイルを開くと、最初の言語を字幕の言語とし、他の言語はそれぞれ、重なりが最も大きい字幕の翻訳として扱います。原文と翻訳を書き出すと、2つの言語として書き戻されます。翻訳の字幕がない箇所は、翻訳は表示されません。

話者

<SYNC Start=23000>
<P Class=ENCC ID=Source>Celia
<P Class=ENCC>You're a jerk.

ID=Sourceの段落はキャプションではありません。キャプションの上に表示される行で、誰が話しているかを示します。次の段落で置き換えられるまで表示されます。Subtitldは、これを、その上にあるキャプションの話者として読み取り、要求されたときにも同じ方法で書き出します。

再生ソフトによって違いがあります。 FFmpegとそれを使ったプレーヤーでは、Source行はキャプションの上にイタリック体で表示されます。MPlayerでは、キャプションの1行目と続けて表示されます。話者名をテキストの前に入れる書き方(Celia: …)は、どの環境でも同じように表示されます。

SAMIとSubtitld

.smiに保持される内容
  • 各字幕のテキストと改行
  • 斜体、太字、下線、取り消し線、色
  • 翻訳(それぞれ独立した言語として)
  • 話者(Source行として)
  • 開始時刻と終了時刻(ミリ秒単位、順序どおり)
保持できない内容
  • 字幕の表示位置: SAMIには映像上の位置の指定がありません
  • フォント、サイズ、余白
  • ルビの読み仮名
  • 吹き替え、話者の顔と色

Subtitld独自の内容を残すには.usfxプロジェクトとして保存してください。

SAMIファイルを開く

Subtitldは.smiと.samiを開き、次のように処理します。

  • SAMIをブラウザがHTMLを読むように読み取ります。タグの大文字・小文字、閉じタグの有無、引用符の有無、順序の乱れた同期、段落の外にあるテキストに対応します。
  • 各言語を読み取ります。最初の言語は字幕として、それ以外は翻訳として扱います。
  • タグとスタイルシートから、斜体、太字、下線、取り消し線、色を保持します。
  • Source行を話者として扱い、吹き替え用に準備します。
  • 最後のキャプションは、ファイルのMetricsが示す動画の長さで終わらせるか、4秒後に終わらせます。
  • CP949を含む任意のエンコーディングを読み取ります。

SAMIの書き出し

Subtitldの書き出しダイアログ。SAMIが選ばれ、原文と翻訳が2つの言語として、話者はSource行として、エンコーディングはCP949に設定されている

エクスポート、次に字幕、そしてSAMIを選ぶと、次のオプションが表示されます。

  • テキスト原文、翻訳、または2つの言語としての両方。
  • 話者名省くか、テキストの前に付けるか(Thom: …)、またはSAMI独自の方法であるSource行として書き出します。
  • 書式残すか、取り除きます。
  • 時間をずらすすべての字幕を、同じ量だけ早めたり遅らせたりします。
  • エンコーディングUTF-8(BOMの有無を選択可能)、UTF-16、Windows-1252、または古い韓国語の再生ソフト向けのCP949。
  • 改行コードLinuxとmacOS、またはWindows。

ファイルは、MicrosoftのサンプルどおりのSAMI 1.0です。タグは大文字で書かれます。言語ごとにクラスがあり、字幕の開始位置には同期が、終了位置には空の同期が置かれます。書式は<I>、<B>、<U>、<S>、<FONT color>として書かれます。

ファイル名は動画と同じ名前にしてください。例えばtears-of-steel.mp4の隣にtears-of-steel.smiを置きます。Windows Media Playerは、そのように名付けられた.smiを見つけます(.samiは見つけません)。また、ほとんどの再生ソフトも同様です。

豆知識

1998

Microsoftは、1998年の夏にSAMIを発表しました。これは同社のアクセシビリティへの取り組みの一環で、耳が聞こえない、または聞こえにくい人のために、PCでキャプションを表示するためのものでした。

&nbsp;

Microsoftの仕様では、キャプションを消すために改行されないスペースを使います。FFmpegは、それを含む同期を無視します。そのため、別の言語が続く場合、Subtitldは代わりに空の段落を書き出します。

KRCC

多くの韓国語のファイルでは、クラスを言語ではなく国名で付けています。Microsoftの例ではENUSCCですが、KRCCのように名付けられています。

関連する形式

.smi の修正が必要ですか?

Subtitld で動画と一緒に開き、波形上でタイミングを調整しましょう。

Subtitld をダウンロード