AVI Mux フィルタ
AVI Mux フィルタは、複数の入力ストリームを受け取り、それらを AVI フォーマットにインターリーブする。このフィルタは、各入力ストリームに個別の入力ピンを使い、AVI ストリームに 1 つの出力ピンを使う。
ビデオ キャプチャ アプリケーションやオーサリング アプリケーションは、このフィルタを使って、ファイルを AVI フォーマットでディスクに保存できる。通常、このフィルタはファイル ライタ フィルタに接続されるが、入力ピンで IStream および IMemInputPin インターフェイスをサポートする任意のフィルタに接続できる。
フィルタ インターフェイス | 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 つの入力ピンが作成される。その後それぞれの入力ピンが接続されるたびに、フィルタによって新しい入力ピンが作成される。
ストリーム プロパティ
入力ピンは、個々のストリームにプロパティを設定するために IPropertyBag インターフェイスをサポートしている。現在、以下のプロパティが定義されている。
プロパティ | 説明 |
name | ストリームの名前。このプロパティは、'strn' チャンクとして記述される。 |
フィルタが実行中またはポーズ中の場合、IPropertyBag::Write メソッドは VFW_E_WRONG_STATE を返す。
フレーム レート
アップストリーム フィルタが VIDEOINFOHEADER 構造体の AvgTimePerFrame メンバ内でフレーム レートを指定しない場合、AVI Mux は最初のビデオ フレームのタイム スタンプを使う。AVI ファイル フォーマットは、可変フレーム レートをサポートしていない。
ドロップ フレーム
AVI Mux フィルタは、各サンプルのメディア タイムが使用可能な場合はそれらを使って、それ以外の場合はサンプルのタイム スタンプを使って、ドロップ フレームを計算する。各ドロップ フレームについて 0 長のインデックス エントリを記述する。
ストリーム時間幅
AVI Mux フィルタの IMediaSeeking::GetDuration 実装内で、フィルタは各アップストリーム ソース フィルタの IMediaSeeking インターフェイスをクエリし、最長ストリームの時間幅を返す。アップストリーム フィルタが IMediaSeeking への Mux の QueryInterface 呼び出しまたは IMediaSeeking::GetDuration に失敗した場合、AVI Mux はエラー コードをアプリケーションに返すが、最長時間幅が見つかった場合は出力パラメータ pDuration に挿入する。この場合、pDuration の値は最長入力ストリームの長さとは限らない。
AVI 2.0 ファイル フォーマット拡張
現在 DirectShow は、以下の AVI 2.0 ファイル フォーマット拡張をサポートしている。
- 大きな AVI ファイル サイズ (1 GB 以上)
- 階層的なインデックス
詳細については、『OpenDML AVI File Format Extensions』(OpenDML AVI M-JPEG File Format Subcommittee 編、1996 年 2 月 28 日) のバージョン 1.02 を参照すること。