カットリストのタイムラインへの変換

ここでは、既存のカットリスト アプリケーションを Microsoft® DirectShow® 編集サービス (DES) に変換する方法について説明する。

カットリストは、DirectShow の以前のバージョンの機能であり、非線形編集のために制限付きサポートを提供した。現在の Microsoft® DirectX® では、カットリストはサポートされていない。DES への機能単位の変換は、簡単に実装できる。これには、少なくとも次のような利点がある。

  • 異種ソースのサポート
  • 圧縮ソースのサポート
  • フレーム レートの自動変換
  • ビデオをフレーム全体に伸長したり、レターボックスを作成するサポート
  • スロー モーションおよび高速モーションのオーディオとビデオのサポート
  • オーディオ ギャップ (無音) のより良いサポート

カットリストから移行すると、プロジェクトの永続性、複数のトラック、エフェクト、トランジション、ポスター フレームのコンポジションなどの機能を追加できる。

標準的なカットリスト アプリケーションは、次のような手順を実行する。

  1. ビデオ ストリームおよびオーディオ ストリーム用に異なるカットリスト (IStandardCutList) を作成する。
  2. 各ソース ファイル用に、ビデオ ファイル クリップ、オーディオ ファイル クリップ、またはその両方 (IFileClip) を作成する。
  3. 各ファイル クリップから、1 つまたは複数のカット (IAMCutListElement) を作成し、カットリストに追加する。
  4. カットリスト グラフ ビルダ (ICutListGraphBuilder) を作成する。
  5. 各カットリストをカットリスト グラフ ビルダに追加する。
  6. オプションで、出力ファイル名を設定する。
  7. グラフをレンダリングし、再生する。

次に示すのは、DES での同様の手順である。

  1. タイムライン (IAMTimeline) を作成する。
  2. 最終的なプロダクションで、各ビデオ ストリームおよびオーディオ ストリーム用に 1 つのグループ (IAMTimelineGroup) を作成する。
  3. 1 つまたは複数のトラック (IAMTimelineTrack) を各グループに追加する。
  4. ソース オブジェクト (IAMTimelineSrc) を作成し、トラックに追加する。
  5. レンダリング エンジン (IRenderEngine) を作成する。
  6. レンダリング エンジンにタイムラインを追加する。
  7. グラフをレンダリングし、再生する。

次に示すのは、その主な違いである。

ファイル クリップ : DES では、ファイル クリップに相当するオブジェクトはない。ソース オブジェクトは、おおよそカットに相当する。カットでは、複数のソース オブジェクトが同じソース ファイルを参照できる。

メディア タイプ : カットリストでは、オーディオ用とビデオ用に 2 つの明確なファイル クリップ オブジェクトがあり、それぞれに独自のクラス識別子がある。DES では、グループのメディア タイプによってソース オブジェクトのメディア タイプが決定される。

ファイル出力 : DES には、ICutListGraphBuilder::SetOutputFileName メソッドに直接相当するものがない。DES ではファイル出力がいくらか複雑になっているが、フォーマットと圧縮タイプについては、格段に制御が向上している。詳細については、「ファイルへのプロジェクトの書き込み」を参照すること。

プロジェクトの変更 : カットリストでは、新しいカットを追加できるが、カットの変更や削除はできない。DES では、ソース オブジェクトの追加、削除、再配置、または変更ができる。詳細については、「ビデオ編集プロジェクトの管理」を参照すること。