DirectShow対応について (動画を再生できるようにするためのPC設定)

DTXMania Release104以降では、動画の再生機能を実現するために、DirectShow機能を使用しています。 (従来のDTXManiaでは、Video for Windowsを使っていました。)

DirectShowやVideo for Windowsを使って動画を再生するためには、 コーデック(codec)というものをインストールして動画再生機能を追加しますが、 このcodecは、動画のフォーマットごとに、DirectShowをサポートしているか、Video for Windowsをサポートしているかが異なります。

そのため、従来のDTXManiaでは再生できなかった動画が再生できるようになったり、逆に再生できなくなったりします。

当方では、ffdshow tryoutと、K-Lite Codec Packという、2つのcodecで、DTXManiaの動作確認をしました。 これら2つのcodecのメリット/デメリットは、以下の通りです。

K-Lite Mega Codec Packのメリット/デメリット

  • メリット: ffdshow tryoutに比べて、動作が軽い。また、ffdshow tryoutだと途中で再生が止まる動画も、最後まで再生できた。
  • デメリット:動画がカクツクことがある。

ffdshow tryoutのメリット/デメリット

  • メリット: 動画がカクツかない?
  • デメリット: 途中で再生が止まる動画があった。

codecの導入方法

ここでは、その2種類のcodecの導入方法をご紹介いたします。 ただし、複数のcodecを同時に導入することはできません。どれか1つを選んで導入してください。

K-Lite Mega Codec Packの導入方法

1. K-Lite Mega Codec Packをダウンロードする。
DOWNLOAD LOCATIONSの下にある Download@MajorGeeks をクリックしてください。(複数ある場合は、どれか1つをクリックしてください。) ダウンロード画面に移ります。
そこでしばらく待つと、ダウンロードが始まります。

2. ダウンロードしたファイルを実行して、インストールしてください。
ffdshowなど、既に別のcodecがインストールされている場合は、この時にアンインストールしてもよいか確認があります。 (そのまま進めると、アンインストールされますので、アンインストールしてください)

ffdshow tryoutの導入方法

(StrrokeStyle<T>でのcodec導入手順を、ほぼそのまま引用しています。)

1. ffdshow tryoutのサイトから、最新のclsidシリーズをダウンロードする。2015年12月11日時点では、ffdshow_rev4533_20140929_clsid.exe が最新でした。
なお、ファイル名の最後に_x64とついているものとついていないものがありますが、必ずx64が付いていないもの(32bit版)をダウンロードしてください。お使いのOSが64bit版であっても、32bit'版を使います。

2. ダウンロードしたファイルを実行して、ffdshow tryoutをインストールします。インストール途中の 「コンポーネントの選択」画面では、「DXVAビデオデコーダー」にチェックを入れます。他はそのままで良いです。

3. インストール途中の 「追加タスクの選択」画面の設定は、そのままで良いです。(というか、それぞれの検証を全然やってない...)

4. 次に、Video for Windowsの設定を行います。
4-1.「スタートボタン」 →「すべてのプログラム」→ 「ffdshow」→「VFWの設定」を起動します。(OSにより「スタートボタン」などの表記が若干異なりますが、うまく読み替えてください)
4-2.「Decoder」タブを選択します。
4-3. ウィンドウ左側のリストの一番上、「コーデック」をクリックします。
4-4. 右側のリスト領域のどこかで右クリックし、「安定な形式をすべて libavcodec に設定する」を選択します。
4-5. 「OK」ボタンを押下し、ウィンドウを閉じます。

5. ビデオデコ-ターの設定
5-1. 「スタートボタン」→「すべてのプログラム」→「ffdshow」→「ビデオデコーダーの設定」を起動します。
5-2. ウィンドウ左側のリストの一番上、「コーデック」をクリックします。
5-3. 右側のリスト領域のどこかで右クリックし、「安定な形式をすべて libavcodec に設定する」を選択します。
5-4. ウィンドウ左側のリストの下のほう、「出力」をクリックします。
5-5. 「サポートされた出力色空間」グループの中にある「RGB32」にチェックが入っていることを確認し、「優先的に使用する色空間」を「RGB32」に変更して下さい。
5-6. 「OK」ボタンを押下し、ウィンドウを閉じます。

