8 : 20 IDX+SUBソフトサブ

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

[MKV] IDX+SUBソフトサブ

2003年12月 2日
記事ID d31202

洋画などのDVDの字幕は、テキストデータではなく、文字の画像です。 MKV動画では、この字幕画像データをそのまま利用してオンオフ・切り替えが可能なソフト字幕を実現でき、 DVDのバックアップに便利です。

ある程度の経験者を対象に、IDX+SUB (Vobsub) 形式の字幕データをソフトサブとして使うMKV動画の作成について説明します。 執筆時点では、MKV動画はまだ開発途上のベータ段階にあり、初心者向けではありません。 初心者向け雑誌などに安易に紹介しないようご注意ください。

このメモについて

IDX+SUBソフトサブは2003年11月ごろ可能になった技術です。 このメモは、2003年12月に公開されたもので、 MUXされたIDX+SUBソフトサブという(その当時の)新技術の概念とその位置づけについてのものです。 本文中で説明しているように、DVDから抽出したIDX+SUBは、非常にクオリティが悪く、趣味の字幕作成では使うべきでありません。 妖精現実では、このメモの内容についてのサポートは行えません。 字幕作成において非推奨の手順であり、 DVDのバックアップについては、ほとんど知識も興味も経験もないからです。 DVDのバックアップで必要となる「字幕の抽出」の詳細については、DVDのバックアップをテーマとしている他サイトで情報を収集するようにしてください。 (妖精現実ではDVDのバックアップは扱わず、 SSAの自作を中心としており、主にSSAへの理解を深めるための比較対象としてIDX+SUBを簡単に扱っているに過ぎないからです。)

概要

DVDの字幕を「そのまま」利用する、とは、画像字幕→テキスト字幕(SRT等)の変換を行うことなく、VOBから抽出した字幕データをそのまま使うということです。

「ソフトサブとして」とは、DVDと同様に、再生時にオンオフ・切り替えが可能な別ストリーム(別トラック)として、字幕を利用することです。 従来の、Vobsub_vdプラグインを使ってビデオのなかに消せない字幕を焼き込む「ハードサブ」より便利であり、 例えば、音声は英語と日本語の切り替え可能、字幕も英語と日本語の切り替え・オンオフ可能といったことが、簡単に実現できます。

細かい説明は後回しにして、実際に作業をやってみましょう。

DVDをリッピングする

変換元のDVDデータを、SmartRipper の Movie モード(デフォルト)、 または DVDDecrypter の IFO モードを使って、リッピングします。 リッピング先のフォルダに、 拡張子.IFOのファイル(通例 vts_01_0.ifo というファイル名)がコピーされたことを確認してください。

リッピングしたVOBファイルは、通常の動画作成の手順に従って、好みの形式でエンコードします。 これらの作業について分からないかたは、DVD→AVI・OGM・MKV入門を見てください。

IFOからIDXとSUBを作る

DVDの画像字幕のデータは、拡張子.IDXと.SUBの2つのファイル(以下IDX+SUBと略)として、抜き出すことができます (SUBが字幕の画像データそのもので、IDXが字幕の表示のタイミングなどのメタデータ)。 なお、SmartRipper でリッピングすると、同じ拡張子.idxのファイルが最初からできますが、これは拡張子が同じというだけで、 以下の作業とは無関係なので、混乱しないようにしてください。

IDX+SUBは、もともと vobsub.dll というツールが作るデータ形式です。 このツールは、Vobsubをフルインストールして、
C:\Program Files\Gabest\VobSub
の、VobSub Configure をクリックすれば使えます。

しかし、現在では、同じ作者による Vobsub Ripper (VSRip.exe) という単体のツールがあり、 こちらのほうがウィザード形式で使いやすいので、 一般には、こちらをおすすめします。 vobsub.dll と VSRip.exe は機能も処理速度もほとんど同じで、 まったく同じ VobSub v7形式のIDX+SUBを生成します。

Vobsub Ripper (VSRip) はguliverkli からダウンロードできます。 2003年12月2日現在の最新版は、VSRip 1.0.0.6 です。好きな場所に解凍して、出てくる VSRip.exe をクリックすれば、 すぐに使えます。

