7 : 20 .mkv Matroska

← 7 - 19 p↑ もくじ i 7 - 21 n →

Matroskaって何?

2003年 6月10日
記事ID d30610

Matroska動画(MKV)が最初期のベータテスト中だった2003年6月のメモです。 現在では内容が古くなっていますが、参考までに残してあります。 新しい入門的記事としては、 DVD→AVI・OGM・MKV入門[MKV] IDX+SUBソフトサブなどがあります。

はじめに

OGMを知らないと意味が分かりにくいかもしれませんが、OGMもMatroskaも「圧縮フォーマット」ではありません。 DivXやXviDのようなビデオ圧縮、MP3やOgg Vorbisのようなオーディオ圧縮と“組み合わせて”使うものです。 “組み合わせて”の意味ですが、例えばDivXならDivXで圧縮した「音声なしの映像だけのビデオ」と、 MP3ならMP3の「音声」があるとしますと、マルチメディアとしては、ビデオとオーディオを合体させてふつうのいわゆる動画になるわけです。 従来はAVIという入れ物を使ってこれを実現していました。 AVIの中にはふつうビデオが1個とオーディオが1個入っているはずです。

ご承知のように編集などでは、必要に応じてビデオとオーディオをばらすこともできます。 ちなみにばらすことをデマクスdemux、ばらけているトラックを合体させることをマクスmuxといいます。 多重化(マルチプレクス)という言葉の省略形で、頭としっぽをとってマクスと言ってます。

コンテナというのは、ビデオ、オーディオ、字幕などの複数のトラックを「マクス」して、 音ずれなどが起きないようにきちんと格納する「入れ物」のことです。 ただ入れるだけでなく、題名情報などの「タグ」、シークを高速にするための「キュー」や「チャプター」といったものをつけることもできます。

OGMという入れ物(コンテナ)はAVIよりいろいろいい(どこが?)ということで最近OGMがすごく広まってきてますが、 OGMも広まるにつれて、またいろいろ「もっとこういうことができたらいいな」みたいなのが出てきます。 またOGM特有の問題点も見えてきました。入れ物のよしあしというのは、要するに、どれだけいろんなものを自由に出し入れできるか、 また入れ物自体が扱いにくかったり、場所をとったりしない、といった問題なのです。

AVIというのは10年前だかなんだかの大昔のコンテナなので、もうこれは最近のニーズをカバーしきれません。 例えばソフト字幕(オンオフ可能な字幕)の一本もつけられませんので、AVIで字幕が要ると思ったら、 画像のなかに文字を永久的に焼き込んでしまうしかないわけです。 ただのテキストストリームを画像で焼き込んでしまうなんて今どきはやらないというか、そもそも字幕を消せないのはうっとうしいことでしょう。 AVIには(強引に無理やりにやるのでない限り)音声として人気のVorbisを使えない、AC3も使えない、それどころか、 VBRのMP3も保証されてません。しかもシークが遅いわ、末尾が1%切れただけでファイル全体が再生できなくなるわ(高速常時接続以前の産物だから仕方ないのかもしれないが)、ともあれAVIというコンテナは、かなり制限が多いのです。

それにひきかえ、OGMはかなり良いです。けれど、OGMにもまったく問題がないわけではありません。 最大の問題はOGMは個人がクローズドで開発してその開発者Tobiasが事実上消息不明になっていること。 不具合があると分かっていても直しようがない。 またTobiasが行方不明である限り、OGMには、ほとんど進展もないでしょう。 対照的にMKVはオープンソースで多くの第一人者が協力してます。 VobSubやMedia Player Classicの作者であるGabest、XviDのビルダーでOgg Muxerの作者でもあるKoepi、 TCMPのチーム、VirtualDubModのチーム、OGM関連ツールの作者として知られるCyriusなどなど、そうそうたるメンバーです。 これはMatroskaが優れているからということもあるでしょうが、 基本的にオープンソースだからいろんな人が自由にコードの開発・修正を行える、という点、 これが現在のOGMとの際だった違いとなってます。

