Share via


IMediaDet インターフェイス

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

注意

[非推奨。 この API は、Windows の今後のリリースから削除される可能性があります。

 

インターフェイスは IMediaDet 、ストリームの数、各ストリームのメディアの種類、期間、フレーム レートなど、メディア ファイルに関する情報を取得します。 また、ビデオ ストリームから個々のフレームを取得するためのメソッドも含まれています。 Media Detector (MediaDet) オブジェクトは、このインターフェイスを公開します。

このインターフェイスを使用してファイルに関する情報を取得するには、次の手順を実行します。

  1. CoCreateInstance を呼び出して MediaDet オブジェクトのインスタンスを作成します。 クラス ID がCLSID_MediaDet。
  2. IMediaDet::p ut_Filename を呼び出して、ソース ファイルの名前を指定します。
  3. IMediaDet::get_OutputStreams を呼び出して、ソース内の出力ストリームの数を取得します。
  4. IMediaDet::p ut_CurrentStream を呼び出して、特定のストリームを指定します。
  5. 次のいずれかのメソッドを呼び出します。

ビデオ フレームを取得するには、 IMediaDet::GetBitmapBits または IMediaDet::WriteBitmapBits を呼び出します。 返されるフレームは、常に 24 ビット RGB 形式です。

注意

複数のファイルで同じ MediaDet オブジェクトを使用しないでください。 複数のファイルから情報またはビデオ フレームを取得するには、個別の MediaDet インスタンスを使用します。

 

IMediaDet インターフェイスは VIDEOINFOHEADER2 形式をサポートしていないため、このインターフェイスを使用してインターレースされたフィールドやインターレースに関する情報を取得することはできません。 また、アップストリーム デコーダーが VIDEOINFOHEADER2 のみをサポートしている場合は、 を使用 IMediaDetできません。 たとえば、MPEG-2 デコーダーの場合などです。 また、インターフェイスは IMediaDet 、ビデオまたはオーディオではないファイル内のストリームを無視します。 たとえば、ファイルにオーディオ ストリーム、データ ストリーム、ビデオ ストリームが含まれている場合、 get_OutputStreams メソッドは 2 つのストリーム (オーディオとビデオ) のみを報告します。

メンバー

IMediaDet インターフェイスは、IUnknown インターフェイスから継承されます。 IMediaDet には、次の種類のメンバーもあります。

メソッド

IMediaDet インターフェイスには、これらのメソッドがあります。

メソッド 説明
EnterBitmapGrabMode メディア検出機能をビットマップ グラブ モードに切り替え、フィルター グラフを指定した時間にシークします。
get_CurrentStream メディア検出機能で現在使用されているストリーム番号を取得します。
get_Filename メディア検出機能で現在使用されているソース ファイルの名前を取得します。
get_Filter メディア検出機能で現在使用されているソース フィルターへのポインターを取得します。
get_FrameRate 現在のストリームのフレーム レートを取得します。
get_OutputStreams メディア ソースに含まれるオーディオ ストリームとビデオ ストリームの数を取得します。
get_StreamLength 現在のストリームの期間を取得します。
get_StreamMediaType 現在のストリームのメディアの種類を取得します。
get_StreamType 現在のストリームのメディアの種類のグローバル一意識別子 (GUID) を取得します。
get_StreamTypeB 現在のストリームのメディアの種類の GUID を表す文字列を取得します。
GetBitmapBits 指定したメディア時刻にビデオ フレームを取得します。
GetSampleGrabber ISampleGrabber インターフェイスへのポインターを取得します。
put_CurrentStream 使用するメディア検出器のストリーム番号を指定します。
put_Filename メディア検出機能で使用するソース ファイルの名前を指定します。
put_Filter 使用するメディア検出機能のソース フィルターを指定します。
WriteBitmapBits 指定したメディア時刻にビデオ フレームを取得し、ファイルに書き込みます。

 

解説

注意

ヘッダー ファイル Qedit.h は、バージョン 7 より後の Direct3D ヘッダーと互換性がありません。

 

注意

Qedit.h を入手するには、Windows Vista および .NET Framework 3.0 のMicrosoft Windows SDK Update をダウンロードします。 Qedit.h は、Windows 7 および .NET Framework 3.5 Service Pack 1 のMicrosoft Windows SDKでは使用できません。

 

要件

要件
ヘッダー
Qedit.h
ライブラリ
Strmiids.lib