起動すると、ファイル名を指定する場所が2つあります。[Load IFO...] をクリックして、 変換元にしたいVOBに対応したIFOファイルの場所を指定します(読み込みに数秒かかります)。 [Save To...] をクリックして、IDX+SUBを保存する場所と名前を指定します。 例えば、Jimaku という名前を指定すれば、Jimaku.idx と Jimaku.sub が得られます。

[Next]で次へ進むと、Extraction settings という画面が出ます。

字幕データが1トラックしかない場合には何も選ぶことはありませんが、 複数の字幕トラックがある場合には、そのうちのどれを抽出するか選ぶことができます。 どの字幕トラックを最終的なMKV動画に埋め込むかは、MKVMerge GUI で字幕データを動画と合体させるときに選択できますので、 とりあえず全部抜き出しておけばよいでしょう(もちろん全部抜き出して、全部埋め込むこともできます)。 デフォルトのまま何もいじらないで、全部抜き出す場合の最適の設定になっているはずです。 字幕トラックが複数あるのは、字幕の言語を切り替えられる場合、文字の大きい字幕と小さい字幕がある場合、 吹き替え用の字幕(画面中の標識の文字など音声の吹き替えではフォローできない場所のみ字幕として訳を出す)がある場合などです。

何らかの理由で vobsub の自動選択がうまく機能しない場合、 つまり、字幕があるはずなのに、デフォルトで1トラックも選択されていない場合は、 手動で (empty) 以外の全トラックを選択してください。 もし、字幕があるはずなのに全トラックが (empty) と表示される場合には、 00~31の全トラックを(データがあろうがあるまいが)強引に選択して、それでデータを抽出できるか、 様子を見てください。

抽出トラックの選択が済んだら(通常はデフォルトのままいじる必要なし)、[Next] で抽出作業が始まるので、 プログラスバーが終わるまで待ち、終わったら [Close] でウィザードを閉じます。 保存先に、拡張子 .idx と .sub のファイルのペアが生成されたことを確認してください。

MKV動画に埋め込む

MKVToolnix を使って、映像、音声、字幕を合体させて、一つのMKVファイルを完成させます。 この作業は、VirtualDubMod 1.5.4.1 (CVS 2003-08-09) では行うことができません。 現時点では、MKVToolnix 0.7.5以上が必要です(0.7.7以上推奨)。 Windows版のバイナリ (現在のバージョンは mkvtoolnix-0.7.7.rar)を入手してください。 動作には同じ場所にある mkvtoolnix-runtime.rar が必要です。 2つのRAR書庫を解凍して、なかみを一つのフォルダにまとめれば、すぐ使えます。 mmg.exe というのが、メインのツール mkvmerge の、GUIフロントエンドです。

作業手順としては、[+] ボタンを押して合体させたい映像ファイル、音声ファイル(複数音声も可)、 そして使用する字幕のソースとなるIDXファイルを読み込みます。 「Input files」リストでIDXファイルを選択すると、 下の「Tracks」リストに、読み込まれた字幕の全トラックが表示されます。 デフォルトでは全部にチェックがついています。どの字幕トラックを使いたいか決まっている場合は、 いらないトラックのチェックを外してください。分からなければ、とりあえず全部合体させてしまっても支障ありません。

各字幕のトラックに対するLanguage(言語)のラベルは、多くの場合、空欄(デフォルト)のままで自動認識されます。 もし認識されないと、メニューでは全部 English と表示されてしまいます。 念のために日本語字幕は jpn など、各トラックごとに、言語を明示的に選択しておくのが無難です。

字幕の各トラックごとに、「Compression」リストボックスで、 画像データを圧縮して保存するかどうか選択できます。 何も選択しないデフォルトの状態では、 zlib圧縮を選択したのと同じ結果になります。 DVDの字幕はビットマップのようなものでMB単位のサイズがあるのが普通ですが、 圧縮すればざっと半分のサイズになるため、圧縮した方がトクです。 その代わり再生時にリアルタイムで圧縮データを展開することになるので、 ほんのわずかですが再生時負荷が増えます。 少しでもリソースを節約したいなら無圧縮(none)を選択することもできます。