Matroskaは収納上手

まず「オーバーヘッド」について。

MatroskaはOGMより同じファイルサイズで高品質か、または同じ品質で小さいサイズにできます (おおざっぱに175MBのOGMが174MBのMatroskaになります)。これはバイナリー版XMLとも言える新しいデータ格納技術EBMLのおかげです。

完全に同じAVデータがOGMに格納するより効率良く格納できるため、 かなりサイズを節約できます。 OGMと機能的には同じでも、ファイルサイズが700MBにつき4MBほど節約できるわけです。 したがってMatroskaが安定した場合にはOGMを使う理由がなくなる可能性もあります。

言い換えると、もしOGMと同じファイルサイズであれば、Matroskaのほうが高品位になります。 例えば、
175MB OGM = 160MB Video + 13.5MB Audio + 1.5MB Overhead for muxing
175MB Matroska = 160MB Video + 14.5MB Audio + 0.5MB Overhead for muxing

オーバーヘッドが小さいので、Matorksaにすれば同じファイルサイズでもビットレートを上げることができます。

オーバーヘッドって何?

例えば10畳の個室と6畳の食堂がある小さな住居(1階)を作るとして、 16畳ぶんの土地があれば作れるか、というと、そうはいかないわけで、壁とか配管とか実際の部屋のなかみ以外の構造物がなければ家になりません。 そんなふうに、ビデオとオーディオを入れ物に入れて合体させるにしても、例えば、 どのタイミングにどの絵が出て、そこでどの音が出るのか、みたいに、マルチメディアであるからには、トラックの同期をとるための何らかの構造が必要でしょう。 コンテナには音声や画像の実質のデータのほかに、それらを制御するための構造データが必要です。 そのため100MBのビデオデータと20MBの音声データを合体させても120MBきっかりでは済まず合体に必要なのりしろのため、少し大きくなります。 この「のりしろ」がオーバーヘッドです。 (実際には合体前のビデオデータ、音声データも、それぞれ何らかの構造的フォーマットの中に格納されているのがふつうですが、 抽象的にRAWデータを考えた場合には、上の説明のようになります。)

OGMとMKVを比べた場合、おおざっぱに、OGMでは700MBしか入らないところに、MKVだと704MBをつめられます。 CD一枚につきMKVなら4~5MB程度、余計にものを入れられる計算です。 この違いは別にびっくりするほど大きくはないのですが、まあコンパクトなのはそれはそれでけっこうなことでしょう。 OGMでできることがすべてMKVでできて、結果はMKVのほうがコンパクトになるのだとしたら、OGMを使う意味がなくなるかも……。

これらは圧縮方式でなく単なる「入れ物」なので、「高圧縮だけれど画質が少し落ちる」とかそういうことはぜんぜんありません。 100%完全に同じものを格納して結果が異なるのです。建築物で例えれば、配管スペースなどの無駄が少ないということです。

Matroskaはいろいろ入れられる

ベータ段階の現時点でも、すでに、例えば音声としてMP3だけでなく、Ogg VorbisやAC3やAACが使えます。 近い将来にMPC(MP+)やFLACもサポートされるようです。 少なくともAVIよりは良いですね。

OGMの字幕はUnicodeやISOと非互換

OGMに限らず欧米で開発されたソフトは、ほとんど100%と言っていいほど日本語と相性が悪く、 あらゆる場所で文字化けするわ、それどころかファイル名やフォルダ名に日本語文字が含まれているとファイルを開くことさえできない、 なんてこともあります。日本語圏に限らず、Windowsでいうところの「西欧および米国」以外の言語環境では、 文字化けの問題に多くの人がほとほとうんざりしてます。 やはりここはユニコードベースに移行して、文字化けとは永遠におさらばしたいというものでしょう。 ユニコードには商業的な思惑も見え隠れしてユニコードのすべてが善とは言えませんけれど。

