7 : 24 MatroskaでソフトSSA

← 7 - 23 p↑ もくじ i 7 - 25 n →

Matroska動画: 特徴と作成 (2003年7月)

2003年 7月 8日
記事ID d30708

Matroska Video (.MKV) では、ほかではできないようなことが、いろいろできます。 そのなかのひとつ、「SSAソフトサブ」と呼ばれる柔軟な字幕システムについての、最初期の報告です。 後半では動画作成者向けに実際のMUX法を説明しています。

2003年7月のレポートであり、内容は古いです。 参考までに残してあります。 新しい入門的記事としては、 DVD→AVI・OGM・MKV入門[MKV] IDX+SUBソフトサブなどがあります。

  1. サンプル1: 英語と日本語の基本的なソフトSSA
  2. MKVサンプル 2: 世界初? タタール語のファンサブ
  3. MKVサンプル 3: 8か国語SSAソフト字幕・カラオケつき
  4. なぜソフトサブが良いか
  5. 作成編: Matroska動画の作成
  6. 歴史ノート
  7. リンク

MKVサンプル 1: 英語と日本語の基本的なソフトSSA

2003年7月2日作成

2003年7月2日: 英語と日本語のSSAソフト字幕UTF-16を埋め込んだMKVファイルの構成に成功した。 MPCで完全に再生が可能。 グラフ結果。 MKVファイルそれ自体についてはhttp://park14.wakwak.com/~flower/matroska/をごらんください。

MKVサンプル 2: 世界初? タタール語

2003年7月7日作成

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である。

MKVサンプル 3: 8か国語SSAソフト字幕・カラオケつき

2003年7月8日作成

ひとつの動画ファイルに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に埋め込まれたソフトサブには、いくつかの欠点がある。

Matroskaではこれらの問題は解決される

作成編: Matroska動画の作成

注: この記事は 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している。

グラフ(PNG画像)

MkvMerge についてのメモ

mkvmerge 0.5.0 は、SRT字幕を正しく処理できるが、 SSA字幕の処理にバグがある。

2003年7月3日 mkvmerge 0.5.0

基本の操作
mkvmerge -o out.mkv in.avi in.ogg --sub-charset 0:SJIS sjis.srt
--sub-charset 0:SJIS スイッチは対象になるSRTより前につける。 字幕の1つめはTID 0 であり、1や3でない
これはダメ
mkvmerge -o out.mkv in.avi in.ogg --sub-charset 3:UTF-8 utf8.srt
これが正しい
mkvmerge -o out.mkv in.avi in.ogg --sub-charset 0:UTF-8 utf8.srt
字幕をいっぱい付けるときは全部UTF8で用意してTIDを-1にセットするとラク
mkvmerge -o out.mkv in.avi in.ogg --sub-charset -1:UTF-8 utf8.srt
言語コードの打ち方
mkvmerge -o out.mkv in.avi in.ogg --sub-charset 0:UTF-8 --language 0:jpn utf8.srt
これは問題ないが、
mkvmerge -o out.mkv in.avi in.ogg en.srt
SSAはフリーズする
mkvmerge -o out.mkv in.avi in.ogg en.ssa

2003年7月5日 mkvmerge 0.5.0 が SSA に対して機能しないのは既知のバグ。 次のバージョンでfixされるだろう。Win98でのサポートもまだこれからのようだ。

歴史ノート

2003年6月7日に、Matroska動画(.MKV)の短く簡単な紹介である「What's Matroska?」を公開した。 日本語版「Matroskaって何?」もある。 ところが、OGMと違ってオープンソースのMKVの開発は速い。 上の紹介記事から今日までの1か月で、プロジェクトguliverkliMKVtoolnixなどの大きな前進があり、 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動画はオープン・ソースでなかった

リンク

関連記事を読む
公式サイト
Doom9's Forum

更新履歴

2003年7月8日 初版

2003年7月13日 サンプルを追加

2003年7月24日 サンプルを整理

この記事のURL

テキスト版省パケ版XML版



webmaster@faireal.net