「Output filename」の [Browse] をクリックして、作成するMKV動画の保存場所と名前を選び、 [Start muxing] をクリックすれば、作成が開始されます。

再生

この方法で作成されたMKV動画を再生するには、 MatroskaSplitter 1.0.1.9以上と、 VSFilter 2.30以上が必要です。Matroska Pack Full v1.0.0 などを使ってインストールするのが早道ですが、 その際、無用なトラブルを避けるため、 自分に必要ないものまでインストールしないようにしましょう。

ビデオとオーディオの再生に必要なコーデックは既にインストール済みであれば、 MatroskaSplitter(必須)とVSFilter(選択)のほかは、すべてチェックを外して2つだけインストールするのでも、 必要最小限の機能は利用できます。 フィルターをインストールする代わりに、 Media Player Classic 内蔵フィルターを用いることもできます。 DirectShowフィルターやコーデックなどをたくさんインストールする場合には、 必ず万一にそなえてリストアできる準備やバックアップを行うようにします。

注意事項

IDX+SUBソフトサブは2003年11月ごろ可能になった技術であり、 この記事の執筆時点(2003年12月2日)では、まだ完全に一般向けとは言えず、 ベータ的な面があります。

再生に使う DirectShow フィルターが不具合を起こしてOSをリストアしたという報告もあります。 初心者には危険です。

既知の問題として、例えば、IDXファイルを手動で編集した場合、再生に不具合が発生したり、 SubLogなどの特殊な方法で作成したSUBファイルをMKVMergeが認識できないことがあります。

最新情報については、 mkvtoolnix (Matroska toolkit): new release をごらんください。

補足説明

IDX+SUBソフトサブの背景について、より詳しく理解したいかたのための追加情報です。 実際の動画作成作業に必要な知識では、ありません。

ハードサブとソフトサブ

ハードサブというのは、映像の一部として焼きこまれている字幕のことで、映像の一部なので、 オンオフ・切り替え・表示位置変更などはできません。

ソフトサブというのは、メインの映像とは別のストリームになっている字幕データで、 再生時に映像のうえに重ねて表示する仕組みのものです。 したがって、オンオフ・切り替え・表示位置の変更などができる字幕です。 DVDの字幕はソフトサブです。

この記事で紹介した方式も、ソフトサブです。

テキスト字幕と画像字幕

字幕データのファイル形式には、いくつかの種類があります。

SRTは、最もプレーンなテキストのデータです。 字幕のテキストと、各行を表示するタイミング以外には、ほとんど何も情報を含んでいません。 SSAは、字幕のテキスト・表示のタイミングのほかに、 字幕のフォントの種類や色などのスタイル指定やいろいろな特殊効果を含むことができる形式です。 SUBは、DVDから抜き出した文字画像の字幕データで、タイミングと若干のスタイリングを指定するIDXファイルとセットで使います。 (拡張子.subは、別の形式でも使われますが、ここでは関係ありません。)

SRTとSSAは、メモ帳などで開いて普通に編集できるテキストファイルです。 字幕もテキストデータです。 「まあ、きれいなお星様!」という字幕があるとしたら、 文字通り「まあ、きれいなお星様!」というテキストが書いてあるわけです。 SUBは、バイナリの、画像データです。 「まあ、きれいなお星様!」という字幕なら、 「まあ、きれいなお星様!」という文字が画像としてファイルに入っています。

もし字幕が100行あるなら、SUBファイルには100個のデータブロックがあって、各ブロックが表示一回分の字幕画像です (2行以上に折り返されて表示される字幕も、一度に表示されるものは「1行」と数えています)。 100行の字幕が例えば3種類(文字の大きさや字幕の言語の違いなどで)あるとすれば、 SUBファイルには300個のデータブロックがあるわけです(100行ある字幕データ×3つの字幕トラック)。 実際にはもう少し複雑な場合もありますが、SUBとは、だいたいそういう構造です。 そして、SUBのバイナリデータの、どのブロックがどの字幕トラックの何行めのデータで、それをどういうタイミングで表示すればよいのか、 といったSUBからデータを読み出すインデックスの役割を果たすのが.IDXファイルです。