マルチメディアでは字幕というテキスト・ストリームがあります。 自分の母国語の作品しか絶対に見ないというスーパー愛国主義者でもない限り、字幕にはいろいろとお世話になるはずです。 この字幕のサポートがユニコードベースでない、というのは、OGMの大きな欠点のひとつです。 日本語環境で欧米語が文字化けするのはまだしも(まあそれも本当は困るのですが)、日本語環境で日本語が文字化けする現在のOGM+VobSubはふべんです。 (作成時に回避手段はあるが、文字化けする作り方をしてしまうと、再生時に修正しようがない。)

またOGMの字幕は日本語ならShift_JISなのですが、これはほかのOSとの相互運用にもふべんです。

もう少し詳しくこの問題を見てみましょう。

OGMの字幕はいわゆるコードページの切り替えによって様々な言語をサポートしています。 例えば、同じ E8 という16進数が、西ヨーロッパ言語のコードページでは U+00E8 è (重アクセントのついたe) を意味し、中央ヨーロッパ言語のコードページではU+010D č (チェックマークのついたc) を意味し、 キリル言語のコードページでは U+0438 и (ロシア文字の小文字のi) を意味します。 日本語などであればE8は、漢字などのダブルバイト文字の一部として使われるでしょう。

異なる文字はUnicodeでは異なるコードポイントを持ちます。 上の例での U+00E8, U+010D, U+0438 がそうです。 Windows 2000 や XP は内部的にはそのように機能するのですが、 MS-DOS のような古いOSでは 同じ コード (上の例ではE8) を 異なる文字を表すのに使い、 それらの区別はコードページの切り替えで行っています。

このコードページというものは西欧語でさえUnicodeとは互換性がありません。

現在、OGMに埋め込まれた字幕ではこの古い方法が使われています。 基本的に、字幕の言語を切り替えるには手動でコードページを切り替える必要があり、 これはしばしば面倒です。 ときには手動で設定しても正しく字幕が表示されないこともあります。

Matroskaの字幕はUnicodeベースですから、 こうした面倒な問題を回避できるはずです。

もしOSの言語設定が西欧であればOGMも良いと思うかもしれませんが、 優れたソフトウェアというのは世界中で使われるものです。 Matroskaビデオに格納したソフト字幕は世界中で正しく再生できるはずですが、 OGMではそれほどうまくいきません。

あらゆる言語を正しく表示できて悪いことは何もありませんが、 表示できないとなるといざというとき困ります。 ヨーロッパの一人の天才 Tobias によって作られたクローズドソースのOGMとは違い、 Matroskaは世界中のいろいろな言語圏に属する人々によって開発が進められています。 マトリョーシカという言葉自体、ロシア語です。西欧語以外の言語もサポートするぞ、という決意があらわれているネーミングでしょう。 実際に開発者に現在ロシア語圏の人もいるようです。

Unicodeのような(必ずしもUnicodeそのものでなくてもいいのですが)ものを望む気持ちは、決してペダンティックなものでも思想的なものでもなく、 いろいろな言語が関係する界面での情報交換にあっては、切実でリアルな実感です。 早い話が、「いちいち手動で切り替えなくても、日本語もそのほかの言語も文字化けせずに、ふつうに表示されてほしい」という、 ただそれだけのことですが。

字幕表現

次に字幕の文字コードではなく、フォントの種類のようなタイポグラフィーの話。

OGMの字幕表現にはいろいろと制限が多いのです。 この問題は直接的には、字幕作成をする一部のユーザにのみ関係することですが、 結果的に、Matroskaであれば、ほかのユーザも魅力的な字幕(カラオケや、分かりにくいギャグについての説明など)を利用できるわけです。 新しい技術というのはしばしば無理解な人間から「おれはそんなの使わないから関係ない」と言われるものですが、 それが広まってみると思ってもみなかった新しい表現世界が開けることがあります。 インターネット自身、ほんの少し前には「わたしはコンピュータおたくじゃないから、そんなものは関係ないし興味もない」と一般の人には思われていたのでは、ないでしょうか。

