code up

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

TMPGEncでBDISOな映画をエンコード

Blu-rayの動画をエンコードする場合、アニメであればだいたいTMPGEncだけでmp4が作成できるが、洋画では音声が対応してないケースがある。

選択したディスクの中にデコードできない音声を含んだタイトルがあります。
デコードできない音声は選択肢に表示されないため、音声が選択できなくなったタイトルがあるかもしれません。

TMPGEncでこんなエラーが出た場合だ。

今回変換しようとした動画はDMM.comでレンタルした『ハリー・ポッターと死の秘宝 PART2』(Blu-ray版)である。

まずはAnyDVD HDとImgBurnでBDISOとしてリッピング+保存しておく。次にDaemon Tools Liteでマウントする。私の環境ではJドライブにマウントされる。

これを普通にTMPGEnc Video Mastering Works 5で読み込もうとすると上述のエラーとなる。

このエラーは、ハリーポッター内で使われている音声コーデック『DTS-HD Master Audio』の読み込みにTMPGEncが対応していないために発生している。

このコーデックは次世代DVD規格(Blu-ray/HD DVD)用の音声コーデックである。競合するコーデックとして『ドルビーTrueHD』というものがあるが、HD DVD寄りのコーデックのせいか、今のところ出会ったことはないが、こちらもTMPGEncで標準では読み込めないかもしれない。

このBlu-rayでは、DTS-HD Master Audioは英語音声だけで、TMPGEncで対応しているDolby Digitalの音声(英語、日本語)も入っているのだが、私のやりたい『英語音声』+『日本語字幕』という組み合わせはTMPGEncでは出てこない。表示されるプレイリストでは『英語音声』+『英語字幕』や『日本語音声』+『日本語字幕』の組み合わせしか選べない。

日本語字幕が選択肢にない

英語音声が選択肢にない

英語音声の方(プレイリスト100)は日本語字幕が非表示トラックに、日本語字幕の方(プレイリスト101)は英語音声が非表示トラックに指定されているためだと推測される。

今回は日本語字幕のあるプレイリスト101を生かして、音声だけを後でMuxするようにする。

一旦TMPGEncは忘れて音声のエンコードを行う。

手順は、

  1. 抜き出す対象のプレイリストを特定する
  2. 音声(DTS-HD Master Audio)を抜き出す
  3. 抜き出した音声をAC3(Dolby Digital)フォーマットに変換する
  4. TMPGEncで音声をMuxする

ハリーポッターの場合、Dolby Digitalの英語音声があるにはあるのだが、何故か2.0channelである。他の言語は5.1channelなのに。つまり英語音声はDTS-HDか2.0 channelのAC3しか選択肢がない。

今回はDTS-HDを5.1 channel AC3に変換してみる。その後TMPGEncでステレオ(2.0)に落とすので、2.で抜き出す音声をDolby Digitalの英語音声(ステレオ)にし、3.を飛ばして4.とすることもできる。

英語音声がDTS-HDしかない場合もあるだろうから、それを想定した手順とした。

まずはBlu-rayの情報を確認して本編を探す

BD Infoというツールを使う。

DVDのIFO(タイトル毎のチャプター、再生順、音声、字幕等の制御情報)ファイルは、Blu-rayではPLAYLIST\*.mplsに該当する。VOB(動画)ファイルは、STREAM\*.m2tsとなる。

この.mplsファイルの中身を閲覧できるツールがBD Infoである。

マウントさせたBlu-rayディスクのドライブを指定してRescanするとプレイリストの一覧が表示される。

映画なので2時間前後のプレイリストを探す。この中では00200.MPLS, 00300.MPLS, 00100.MPLS, 00101.MPLSが該当する。

00200.MPLS00300.MPLSは長さが同じなので同じ動画だろう。同様に00100.MPLS00101.MPLSも中身は同じだと推察できる。

これだけではどちらが本編か分からないのでMedia Player Classicなど.MPLSが再生できるプレイヤーで中身を見てみる。

で、見てみた結果00100.MPLS, 00101.MPLSが本編で、00200.MPLS, 00300.MPLSが特典映像だと分かる。

* Blu-rayプレイヤーがあれば、再生してみて出だしが同じファイルを探せばいい。

次に音声を抜き出すプレイリストを、本編の00100.MPLS, 00101.MPLSのどちらを対象とするかであるが、どちらにもDTS-HD Master Audioがあるのでどちらでも良い。

