Matroska Video (.MKV) では、ほかではできないようなことが、いろいろできます。 そのなかのひとつ、「SSAソフトサブ」と呼ばれる柔軟な字幕システムについての、最初期の報告です。 後半では動画作成者向けに実際のMUX法を説明しています。
2003年7月のレポートであり、内容は古いです。 参考までに残してあります。 新しい入門的記事としては、 DVD→AVI・OGM・MKV入門、 [MKV] IDX+SUBソフトサブなどがあります。
2003年7月2日: 英語と日本語のSSAソフト字幕UTF-16を埋め込んだMKVファイルの構成に成功した。 MPCで完全に再生が可能。 グラフと結果。 MKVファイルそれ自体についてはhttp://park14.wakwak.com/~flower/matroska/をごらんください。
2003年7月7日 タタル語字幕: OGMでは不可能なタタル語の字幕が、MKVでは簡単に実現できる。
タタル語はロシア語やウクライナ語からみて特殊な文字を6文字ほど含んでいる。 目立つものでは、例えば、U+04D9 CYRILLIC SMALL LETTER SCHWA がある。 Cyrillic Page 04 Unicode 2.1 を見よ。
VobSubのコードページ切り替えでは、この文字セットをコードページとして指定することができない。 したがって、原則としてOGMソフトサブではタタル語を使えない。
しかし、MKVでは、SRT、SSAともタタル語のソフトサブが可能である。
これは、英語、ロシア語、タタル語の3言語のSSAをソフトMUXしたMKVである。
ひとつの動画ファイルに8言語の字幕が内蔵されており、 DVDの字幕(IDX+SUB)より表情豊かだ。 SSA/ASSで可能なことは、これだけではない。 例えば、フェイドイン・アウト、文字・影・輪郭ごとの色や透明度のコントロール、字幕の移動、X・Y軸方向へのフォントの伸縮、 X・Y・Z軸それぞれに対するフォントの回転なども行える。 それらのエフェクトがどういうときに役立つかの説明はここでは省くが、 「OGMのSRT字幕に比べて、SSAはずいぶんおもしろいことができるのだなぁ」という感触はつかめると思う (もちろんMatroskaはSRTも内蔵できるので、SRTで十分な場面ではSRTを使える)。
Matroskaが標準採用しようとしている字幕フォーマットは、このSSAよりさらに柔軟な、XMLベースの字幕フォーマットUSFである。 USFは現在、まだ仕様が固まっていないものの、草案にあるUSF形式は、MPCとTCMPですでにサポートされている。 このプロジェクトのスケールの大きさがお分かりいただけただろうか。
「MKVといえばソフト字幕」と早とちりしないでほしい。 MKV(Matroska)の本質は何かと言えば、概念的にはOGMをオープンソースにし、さらに拡張したものだ。 この種の総合マルチメディア形式として初めてのオープン開発ということと、 概念的にOGMのスーパーセットである、ということがMKVの本質であり、 SSA字幕はそれらのなかのひとつの側面にすぎない。 強力な字幕サポートはMKVのポテンシャルの一例にすぎないのだ。
ハードサブとは、字幕が画像の一部として焼き込まれているもので、字幕を消せない。 ソフトサブは、再生時に字幕を動的に合成する方法で、字幕をオンオフできる。
ソフトサブが良いのは、決して「じゃまなときは字幕をオフにできるから」「複数字幕を切り替えられるから」というだけではない。 字幕を画像として焼き込むと(字幕の細かい文字のせいで)動画データが複雑になり、結果としてファイルが大きくなってしまう。 ファイルを同じ大きさに保ったとすると、ソフトサブの場合より画質が落ちてしまう。 例えば、以下で紹介するサンプルファイルは、 ソフトサブならば3600KB程度なのに、字幕をハードサブとして焼き込むと同じ品質設定で4400KBになってしまう。 字幕のこちゃこちゃした文字は意外なほどビットレートを食うのだ。 ハードサブとソフトサブの長所短所についての詳細。
これまでOGMという形式の動画だとソフトサブを使えたが、その場合の字幕形式は最もプレーンなSRTというものだった。 SSAなどと違って、字幕の文字色や配置を指定することもできない。 再生時に動的に字幕を合成するといっても、ほとんど最低限度のことしかできなかった。 OGMに埋め込まれたソフトサブには、いくつかの欠点がある。
注: この記事は MKVmerge 0.5.0 時代のものであり、現在は GraphEdit を使う必要ありません。 参考リンク: DVD→AVI・OGM・MKV入門、AAC音声のOGM・MKV・MP4動画を作ろう
以下のメモは一般のユーザにとっても参考になる部分があるかもしれないが、 動画作成者を対象に、SSAソフトサブ、それもマルチサブの方法を具体的に説明する。 このメモの説明は2003年7月8日現在のものであり、まだGUIが未整備であるうえ、 コマンドラインツール mkvmerger 0.5.0 もSSAサポートに不具合があるので、GraphEdit を使う。
なお、ビデオとオーディオだけのMatroskaはVdubModなどを使ってふつうに簡単に作れる。 また、SRTソフトサブは、mkvmerge を使って簡単に作成できる。
ビデオ、オーディオ、SSA字幕データを用意する。 オーディオは現段階では Vorbis が良い。 SSA字幕は Windows標準のユニコード(UTF-16 LE BOM)にしておく。 現段階では、安全のために、Verdana や MS UI Gothic のような一般的なフォントを指定するのが良い。
作成・再生に使うべきフィルター(2003年7月8日現在)は、
最新情報については、公式サイトとguliverkliを参照。
GraphEdit を起動したら、Ctrl + F で必要なフィルタをロードする。 やり方はGraphEditを使ったOGMの再編集と同様だ。 Matroska Muxer を使って多重化する。 File Writer で出力ファイル名を指定、ビデオファイルとオーディオファイルを Ctrl + R で読み込む。 SSA字幕については直接レンダリングせず、Ctrl + F で、SubtitleSource (S_SSA)経由で読み込むことに注意。 日本語の字幕を作るときは、自動でワードラッピングを行いやすいように、語句の切れ目に適宜、半角スペースを入れると良い。 適当に切れ目があるほうが、べたで書くより字幕も読みやすくなる。 この問題の技術的側面については、Unicode Standard Annex (UAX) #14 Line Breaking Propertiesを参照。
必要な結線をしてマクスを行う。以下のグラフでは、1つのビデオ、1つのオーディオと8つの字幕の10トラックをMUXしている。
mkvmerge 0.5.0 は、SRT字幕を正しく処理できるが、 SSA字幕の処理にバグがある。
2003年7月3日 mkvmerge 0.5.0
2003年7月5日 mkvmerge 0.5.0 が SSA に対して機能しないのは既知のバグ。 次のバージョンでfixされるだろう。Win98でのサポートもまだこれからのようだ。
2003年6月7日に、Matroska動画(.MKV)の短く簡単な紹介である「What's Matroska?」を公開した。 日本語版「Matroskaって何?」もある。 ところが、OGMと違ってオープンソースのMKVの開発は速い。 上の紹介記事から今日までの1か月で、プロジェクトguliverkli、 MKVtoolnixなどの大きな前進があり、 SRT字幕が(それもユニコードベースで)OGMなみに安定して使えるようになったばかりか、 OGMでは使えなかったSSA字幕がいちおう実用可能となった。 2003年6月17日ごろ公開されたMatroska Muxer 1.0.0.5ほかの一連のツールのおかげだ。 これが本家 Matroska.org のリリースでないところに、オープンソースの面目躍如たるものがある。 さらに、OGM動画の基礎となっていた OggDS.dll を置き換えるオープンソースの CoreVorbis.ax も特筆しなければならない。
字幕なしのMatroskaもトラックとして使えるファイル形式が多い・空間効率が良いなどの長所がある (現在、MP4やRealVideoがMUXできるようになりつつある)。 繰り返しになるが、「MKVといえばソフト字幕」と早とちりしないでほしい。
技術的にはOggのファイルフォーマットとMatroskaのフォーマットにはほとんど関係がないが、 概念上、Oggでできることはほぼ完全にMKVででき(現在、欠けているのはチャプターのサポート)、 さらにOGMでは不便だったり不可能だったいろいろなことがMKVでは実現可能になることから、 概念上(言い換えれば実際の動画を使う立場からは)「MKVはOGMのスーパーセット」と要約できる。 なおOggもオープン開発だが、OGM動画はオープン・ソースでなかった。
2003年7月8日 初版
2003年7月13日 サンプルを追加
2003年7月24日 サンプルを整理