SRTやSSAは、単なるテキストデータですから、非常にサイズが小さいです。 動画を再生する時点で、テキストをフォントとしてレンダリングして映像に重ねて表示するので、 どんなフォントサイズにでも美しくレンダリングできます(アンチエイリアスも使えます)。 実例を画像でごらんください。 しかも、テキストですから、再編集、再利用も容易です。 その代わり、再生時に必要なフォントがなければ字幕を表示できず、 フォントがあっても設定などに問題があると、文字化けが発生します。

IDX+SUBは、文字を画像として保持しているので、絶対に文字化けしませんが、 その代わり、テキストに比べれば、はるかにデータサイズが大きく、しかも、文字をきれいにリサイズできません。 決まった大きさの文字画像だからです。 1回表示分のデータが1つの画像ブロックになっているので、 例えば、字幕のなかに1文字誤字があるとしても、テキストエディタで開いて1文字だけささっと修正する、といったわけにはいきません。 再利用性が悪いです。とはいえ、「IDX+SUB再生をサポートしている環境であれば、フォントの環境に依存せず、 文字を必ず表示できる」ので、 テキスト字幕より「安全」「無難」です。DVDの字幕が画像字幕であるのも、 DVDプレーヤーに、世界中の言語の字幕をテキストとして処理できる能力を求めるより、 文字を単なる絵として扱ってしまったほうが、 手っ取り早く、間違いがないからでしょう。 DVDの規格が固まった1990年代には、まだユニコードも普及していませんから、当然の選択です。

テキスト字幕と画像字幕の相互変換

フォントデータさえ利用できれば、 SRTやSSAのほうがIDX+SUBよりずっと小さいサイズで、同じことを、より高画質で実現できます。 家電のDVDプレーヤーと違って、PCにはフォントファイルはあるに決まっていますし、 必要ならいくらでも簡単に追加できますから、基本的には、SRTやSSAを利用するほうがトクです。 実際にも、DVDをPC用動画に変換するとき、英語圏・西欧語圏などでは、SRTがかなり広く使われています。

しかし、日本語圏では、SRTソフトサブはあまり普及しませんでした。 第一に、DVDの画像字幕をテキストデータの形に変換する光学文字認識(OCR)が、日本語では、うまく働きません。 英語や西欧語なら、SubripというDVD字幕に特化したOCRのフリーウェアがありますが、 このツールを使って英語を読んでさえ認識率は100%でなく、ある程度、手動で修正する必要があります。 ましてや日本語となると、DVDの画像字幕を目で見て、1行ずつ自分でタイプするのが、最速のテキスト化でしょう。 文字を読んでタイプするだけなので少しも難しくはありませんが、とても退屈な作業です。

第二に、文字化けの問題がありました。 上記のような作業をするなりしてともかく日本語のSRT字幕を作れば、 それをOGM形式の動画のなかに、オンオフ可能な「ソフト字幕」として埋め込むことが可能でしたが、 OGMに埋め込んだ日本語字幕は、文字化けしやすいのです。 文字化けを回避するようにSRTに小細工をするのが、また結構大変でした。

要するに、DVDの日本語字幕をテキスト字幕として抜き出すのは大変だし、苦労して手動で抜き出しても、 OGM動画に埋め込む段階で今度は文字化けの問題がある、という状況でした。 2003年になってユニコードをフルサポートしたMKV動画が出現し、文字化けの問題はほぼなくなり、 SRTソフトサブよりスタイリッシュで美しいSSAソフトサブも可能になったのですが、 それでも「DVDの日本語字幕をテキスト化することの面倒さ」は、相変わらずです。

以上のようなわけで、 DVDから抜き出した画像字幕を(テキストデータに変換することなく)そのまま利用したい、という需要がありましたが、 従来はIDX+SUBのソフトサブはできず、ハードサブのみ可能でした。 Subripの文字認識率は100%でないし、OCR作業もけっこう面倒ですから、 英語圏や西欧語圏でも、IDX+SUBソフトサブの需要はかなりあります。 OCRが難しい日本語・韓国語・中国語などの言語圏では言うまでもありません。 Matroska Video (.MKV)がIDX+SUBソフトサブをサポートしたことにより、 前々からの需要が満たされたわけです。