OGMのソフトサブでは注釈(通常、画面上部に小さい文字で入れるような)を書くことができません。 このような注釈というのは、字幕のなかの特殊な言葉や文化的背景を説明するのにべんりです。 (AVIの)ハードサブでは普通に行われていることですが、OGMのソフトサブではこれができません。 さらにOGM上での字幕作成者の多くはOGMの字幕スタイリング能力の欠如にもフラストレーションを感じています。 字幕というのは単なる訳だけでなく、雰囲気をかもしだす効果があります。 例えば、魔法の呪文やラジオの音声やAIの合成音声にそれっぽいフォントを使うということがあります。 マンガなんかで、呪文は古めかしい雰囲気のある活字だったり、合成音声はそれっぽいかくかくした活字だったり、 これはタイポグラフィーという一種の表現手段であって、使いようによっては、とてもいいものです。 ですが、こうした効果はOGMではあきらめなければなりません。 ファンサバーの中には、この理由でOGMを「使えない」と考える人もあります。

MatroskaはSSAとASSをサポートする予定ですから、 ハードサブで可能なことは何でもソフトサブできることになります。 さらに、Matroskaでは、いっそう新しい XMLベースの字幕フォーマット USF がサポートされる予定です。

Matroska はまだ開発段階

こうした将来有望そうなさまざま特徴はありますが、 現状、 Matroskaはまだ実用段階とは言えません。 2003年6月7日現在バージョン0.4.xのベータ段階です。 Matroskaは完全に安定していないので、いまなおOGMのほうが実用的、現実的なフォーマットです。

しかし、Matroskaの開発は急激に進んでいます。 きのう、2003年6月9日にDirectShowフィルターMKXDS.dllの0.4.3がリリースされ、字幕の正式サポートが始まりました。 これもまだ最初のテスト段階ですが、 VirtualDubMod と DirectVobSub の次のバージョンから本格的な対応が始まります。

Matroskaについてもっと知るには

Matroska Official Siteを訪れてください。 CoreCodec Forumで質問できます。 doom9フォーラムの "New A/V Formats"も役立ちます。 Project guliverkli は極めてすばらしいプロジェクトで、alternative matroska splitter for directshowを提供します。

本質的にTobiasひとりに依存していたOGMと異なり、MKVは何と言ってもオープン開発です。 公式のDirectShowフィルター、VirtualDubModのほか、字幕まわりの大家・VobSub作者自身Gabestがプロジェクト Project guliverkli を始め、公式の開発者をすら驚かせました。 何しろ公式のDSフィルターより良いものをいきなり出したのだから。これこそオープンソースの醍醐味という感じ。 さらにGabestはMuxerのフィルターも公開開始しました。 そしてまた、KoepiもMuxerのGUIなどを作るつもりのようです。 そればかりか、何と、MatroskaとOGMを相互乗り入れさせるため、独自の「新OGMフィルター」のようなものまで出てきました。 とにかくすごい。デジタルAVの世界でいまいちばんホットな、目が離せない状況です。

最後になりましたが、わたしたちはOGMを応援してきてます。 OGMには苦労もさせられましたが、ふりかえれば解決法を考えるのも楽しいことで、OGMには少なからず愛着もあります。 faireal.netでは6か国語でLazy Man's Guide to Ogg Media (OGM Files)を公開して、 OGMの普及のための努力さえしているほどです。 そういうわけですので、誤解しないでいただきたいのですが、 OGMが嫌いだからといってMatroskaに期待しているわけではないのです。 逆にOGMを使い込んでよく分かっているからこそ、OGMではできないソフトサブの限界を実感することもでき、その先を求めているわけです。

Matroskaがいくつかの点でOGMより優れているからといって、それはOGMは消滅すべきだということではありません。 それほど複雑でないプロジェクトにはOGMが十分に役立つでしょう。

関連記事

Matroska動画: 特徴と作成 (2003-07-08)
MKVの特徴を実際の例で紹介。
OGG, OGM, MCF, Matroska (2003-02-20)
各コンテナの長所短所。

この記事のURL

テキスト版省パケ版XML版



webmaster@faireal.net