カットリストのタイムラインへの変換
ここでは、既存のカットリスト アプリケーションを Microsoft® DirectShow® 編集サービス (DES) に変換する方法について説明する。
カットリストは、DirectShow の以前のバージョンの機能であり、非線形編集のために制限付きサポートを提供した。現在の Microsoft® DirectX® では、カットリストはサポートされていない。DES への機能単位の変換は、簡単に実装できる。これには、少なくとも次のような利点がある。
- 異種ソースのサポート
- 圧縮ソースのサポート
- フレーム レートの自動変換
- ビデオをフレーム全体に伸長したり、レターボックスを作成するサポート
- スロー モーションおよび高速モーションのオーディオとビデオのサポート
- オーディオ ギャップ (無音) のより良いサポート
カットリストから移行すると、プロジェクトの永続性、複数のトラック、エフェクト、トランジション、ポスター フレームのコンポジションなどの機能を追加できる。
標準的なカットリスト アプリケーションは、次のような手順を実行する。
- ビデオ ストリームおよびオーディオ ストリーム用に異なるカットリスト (IStandardCutList) を作成する。
- 各ソース ファイル用に、ビデオ ファイル クリップ、オーディオ ファイル クリップ、またはその両方 (IFileClip) を作成する。
- 各ファイル クリップから、1 つまたは複数のカット (IAMCutListElement) を作成し、カットリストに追加する。
- カットリスト グラフ ビルダ (ICutListGraphBuilder) を作成する。
- 各カットリストをカットリスト グラフ ビルダに追加する。
- オプションで、出力ファイル名を設定する。
- グラフをレンダリングし、再生する。
次に示すのは、DES での同様の手順である。
- タイムライン (IAMTimeline) を作成する。
- 最終的なプロダクションで、各ビデオ ストリームおよびオーディオ ストリーム用に 1 つのグループ (IAMTimelineGroup) を作成する。
- 1 つまたは複数のトラック (IAMTimelineTrack) を各グループに追加する。
- ソース オブジェクト (IAMTimelineSrc) を作成し、トラックに追加する。
- レンダリング エンジン (IRenderEngine) を作成する。
- レンダリング エンジンにタイムラインを追加する。
- グラフをレンダリングし、再生する。
次に示すのは、その主な違いである。
ファイル クリップ : DES では、ファイル クリップに相当するオブジェクトはない。ソース オブジェクトは、おおよそカットに相当する。カットでは、複数のソース オブジェクトが同じソース ファイルを参照できる。
メディア タイプ : カットリストでは、オーディオ用とビデオ用に 2 つの明確なファイル クリップ オブジェクトがあり、それぞれに独自のクラス識別子がある。DES では、グループのメディア タイプによってソース オブジェクトのメディア タイプが決定される。
ファイル出力 : DES には、ICutListGraphBuilder::SetOutputFileName メソッドに直接相当するものがない。DES ではファイル出力がいくらか複雑になっているが、フォーマットと圧縮タイプについては、格段に制御が向上している。詳細については、「ファイルへのプロジェクトの書き込み」を参照すること。
プロジェクトの変更 : カットリストでは、新しいカットを追加できるが、カットの変更や削除はできない。DES では、ソース オブジェクトの追加、削除、再配置、または変更ができる。詳細については、「ビデオ編集プロジェクトの管理」を参照すること。