そこで、Windows のメディア再生の世界を調べ、DirectShow を使用して C# メディア プレーヤーを作成し始めました。私は VRM-7 のウィンドウ付きビデオ レンダラーを使い始めましたが、いくつかの小さな問題 (マルチ モニター、フルスクリーン) があったことを除けば素晴らしいものでした。しかし、いくつかの調査の結果、VRM9 は非推奨であり、VRM9 を使用する必要があることがわかりました。それで、VRM9ウィンドウレスを使用するように変更し、それが古い投稿roflであることがわかりました>_<したがって、最終的にVista / Win7(またはXP .net 3)Enhanced Video Renderer(EVR)を使用しています。これは明らかに最新ですMicrosoft ビデオ レンダラーであり、派手なパフォーマンス/品質がすべて追加されています。(ちなみに私は何の違いにも気づいていませんが、それに気付くにはブルーレイまたは HQ ビデオが必要かもしれません)。
EVR を使用すると、ビデオのサイズ変更以外はすべて正常に機能します。それは本当にラグ/途切れ/ティアリーであり、おそらくフレームのキューイングメカニズムに関係しています.
私の問題を実証するには
- Windows Media Player クラシックを開きます。
- 表示 -> オプション -> 再生 -> 出力
- 「EVR」DirectShow ビデオ レンダラーを選択
wmp クラスを再起動してビデオを再生します。再生中にコーナーをクリックしてドラッグし、サイズを変更します。あなたはその恐ろしく遅れていることに気付くでしょう。これは私が抱えている問題とまったく同じです。
しかし、「EVR Custom Pres. **」または「EVR Sync **」を選択した場合、サイズ変更は美しく機能します!そこで、EVR のサイズ変更の問題とその修正方法についてグーグルで調べてみましたが、信じられないほど少ないものしか見つかりませんでした。 "Custom Pres." は "Custom Presenter" の略で、EVR と他の EVR の間で交換すると、右側の灰色の Resizer ドロップダウンに気付くでしょう。アウト。
したがって、基本的に、この遅れたサイズ変更の問題を修正する方法を知りたくないのですが、適切なドキュメントはありますか? VMR7/9 にはかなりの量がありますが、EVR にはあまりありません。サンプルが含まれているように見える DirectX SDK をダウンロードしましたが、関連するものが何もないため、500MB の帯域幅が無駄になりました。
それが問題である場合、おそらくフレームをキューに入れないようにする方法がありますか? コードで単語を言う場合は、いくつか貼り付けます。しかし、それは非常に単純で、何も起こりません。EVR レンダラーに問題があると確信しています。
編集:ああ、もう1つ、VLCは何を使用していますか? vlc オプションに移動して、レンダラーをデフォルト以外に変更すると、それらはすべてうまくいきません。VMR7を使用していますか?それとも独自の?