概要
インタレースの動画を VMR9 で DXVA 再生する時, プレイヤでシークするとフィールドオーダの認識が反転してしまう.
対処法
KB919071 をインストールする.
経緯
うちにある Windows XP の PC 3台は以下のよーになっている.
No. | OS | CPU | VGA |
---|---|---|---|
1 (silvia) | Windows XP Proffesional | Athlon64 X2 4600+ | Galaxy GF7600GS-Z |
2 (curren) | Windows XP MediaCenter 2005 | Athlon64 X2 4400+ | Galaxy GF7600GS-Z |
3 (integra) | Windows XP MediaCenter 2005 | Core2Duo E6600 | MSI NX7600GS T2D256EH |
で,この curren が動画再生によく使う PC で,いつもはこいつで再生してる. こいつだと,30i のインタレース動画を ffdshow のハードウェアデインタレース有効で MPC の VMR9(renderless) で再生すると,とても滑らかに 60 フレーム bob 再生できたんで, まぁそういうもんだと思ってたわけですよ.
んが,silvia だとどういうわけか, ほぼ完全に同じ状況(ffdshow と MPC と GeForce 関連のレジストリ設定までよーっく見て,まぁ大体ほとんど同じ) でも現象が異なるのね.
具体的には. VMR9(renderless) では,60フレームなんだけど,片方のフィールドを縦2倍したものを 2フレームずつ表示したようになって, ぱっと見はきちんとインタレ解除されて 30p 表示になってるかのようなんだけど, 縦解像度がグダグダになっちゃう. で,VMR9(windowed) では,curren と同じようにインタレ解除されてるように見えるんだけど, シークするとフィールドオーダがランダムに解釈されるようになって, トップとボトムを間違えたような再生になってしまう.
integra はどうかというと silvia と同じ状況.ていうかなぜ curren だけきれいに再生できるのか謎.
しばらく前からこの現象に気づいてたんだけど, 今日,やっと原因(というか対処法)がわかった. それが冒頭に書いた KB919071 だ.
FIX:ちらつくのが Windows XP で有効な DXVA での ビデオ ミキサー レンダラ 9(VMR9)を介してインターレース内容を再生するとき、シークの後、発生することがあります。
日本語でおk ( ´ω`)
まぁつまり何だ,「ffdshow と MPC と GeForce 関連」まで同じに揃えていたつもりだったけど, どうやらもっと深くの DXVA 周りの問題だったらしい,と. DirectX 関連もファイルの同一性程度までは見たんだけど.Windows は奥が深い(悪い意味でw
File name ファイルのバージョン ファイル サイズ 日付 時間 プラットフォー Quartz.dll 6.5.2600.2905 1,287,680の 10-may-2006 12:51 x86
うちにあったファイルは,3台とも
File name | ファイルのバージョン | ファイル サイズ | 日付 | 時間 | プラットフォー |
---|---|---|---|---|---|
Quartz.dll | 6.5.2600.2749 | 1,275,392の | 30-aug-2005 | 12:55 | x86 |
ということで,まぁ古いものではあるんだけど, きちんと再生できる curren もその古い同じバージョンだからなぁ.
でもまぁいちおう入れてみる.上述ページから windowsxp-kb919071-x86-enu.exe をダウンロードし, 実行すると「言語が違うのでインスコできませぬ」とか抜かしよるので, そのダイアログを表示したまま c:/ にあるテンポラリディレクトリを漁って Quartz.dll をゲット.
でもって普通に c:/Windows/System32/Quartz.dll を置き換えちゃうと, MPC 起動時に WindowsXP SP2 の機能で元に戻されちゃうので, c:/Windows/System32/dllcache/Quartz.dll を先に置き換えておきましょう.
Windows が「知らんバージョン入ってるよ? ヤバくね?」とかグダグダ抜かすけど, うっせバカてめーのバグだろハゲ,とか聞くに耐えない悪態を吐きつつ「黙れ」ボタンを押下.
TODO
というわっけで~. 見事に silvia と curren が同じように再生できるようになりました.イェァー. 今後の課題は, 「なぜ curren は昔から正常に再生できていたのか?」の究明と, integra でも同様の処置をする(面倒だからやってない)のと, その前にできれば KB919071 のもっとスマートなインスコ方法を模索すること.かな.