6. DXVA ビデオデコーダーの設定 6-1. 「スタートボタン」→「すべてのプログラム」→「ffdshow」→「DXVA ビデオデコーダーの設定」を起動します。
6-2. ウィンドウ左側のリストの中段、「ハードウェアアクセラレーション」をクリックします。
6-3. 「DXVAを有効にする」グループについて、DXVA を有効にしたい種別にチェックを入れます。基本的に全部にチェックを入れることをお勧めします。
6-4. 「OK」 ボタンでウィンドウを閉じます。

7. オーディオデコーダーの設定 7-1. 「スタートボタン」→「すべてのプログラム」→「ffdshow」→「オーディオデコーダーの設定」を起動します。
7-2. ウィンドウ左側のリストの一番上、「コーデック」をクリックします。
7-3. 右側のリスト領域のどこかで右クリックし、「安定な形式をすべて libavcodec に設定する」を選択します。
7-4. 「OK」ボタンでウィンドウを閉じます。

8. MPC-Standalone Filters のインストール
MPC-Standalone Filters は、MPC Home Chinema という製品から DirectShow 用のフィルタだけを取り出したパッケージです。ここでは、この中から「FLVSplitter」だけをインストールします。(.flv ファイルを DirectShow で利用可能にするスプリッターフィルタです。)
8-1. MPC Home Chinema プロジェクトの Standalone Filters ページから、最新の 「Filters vM.N.R.B _ Win32」 フォルダをクリックします。(OS が 64bit 版 Windows であっても、32bit 版をダウンロードしてください。M.N.R.B はバージョン番号です。)
8-2. 「MPC-Standalone Filters.M.N.R.B.x86.zip」をダウンロードします。(M.N.R.B はバージョン番号です。)
8-3. zip を解凍し、中にある「FLVSplitter.ax」ファイルを、以下のフォルダにコピーまたは移動します。

  • Windows 7, 8.1, 10 (32bit) の場合 … C:\WINDOWS\System32\
  • Windows 7, 8.1, 10 (64bit) の場合 … C:\Windows\SysWOW64\

8-4. コマンドプロンプトを管理者権限で起動します。
「スタートボタン」→「すべてのプログラム」→ 「アクセサリ」→「コマンド プロンプト」を右クリックし、「管理者として実行]」を選択します。
OSによっては、コマンドプロンプトを選択するまでのパスが違っているので、手k氏悦に読み替えてください。また、「管理者として実行」は、最新のWin10では「その他」メニューの中にあるので注意してください)
8-5. コマンド 「regsvr32 <先ほどコピーしたフォルダ>\FLVSplitter.ax」 を実行します。何か成功(Succeed)したようなウィンドウが表示されれば OK です。
8-6. 「OK」ボタンを押下してウィンドウを閉じ、コマンドプロンプトを終了します。

9. Haali Media Splitter のインストール
Haali Media Splitter は、.mp4/.mkv/.ogg/.ogm/.ts/.m2t/.m2ts ファイルを DirectShow で利用可能にするスプリッターフィルタです。現在は「MatroskaSplitter」という名称になっています。
9-1. Haali Media Splitter のページ から、「MatroskaSplitter」をダウンロードします。(ページの右上の方に「Download」欄があります。)
9-2. MatroskaSplitter をインストールします。途中に出てくるオプション画面の変更は不要です。

  • 注1: Windows には標準で AVIスプリッターが搭載されているので、「Enable AVI Support」のチェックは不要です。
  • 注2: 「Enable MPEG-PS support」は……、旧アナログTVのキャプチャ動画などを DirectShow で再生したりする場合には有用でしょうが、今どきは使わないと思います。よってチェックは不要です。
  • 注3: 拡張子が .mkv と .mka のファイルを勝手に Windows Media Player に割り当てられると迷惑だという人は、「Associate .mkv and .mka files with Windows Media Player」のチェックを外して下さい。


