1

私は現在、MediaFoundationプレーヤー用のカスタムEVRを作成しています。

これまでのところすべてが機能しますが、レンダリングしているビデオファイルのネイティブ解像度を見つける必要があります。

IBasicFilter2インターフェイスを使用してgetVideoSize、get_VideoHeight、またはその他のget_SourceWidthなどを使用しようとしていますが、常にE_NOINTERFACEが返されます...

それで、誰かがビデオファイルの解像度を取得する簡単な方法を持っていますか?素敵なライトライブラリを使用している場合でも...サイズは他にありません...Windowsはファイルブラウザ内でそれを見つけることができますが、コードから取得することはまったくできません...

ありがとう!

4

1 に答える 1

0

DirectShow で IMediaDet を使用して、ビデオ ストリームの解像度など、メディア ファイル内のストリームに関する情報を取得できます。

ただし、注意事項があるため、バックアップ方法が必要になる場合があります。

調査中のメディア ファイルを認識する適切な DirectShow フィルタを登録する必要があります。誤った結果をもたらすフィルタがインストールされている可能性があります。たとえば、ファイル内のビデオ ストリームを無視するメディア タイプに対してオーディオのみのフィルタが登録されている場合などです。

現在、MSDN のリファレンス ページには、この機能を置き換えるものは示されておらず、推奨されていません。また、Windows SDK からヘッダーが削除されているため、ビルドするのも面倒です。

その方法が機能しない 1 つのケースを次に示します... MP4 ストリームの長さを取得する

于 2011-03-31T12:47:28.397 に答える