TMPGEncでは、動画と字幕はプレイリストから取得し、音声のみ後からMuxするので、日本語字幕が非表示トラックとなっていない00101.MPLS(プレイリスト101)を選ぶことになる。

Presentation GraphicsのJapaneseの欄に*がついていない方が該当する。*が非表示トラックを表している。

片方がリージョンA(米国、日本)、片方がリージョンB(欧州)用なのかな?とも思ったけど、単に日本向け(00101.mpls)とそれ以外(00100.mpls)なような気もする。

音声を抜き出す

TS用のRemux/Demux/MuxツールであるtsMuxeRを使う。

使い方は、tsMuxerGUI.exeを起動し、00100.mplsを読み込む。

中程のTracksからDTS-HD以外のトラックを削除(remove)する。

OutputからDemuxを選び、出力先を指定して『Start demuxing』すれば良い。

ただし、ハリーポッターの場合次のエラーが出た。

Can't create output file D:\Temp\00004+00015+00009+00016+00010+00011+00117+00118+00018+00019+00020+00119+00021+00022+00023+00120+00024+00025+00026+00121+00027+00028+00029+00122+00030+00031+00032+00033+00034+00035+00036+00037+00038+00039+00040+00041+00042+00043+00044+00045+00046+00047+00050+00051+00052+00053+00054+00055+00008+00059+00060+00061+00062+00063+00064+00065+00066+00067.track_4352.dts

ファイル名の長さが256文字以上(NTFSはパス名が255文字まで)だからだろう。コマンドラインのマニュアルも見てみたが、変える方法はないようだ。

なので、もう一手間加える。

Outputの所をM2TS muxingにし『Start muxing』をする。.m2tsファイルが出来上がったら、Input filesを一旦空にする。(.ts.m2tsの違いについては過去の記事をご参考に)

今度はその.m2tsファイルを読み込み直した上でDemuxを行う。

出力先に*.dtsファイルが出来上がっていれば成功。VLCやMPCなどで再生を試す。MPCだとシークすると落ちることがあるので、今回はVLCを使った。

DTSをAC3に変換する

eac3toというツールを使う。コマンドラインツールなのでEAC3toGUIというGUIを使っている。

Source fileに上記の*.dtsファイルを指定して『Convert』を押すだけだ。

コマンドラインを起動して文字を流し込むソフトのようなので、日本語のフォルダ名とかは避けた方がよさそう。

*.ac3ファイルが出来上がっていれば成功。再度、VLCやMPCなどで再生を試す。

TMPGEncでMux。でもその前に

さて、これでようやくTMPGEncで音声がMuxできる準備が整ったわけだが日本語字幕がふたつあることに気づくだろう。BD Infoで見ると正確には3つの日本語字幕がある。通常の字幕監督等のコメント(Directors comments)、字幕量の少ないものである。

通常は上にあるものを選べば良いのだが、もしそれぞれがどんな字幕かを確認したい場合にはTMPGEncで字幕を変えながらプレビューで確認する以外にも、tsMuxeRで字幕ファイルを抜き出して(パス長の問題でプレイリストから直接DemuxできないのでM2TSに一旦Muxしてから抜き出した)、SUPreadでSUPファイルを閲覧するという方法もある。

TMPGEncでようやくMux

Blu-rayをマウントし、TMPGEncでドライブを指定する。

音声に関するエラーが出るが気にせず進み、目的のプレイリストを選択する。

この時音声は『なし』、字幕に『日本語』を指定し、次へ進む。

クリップの情報で音声ソースを変換した*.ac3ファイルを選択するわけだが、次の警告が出た。

ソースが変更されますのでカット編集とキーフレームのリストを初期化します。
よろしいですか?

いいえを選択するとカット編集とキーフレームを初期化せずに音声ソースを変更します。

カット編集はしてないし、せっかく取り込んでくれたチャプター(=キーフレームのリスト)まで初期化されるのは困るのでここは『いいえ』を選択する。

あとは通常の動画変換と同じ流れで作業する。音声を別経路で作成しているので、音ズレがないかだけプレビューで確認すると良いだろう。

今回はTMPGEncで確認すると長さに数ミリ秒の違いがあったが、ビデオと音声は長さの計算が違うので数ミリ秒の誤差は出てしまうので仕方ない。通常の*.tsファイルからのエンコード時も数ミリ秒ずれてる。

テンプレートは過去の記事でちょっとだけ紹介しています。

関連記事
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。