10. 優先コーデックの選択
Windows7以降のOSでは、ffdshow をインストールしても、DirectShow が必ず ffdshow を使ってくれるとは限りません。例えば、H.264 コーデックには、ffdshow 版と Microsoft 版の2つが存在することになる場合があります。そして、少なくともWindows7 の初期状態では、常に Microsoft 版を優先して使用するように「設定」されています。このままでは、せっかく ffdshow を入れたのに DirectShow はそれを使ってくれません。
この競合するコーデックの「優先設定」を行うには、「Win7DSFilterTweaker」というツールを使用します。 10-1. Win7DSFilterTweaker をダウンロードします。必ず最新版を使用して下さい。
10-2. Win7DSFilterTweaker を起動すると、メニュー画面が表示されます。
10-3. 「Preferred decoders」ボタンを押下すると、どのフォーマットにどのコーデックを優先して割り当てるかを設定できる画面が表示されます。
64bit版のOSをお使いの方は、32bit側の設定を行ってください。(64bit側の設定は不要です)
10-4. ffdshow が使えるフォーマットについて、すべて ffdshow を選択して下さい。 ただし、「MP2」と「MP3」は変更しないで下さい。(「Microsoft」以外のものに変更しようとすると警告が出ます。) また、「ffdshow (DXVA)」が選択できる場合は、そちらを優先して選択して下さい。
10-5. 「Apply」(適用する)または「Apply & Close」(適用して閉じる)ボタンを押下し、メニュー画面に戻ります。
普通に Enter キーを押したりすると、Apply されずに Close されてしまいますのでご注意下さい。[[BR}] 10-6. 最後に、メニュー画面で「EXIT」ボタンを押下し、Win7DSFilterTweaker を終了します。

注意:Apply したにも関わらず、再び Win7DSFilterTweaker を開くと設定が元に戻されている場合があります。原因はよく分かっていないのですが、この場合は、ffdshow をアンインストールし、再びインストールすると治るようです。

その他、注意事項

  • DivXの動画が黒画面になってしまう場合は、正式なDivX codecをアンインストールしてください。ffdshow tryoutや、K-Lite Mega Codec PackのDivX再生機能を使うようにすることで、DivXの動画をDTXManiaで再生できるようになります。
  • 譜面や音声に比べて、動画再生がどんどん遅れていく場合があります。Surface Proシリーズをお使いの場合、特に顕著に発生するようです。CONFIGURATION/System/VSyncWaitをONにすると、この現象が起きにくくなるようです。
  • K-Lite Mega Codec Packをお使いの場合、譜面は滑らかにスクロールするのに、動画の再生がカクつく場合があります。(原因調査中) しかし、下記のように、HWアクセラレーション機能を有効にすることで、カクつきを減らせる場合があります。

1. 「すべてのプログラム」→「K-Lite Codec Mega Pack」→「Codec Tweak Tool」として、Codec Tweak Toolを起動する。
2. Configurationの、!DirectSHow Filtersをクリックする。
3. Video Decodersの、LAV Video decoder をクリックする。
4. 右上にある「Hardware Acceleration」の「Hardware Decoder to use:」のところを、None以外にする。(どれにするかは、PCによって異なります。色々試してください)
5. OKを押して、「プロパティ」ウインドウを閉じる。
6. Closeを押して、「DirectShow Filter Configuration」ウインドウを閉じる。
7. Exitを押して、Codec Tweak Toolを終了する。

  • ffdshow tryoutをお使いの場合、動画再生が途中で止まる場合があります。(原因調査中)