TMPGEnc Video Mastering Works 5でVC-1の映像を読み込む方法(無理やり)

以前も少し記載したかもしれませんが、TMPGEnc Video Mastering Works 5ではVC-1のファイルは読み込めません。正確には読み込めるのですが、映像としては使用できません。ですので、VC-1DTS-HDの場合、そのままの状態ではTMPGEnc5ではまったくつかいものになりません。DTS-HDの音声の場合は、色々細工をすれば読み込めるようになるのですが、VC-1の場合はどうやってもできなかったのですが、いろいろインターネットを検索するとできるようになりましたので、記載したいと思います。
ただし、これは無理やりTMPGEnc5で処理させていますが、この処理の過程でAviUtiを用いるので、その時点でエンコードしてもよいと思います。僕は、TMPGEnc5のバッチ処理とかからみで、TMPGEnc5で処理させているだけのお話になります。

必要なもの

AviUtl
HaaliMediaSplitter
mkvmerge
SupTitle

大手のものは、Googleで検索すれば、おそらく結果に表示されると思います。

手順

映像、音声、字幕を取り出す

tsMuxeRで、映像、音声、字幕を取り出します。対象のファイルをtsMuxeRに放り込んで、
codecがVC-1
codecがDTS-HD or AC3
codecがPGS、langが対象の言語(日本語の場合jpn)
のファイルを選択し、Demuxして適当な場所に書き出します。

VC-1Matroska形式に変換する

先ほどの手順で変換したVC-1の映像を、mkvmergeでmkvファイルに変換します。
mkvmergeを立ち上げて、映像ファイルを放り込み、MUX開始ボタンを押します。

音声を変換する

AC3の場合は、特に必要ありませんが、DTS-HDの場合はAAC等に変換しておいてください。

映像ファイルを作成する

AviSynthを使います。以下のようなavsファイルを準備します。

LoadPlugin("vss.dll")
LoadPlugin("SupTitle.dll")


DSS2("test.mkv").SupTitle("test.sup", forcedOnly=false, swapCbCr=false, relocate=true, relocOffset="")

vss.dllは、HaaliMediaSplitterのインストールが必要です。僕の場合、C:\Program Files (x86)\Haali\MatroskaSplitterにありました。フルパスで記載します。
SupTitle.dllは、ホームページからダウンロードできます。展開して適当に配置して、そのフルパスを記載します。
DSS2で、mkvファイルを指定し、SupTitleに字幕ファイルを指定します。
このファイルを、一度再生させてみて、映像、字幕が表示されるか確認します。ちなみに、音声は再生されません。
赤い文字で、エラーみたいなものが表示された場合は、修正します。大体、dllのパスが違っていたり、ファイルのパスが違っていたりするものが多いと思います。

AviUtl用のプロジェクトを用意する

これは、おそらく僕の環境の問題かもしれませんが、TMPGEnc5に上記で作成したavsファイルを指定しても、TMPGEnc5がフリーズして正常に読み込んでもらえません。これでいったんあきらめていたのですが、AviUtl用のプロジェクトにすると、読み込んでもらえたので、AviUtlを使います。
AviUtlを起動して、avsファイルを放り込んで、編集プロジェクトの保存で、適当な場所に保存します。

TMPGEnc5でエンコード

TMPGEnc5を起動し、aviutlのプロジェクトを指定します。すると、いつもの見慣れた画面が表示されます。
avsには映像のみで、音声はふくまれておりませんので、音声を別途指定します。
あとは、適当にエンコードしてあげます。

その他

結局のところ、AviUtlで読み込めるということは、そのままAviUtlで処理しても問題ないと思います。僕の場合、エンコーディングの処理はすべてTMPGEnc5で行っており、その関係でAviUtlではなくTMPGEnc5を使っているだけの話です。

結びに

前回の本編が複数m2tsに分割された場合、今回のVC-1コーデックの場合、いずれも色々下処理は必要になりますが、TMPGEnc5で処理できるようになりました。
本当にいい時代になったな〜と