人気ブログランキング | 話題のタグを見る
DirectShowフィルタを確認方法 と Windowws7でのデコーダの罠
Windows Media Playerでメディアファイルを再生するときに、一体どのデコーダ(フィルタ)で再生してるのか調べる必要が出てきました。

そこで役に立つのが、GraphEdit というMicrosoftからデベロッパ向けに提供されているツールです。

本来はDirectShowフィルタを操作するためのツールですが、どのフィルタを使っているのかを簡単に調べることも出来ます。

GraphEditはDirectShow SDKに入ってたり、 Platform SDK に入ってたり、 Windows SDK に入ってたりと世代で含むSDKが異なっています。
SDKは大きいから、GraphEdit単体だけ入手したいというのであれば、GraphEdit Build 090704 | Software - Digital DigestからBuild 090704版がダウンロードできるようです。

後は、GraphEditを起動し、メディアファイルをドラッグするだけです。

例えば、AVIファイルで、映像コンテナにDivx,音声コンテナにMP3の場合は3流PGの環境の場合、以下のようになっていました。
DirectShowフィルタを確認方法 と Windowws7でのデコーダの罠_e0091163_13532350.jpg


映像コンテナにx264を使った場合は以下のようでした。
DirectShowフィルタを確認方法 と Windowws7でのデコーダの罠_e0091163_13533089.jpg


Windows7環境なので、どちらもOS同梱のビデオ/オーディオコーデックを使ってデコードしているようです。

さて、ffdshowを入れたので、ffdshowで再生してやろうかと思いました。
しかし、WindowsMediaPlayerで再生しようとしたところ、ffdshowを使ってる気配がありません。
GraphEditで見ても、MSのデコーダが使われているようです。

メリット値の問題かなと思い、オーディオコーデックの優先順位変更にあるように、Direct Show Filterを使ってメリット値を確認して見ましたが、ffdshowはかなり優先にしてるので、メリット値の問題ではないようです。

で、ググったところ Windows7 からメリット値に関係なくMS純正デコーダが使われるようです。

Vista以降のWindowsには、マルチメディア再生としてMedia FoundationというAPIが用意されたようです。今までのDirectShowを置き換えるAPIのようです。(不覚ながらこのあたりの情報は殆ど知りませんでした)

どうやらWMPはMedia Foundationを使ったデコーダを優先して使うっぽいです。(憶測ですが。。)


さらに調べると、Win7DSFilterTweakerというツールを使うとWindows7のデコーダを設定できることがわかりました。

Win7DSFilterTweakerの、"Media Foundation"で、無効にする拡張子を選択するか "Tweaks" で "Disable Media Foundation" にチェックを入れるとMedia Foundationを無効にできるようです。(64-bitもありますが、これはなぜか無効化出来ませんでした。ただ、WMPの標準のショートカットはx86版を指しているので64bitを無効にしなくても良いようです)

もし、再生プレーヤーで64bit版を使うなら、それ用のドライバを入れておく必要があるようです。

DivXを入れておくとMedia Foundationを無効化にしたときになぜかDivX H264デコーダが優先されてしまいました。


情シスにいると、結構マルチメディア方面には疎くなるもんですが、ここまで時代に置き去りにされているとは思わずちょとショック気味の3流PGでした。。


参考:
GraphEdit 非公式ガイド
GraphEditを利用したATI DirectShowフィルターの使用で、エンコード設定のカスタマイズ
GraphEdit の使い方
Windowsの動画解析ツール
Windows7固有問題
Win7DSFilterTweaker
Windows 7 RC インストール初期状態のコーデック&デコーダー
by Jehoshaphat | 2011-11-05 13:54 | ツール | Comments(2)
Commented by NA at 2013-02-20 18:10
グラフエディットについて調べていてたどり着きました
非常に参考になりました
ありがとうございます
Commented by nanasy at 2014-12-22 23:45
この記事のおかげで10bitのH264の動画がwmpで再生出来たり、
TMPGEncでエンコ出来るようになりました。
Media Foundationがくせ者だったんですね、勉強になります。
マジありがとうございます。


<< WindowsServerソフ... X264,DivX,WMV9コ... >>