なお、逆に、テキスト形式の字幕データを画像形式に変換することも可能です。 「SSAからの変換で作るVobsub形式のソフト画像字幕」参照。

リンク

歴史覚え書き

2003年9月に、 MKVmergeの作者がSUB+IDX形式の字幕のサポートについて具体的な提案を行った。 2003年10月、 MKVmerge Pre-0.7.3で、IDX+SUBサポートが開始されたが、再生のVSFilter側の準備がまだだった。 2003年11月6日のMKVToolnix 0.7.5で正式サポートされ、11月9日にVSFilterもこれに対応した。

この記事のURL

テキスト版省パケ版XML版


libmatroska 0.6/ほか

2003年11月14日
記事ID d31114

2003年11月前半の速報的なメモです。 詳しい説明は後から。

libmatroska 0.6: IDX+SUBサポート、New Lacing

2003年11月6日

[MKV] 2003年11月6日 MKVToolnix 0.7.5 SUBサポート: Splitter 1.0.1.8必須 SUB再生はGuliverkli待ち。

とりあえずXviD+Vorbis+IDX/SUBなどMUXできるが、 XviD+AAC+IDX/SUBだと警告が出たり、 途中で止まったり、 まだ不安定だ。 デフォルトではgzip圧縮がかかる。圧縮なしは明示的に選択する必要がある。

SUBを直接使えるのは、日本語のようなOCRの難しい言語では実用性が高い。 英語ですらSubRipは正解率100%でなく手動修正がいるので、SUBを直接使いたいという要望がある。 SUBサポートの意義はナマケモノだけにとどまらない。 サバーのなかには、SSAを画像字幕に変換してSUB形式でMKVにとりこむことで、 未サポートのフォント埋め込みに代えよう、というハックを考えている者もいる。

0.7.5リリースの瞬間では、 肝心の再生側のVSFilterがまだGuliverkliに上がってないが、 Gabestは作業中とのことでvery soon、というので、一両日中にも出るのではないか。

「新しいレーシング」とはAVI-Mux GUI overhead comparisonに基づくもので、オーバーヘッドが数10%減~最大数分の1になるシステムであり、 具体的には、複数の方法のうち最も効率的なものが、ブロックごとに、 自動選択される。この「複数の方法」のなかには従来の方式も含まれている。

2003年11月9日

2003年11月9日 [MKV] IDX+SUB再生もサポート

「IDX+SUB」のMUXはMKVToolnix 0.7.5以降で。 再生はGuliverkliの最新フィルター類で。

まだインストーラもなく、実験段階。

2003年11月9日 Guliverkli Splitter 1.0.1.9, MPC 6.4.6.8 (2K XP) (Win98), VSFileter 2.30

インストーラが必要な方 (for Win 2000 / XP)→ dsf20031114.zip

MPC内蔵フィルタでSUB字幕を再生時にオンオフできることを確認した。

VSFilterで一般のDSプレーヤーでもSUBオンオフができる。 この例は、音声も2トラックあって、英語音声と日本語吹き替えを切り替えられる。 画像字幕なのでSSAに比べて不鮮明だが、DVDから直接というメリットは大きいだろう。

2003年11月9日 「IDX+SUB」とは?

字幕付きDVDをPC用ファイルに変換するとき、 字幕を変換先動画に焼き込んでしまうなら簡単ですが、 DVDと同じようにオンオフ・切り替えできたら、洋画などのバックアップで便利。

「AVI動画」より新しい「OGM動画」を使えば、オンオフ・切り替え可能の「SRT」というテキスト字幕を実現できますが、 基本的に(特に日本語字幕では)全部の字幕を自分でテキストとして打ち直さなければいけませんでした。 ちょっと大変ですね。

「IDX+SUB」というのは、DVDに内蔵されている字幕データと等価の、画像データです。 VobSubを使えば、DVDから「IDX+SUB」を抜き出すこと自体は簡単ですが、 それをSRTに変換するのが日本語圏では大変でした。 英語のアルファベットくらいだとフリーのOCR(光学文字読みとり)でだいぶラクができるのですが……。

