Microsoft DirectX 8.0 |
ここには、以下のトピックが含まれる。
次の図は、Microsoft® DirectShow® 編集サービス (DES) のアーキテクチャを示している。
DirectShow は、フィルタと呼ばれるモジュラー コンポーネントを通してマルチメディア データのストリームを制御する。フィルタは、メディア ストリームを入力とし、それに対して何らかの処理を行い、結果を出力として渡すコンポーネントである。フィルタは、複数のストリームを結合すること、および 1 つのストリームを複数の出力ストリームへ分割することもできる。フィルタ グラフは、チェイニングされたフィルタのコレクションである。ソース フィルタは、ソース ファイルからメディア データを取り込み、それをフィルタ グラフに導入する。レンダリング フィルタは、ストリームを、ビデオやオーディオなどの最終出力のタイプとしてレンダリングする。メディア ストリームは、ソース フィルタから、通常は他のフィルタを経由してレンダリング フィルタに流れる。
DES におけるタイムラインは、ビデオ編集プロジェクトの抽象表現である。これは、プロジェクトで使用されるソース クリップ、その開始タイムと終了タイム、エフェクトとトランジションの配置などを指定する。ただし、タイムライン自体は、表現されるビデオおよびオーディオをレンダリングすることはできない。それは、レンダリング エンジンの機能である。レンダリング エンジンは、タイムラインをフィルタ グラフに変換する。フィルタ グラフを実行すると、プロジェクトがプレビューとして画面に直接レンダリングされるか、ファイルへの出力としてレンダリングされる。アプリケーションでは、扱いにくくエラーの出やすいフィルタ グラフを直接操作するのではなく、タイムラインを操作する。
下の表は、一般的なビデオ編集アプリケーションで行われる主要なタスクと、各タスクをサポートする DES インターフェイスの一覧である。以降のセクションで、これらのタスクとインターフェイスについて詳しく説明する。
タスク | インターフェイス |
---|---|
タイムラインの構築または変更 | IAMTimeline および他の IAMTimelineXXXX インターフェイス |
プロジェクト ファイルの保存とロード | IXml2Dex |
プロジェクトのプレビューまたはファイルへの書き込み | IRenderEngine、ISmartRenderEngine |
この主要タスクのほかに、アプリケーションでは以下の 2 次的なタスクのいくつかまたは全部を行う場合がある。
タスク | インターフェイス |
---|---|
メディア ファイルに関する情報の取得 (ストリームの数、各ストリームのフォーマットと時間幅) | IMediaDet |
トランジションとエフェクトのプロパティの設定 | IPropertySetter |
レンダリング中にエラーが発生した場合の通知の受信 | IAMSetErrorLog、IAMErrorLog |
ポスター フレームの抽出 | IMediaDet、ISampleGrabber |