Microsoft DirectX 8.0 |
タイムラインは、Microsof® DirectShow® 編集サービス (DES) がビデオ編集プロジェクトを表現するために使用するオブジェクトである。ここでは、タイムラインの概念について説明し、タイムラインが持っている各種オブジェクトについて解説している。
ここには以下のセクションが含まれる。
ビデオ制作は、ビデオ クリップ、サウンド ファイル、スティル イメージなどの未加工のソース ファイルのコレクションから開始される。制作者やビデオ編集者は、1 つのクリップから 10 秒、別のクリップから 5 秒、さらに別のクリップから 30 秒といったように、ファイルの一部分を取り出す。次に、特定のシーケンスでそれらを配置する。
最も単純な場合、クリップは厳密に線形の順序で表示され、各クリップの後に次のクリップが続く。この基礎的な配置は、トラックとなる。したがって、単純な制作では、1 つのビデオ トラックとオーディオ トラックだけが含まれる。より複雑な制作では、いくつかのオーディオ トラックがミキシングされるなど、複数のトラックが使用される。また、トラックにはオーディオ効果が含まれ、1 つのトラックがフェード アウトするときに、別のトラックがフェード インする。ビデオの場合は、1 つのトラックはフェードやワイプを使って次のトラックにトランジションする。これが、合成の例である。ほかの例には、1 つのトラックの背景がキー アウトされ、別のトラックによって置き換わるクロマ キー処理がある。クロマ キー処理の例には、衛星写真の前面に配置された天気予報のキャスターがある。
このように、ビデオ制作には時間 (あるクリップに別のクリップが続く) と、レイヤ (あるクリップが別のクリップに重なる) で配置されたソース クリップが含まれる。DES では、ツリー構造を使ってこの配置を示す。
タイムラインには、少なくとも 1 つのグループが含まれていなければならない。各グループは、最終プロダクションにおける単位のストリームを表す。代表的なプロダクションには、ビデオ グループとオーディオ グループが 1 つずつ含まれる。合成はオプションであり、必要な場合にさらに構造を提供するものである。
次の図は、タイムラインの構造を示している。この図は、ツリー内の親子関係を示しているが、時間シーケンスを表しているわけではない。
前のセクションのツリー図では、重なり合うトラックと合成がどのようにレンダリングされるかは示されていない。その目的では、タイムラインを、ノード構造ではなく時間シーケンスとしてとらえるのがよい。次の図は、2 つのビデオ トラックと 2 つのオーディオ トラックが含まれる単純なプロジェクトを示している。先頭の矢印は、ゼロから始まるタイムラインの方向を表している。
まず最初に、ビデオ グループについて考える。トラック 1 は、トラック 0 より優先順位が高い。トラック 1 にビデオ ソースが入っている場合、そのソースはトラック 0 の内容を隠蔽する。トラック 1 が空の場合は、トラック 0 が "透けて" 見える。このビデオがレンダリングされると、ソース A から始まる。そしてソース C に切り替わるが、ソース A の最後の部分とソース B の最初の部分は見えない。最後にソース C が終わるときに、ソース B に切り替わる (B はすでに進行中である)。
オーディオ グループはこれとは異なる動作をする。すべてのトラックが単純にミキシングされる。オーディオはソース D から始まり、ソース D とソース E のミックスに切り替わり、ソース D だけになって終了する。
トランジションは、フェードやワイプなどのビジュアル エフェクトを使って、ビデオ トラックを別のビデオ トラックにすきまなく繋げる方法である。前の例では、ビデオは即座に切り替わる。こんどは、同じビデオ グループにトランジションを追加して考えてみる。
トランジションは、トラック 1 に存在する。これは、そのトラック (トラック 1) とその上のレイヤ (トラック 0) との間のトランジションを表す。トランジションの開始時には、レンダリングされた出力はすべてトラック 0 (ソース A) からのものである。終了時には、出力はすべてトラック 1 (ソース C) からのものとなる。その間では、出力はソース A からソース C へ変換する。たとえばフェードトランジションでは、1 つのソースがしだいに別のソースへとフェードする。
レンダリングされた出力は、図の一番下に図式化されている。トランジション リージョンの中では、ビデオ イメージはソース A からソース C へ変換する。ソース C からソース B へが直接切り替えとなるのは、トラックのその位置にトランジションが含まれていないためである。
トランジションには、特定の方向があることに注意すること。トランジションの開始時には、ビデオ出力はほとんどがソース A からのものである。トランジションの中間では、ビデオは 2 つのソースが混ざったものとなる。終了時には、出力はほとんどがソース B からのものとなる。デフォルトでは、トランジションは図に示したように、優先順位の低いトラックから優先順位の高いトラックへと進行する。しかし、逆の動作を指定することもできる。次の図は、その状況を示す例である。トラック 0 からトラック 1 にフェードし、トラック 1 からトラック 0 にフェードして戻る。どちらのトランジションもトラック 1 に存在する。
各ビデオ トラックは、それぞれ固有のレイヤを占めるものと考えることができる。トラックのコレクションでは、最初のトラックの優先順位が最も低く (優先順位 0)、以降のトラックは優先順位が 1 レベルずつ高くなる。各レイヤでは、レイヤ内のソース クリップは、そのレイヤにトランジションが含まれていなければ、下のレイヤ内のソース クリップを隠蔽する。したがって、DES はレンダリングを行うときにいくつかのパスを作成すると考えることができる。
まず、トラック 0 をレンダリングする。トラック 0 の "下" には何もないので、空のリージョンは黒一色のイメージとしてレンダリングされる。このレイヤ内のトランジションは、黒イメージとトラック 0 の間で行われる (たとえば、ビデオ クリップが黒からフェードする)。DES は、トラック 0 の上にトラック 1 を配置し、2 つのトラックの間にトランジションを生成する。その結果は、2 つのトラックの合成となる。次に、この合成の上にトラック 2 を配置する。このレイヤ上のトランジションは、この合成とトラック 2 の間で行われる。このプロセスが、最後のトラック (最高の優先順位) が配置されるまで続けられる。
複数のトラックが合成されると、それは単一のトラックのように動作する (これは仮想トラックと呼ばれる)。DES では、合成 オブジェクトがこの動作をカプセル化している。複数のトラックを合成に挿入でき、その合成を別の合成に挿入できる (挿入される側の合成に、他のトラックまたは他の合成が含まれていてもかまわない)。このとき、最初の合成は大きい合成の中で単一のレイヤとして機能する。
このモデルでは、複雑な構成が可能である。たとえば、あるビデオ クリップが 2 番目のクリップにワイプし、同時にその合成 (その 2 つのクリップおよびワイプ) が 3 番目のクリップにフェードするといったことが可能となる。
トランジションと異なり、エフェクトは単一のレイヤに適用される。ビデオ エフェクトには、ビデオ イメージのブラー、カラー ビデオのモノクロへの変換、一定の軸に沿ったイメージの回転などがある。オーディオ エフェクトには、リバーブやエコーなどがある。エフェクトは、個別のソース、トラック、または合成全体に適用できる。