OGMより後から生まれた「MKV動画」では、この「IDX+SUB」それ自体を動画のトラックとして内蔵して、 再生時にオンオフ、切り替えができるようにしました。 「IDX+SUB」をMKVに埋め込む作業は、 MKVToolnix 0.7.5以降を使えば簡単。 日本時間の今日Guliverkliで公開されたMatroskaSplitter 1.0.1.9とVSFileter 2.30を使えば、任意のDirectShowプレーヤー(Windows Media Playerなど)で、このIDX+SUB埋め込みMKV動画を再生できます。

詳しくは別記事「[MKV] IDX+SUBソフトサブ」をごらんください。

CoreFLAC

2003年11月1日

[MKV] FLAC音声の動画: CoreFLAC。正式サポートはまだだが、一通りは動く。 CoreFLACEncoder-v0.1.zipCoreFLACDecoder.zip。 確定仕様ではなく、暫定的なA_MS/ACM扱いなので、 実験目的だけにどうぞ。不具合もあるかも。

2003年11月14日 CoreFLAC 11月1日にお伝えしたFLACのDSフィルターですが、
http://corecodec.org/projects/coreflac/
に正式にアップされました(内容は同じ)。

install.bat同梱版 dsf20031114.zip

追記: CoreFLAC続報

CorePNG

2003年11月1日

CorePNG: ロスレス、Huffyuvより負荷高いが圧縮率もかなり上。 1フレームずつでなく差分も使えるので圧縮率が稼げる。 PNGなのでアニメ絵に強い。関連

CorePNG 0.8.1

MusePack DirectShow Filter

2003年11月8日 MusePack DSFと日本語ファイル名

RarewaresにあるMPC Direct Show Filterをインストールしても、 日本語などが含まれるファイル名の.mpcファイルを再生できるようにならない。 含まれるフィルタ RLMPCDec.ax が古いため(1.0.0.1)。 Unicodeに対応した1.0.0.2を使えば、日本語を含むファイル名の.mpcファイルが再生できる。 → 詳細

2003年11月9日 MPC DirectShow Filter v1.0.0.3

リリースされました。RadLightMPC_1.0.0.3.exe

関連スレ@ doom9 | radlight

AAC DirectShow Filter

2003年11月13日 AAC DirectShow Filter── 一般のプレーヤーでAACを。

http://rarewares.hydrogenaudio.org/aac.html

パーサフィルタなので、CoreAACなどのデコーダフィルタと併用する必要がある。 Windows Media Player 9 で(MP4形式でない裸の)AACが再生できるのを確認した。 また、ソースフィルタでないため、AAC音声をそのまま動画でMUXするのにも使える。

その他のニュース

2003年11月4日 VirtualDub-1.5.8.zip 「プチお得情報――3GHzのPentium 4の発熱はエネルギーの無駄ではない。もし部屋がすごく寒ければ。 実際、今そうなんだけど。もうちょっとオーバークロックして暖房を強くしたくなってきた」だそうです(w

2003年11月6日 10.01秒物語 BAKA小話SF風味

「おととい来やがれ!」

「来たじゃん」

「はぁ?」

「あさってのお前に聞いて来い!」

Bs Player 1.00 RC1 Build 800というのが出た。 残念なことに、従来の0.8651で正しく再生できたものが、同じ設定で再生できない。 ずいぶん設定の組み合わせを試したが駄目だった。 ごてごてしたスキンになって、Bs Plyaerの良さである軽さも失われた。 しかも個人情報を提供しないとダウンロードできなくなった。 おまけにインストーラは関連付けを勝手に変える我田引水な無礼者。 長いBS Playerの歴史の中で最悪のビルドだ。 お勧めできない。 古典的なAVIファイルくらいしか再生しないユーザには使い道もあるかもしれない。

旧版: bsplay86501.exe

まだRCなので、正式版までに改善されるといいのですが……。

[W3C] PNG勧告 第二版 Portable Network Graphics (PNG) Specification (Second Edition), ISO/IEC 15948:2003 (E)

この記事のURL

テキスト版省パケ版XML版



webmaster@faireal.net