AVI Mux フィルター
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
AVI Mux フィルタは、複数の入力ストリームを受け入れ、AVI 形式にインターリーブします。 フィルターは、入力ストリームごとに個別の入力ピンを使用し、AVI ストリームには 1 つの出力ピンを使用します。
ビデオ キャプチャまたはオーサリング アプリケーションでは、このフィルターを使用してファイルを AVI 形式でディスクに保存できます。 通常、フィルターは ファイル ライター フィルターに接続されますが、入力ピンが IStream インターフェイスと IMemInputPin インターフェイスをサポートするフィルターに接続できます。
Label | 値 |
---|---|
フィルター インターフェイス | IBaseFilter、 IConfigAviMux、 IConfigInterleaving、 IMediaSeeking、 IPersistMediaPropertyBag、ISpecifyPropertyPages |
入力ピン メディアの種類 | 古いスタイルの FOURCC またはMEDIATYPE_AUXLine21Dataに対応する任意のメジャー型。 (詳細については、「 FOURCCMap クラス」を参照してください)。
|
入力ピン インターフェイス | IAMStreamControl、 IMemInputPin、 IPin、IPropertyBag、 IQualityControl |
出力ピン メディアの種類 | MEDIATYPE_Stream、MEDIASUBTYPE_Avi |
出力ピン インターフェイス | IPin、 IQualityControl |
CLSID をフィルター処理する | CLSID_AviDest |
プロパティ ページ CLSID | CLSID_AviMuxProptyPage、CLSID_AviMuxProptyPage1 |
[実行可能ファイル] | qcap.dll |
メリット | MERIT_DO_NOT_USE |
フィルター カテゴリ | CLSID_LegacyAmFilterCategory |
解説
次の解説では、AVI Mux フィルターの機能のさまざまな側面について説明します。
ピン
AVI Mux フィルターを作成すると、1 つの入力ピンが含まれます。 各入力ピンが接続されると、フィルターによって新しい入力ピンが作成されます。
Stream プロパティ
入力ピンは、個々のストリームでプロパティを設定するための IPropertyBag インターフェイスをサポートしています。 現在、次のプロパティが定義されています。
プロパティ | 説明 |
---|---|
name | ストリームの名前です。 このプロパティはチャンクとして 'strn' 書き込まれます。 |
フィルターが実行中または一時停止している場合、IPropertyBag::Write メソッドはVFW_E_WRONG_STATEを返します。
フレーム レート
アップストリーム フィルターで VIDEOINFOHEADER 構造体の AvgTimePerFrame メンバーにフレーム レートが指定されていない場合、AVI Mux は最初のビデオ フレームのタイム スタンプを使用します。 AVI ファイル形式では、可変フレーム レートはサポートされていません。
ドロップされたフレーム
AVI Mux フィルターは、各サンプルのメディア時間 (使用可能な場合) またはサンプルのタイム スタンプに基づいてドロップされたフレームを計算します。 削除されたフレームごとに長さ 0 のインデックス エントリが書き込まれます。
IMediaSeeking
AVI Mux フィルターは、 次のように IMediaSeeking インターフェイスを 実装します。
- GetCurrentPosition メソッドは、多重化の現在の進行状況を返します。 ファイルをコード変換する場合 (リアルタイムよりも遅い)、この値はフィルター グラフ マネージャーによって返される値よりも正確です。 詳細については、GetCurrentPosition リファレンス ページの「解説」セクションを参照してください。
- GetDuration メソッドは、各アップストリーム フィルターに対してクエリを実行し、最も長いストリームの期間を返します。 これらのフィルターのいずれかが GetDuration 呼び出しに失敗した場合 (または IMediaSeeking をサポートしていない場合)、AVI Mux はエラー コードを返し、見つかった最も長い期間 を pDuration パラメーターに入力します。 ただし、この場合の pDuration の値は、必ずしも最も長い入力ストリームの長さであるとは限りません。
- AVI Mux は、GetStopPosition、GetPositions、GetAvailable、GetRate、または GetPreroll メソッドを実装していません。また、シーク用の Set* メソッドも実装しません。
AVI 2.0ファイル形式拡張子
DirectShow では現在、次の AVI 2.0 ファイル形式拡張子がサポートされています。
- AVI ファイル サイズの増加 (1 GB を超える)
- 階層インデックス作成
詳細については、OpenDML AVI M-JPEG ファイル形式小委員会によって公開されている "OpenDML AVI ファイル形式拡張子" のバージョン 1.02 を参照してください。
関連トピック