サンプルスクリプト/PsideP

本日のメニュー

今回は、2 本のビデオクリップを左右横並びに表示するビデオクリップを作成します。このような左右 2 分割画面表示のことを PsideP(Picture side Picture)と言います。PsideP は、カーナビでルート表示とテレビを同時に表示させたいときなどに使用されます。このスクリプトは、クリップの比較を行いときにも便利でしょう。

使用するもの

作り方

  1. まず、画面の左側に表示させたいクリップを読み込みます。ここでは例として、サンプル動画(example.avi)を AviSource フィルタを使って読み込みます。わかりやすいように left という名前の変数に代入することにしましょう。
    left = AviSource("example.avi")
    
    この時点では、まだスクリプトを VirtualDub などで開かないでください*1
  2. 次に、画面の右側に表示させたいクリップを読み込みます。今回は、先ほど読み込んだクリップ(left)をグレースケールに変換したクリップを使用することにします。グレースケール変換には、GreyScale フィルタを使用します。
    right = left.GreyScale() # 「right = GreyScale(left)」と同じ
    
    こちらは right という変数に代入しました。この時点でも、まだスクリプトを実行しないでください。
  3. 最後に StackHorizontal を使って left と right を左右に並べたクリップを作成します。StackHorizontal は、2 本以上のクリップを水平方向に並べたクリップを作成するフィルタです(詳しくは、Stack を参照)。
    StackHorizontal(left, right)
    
  4. 完成したスクリプトは、以下のようになりました。
    left = AviSource("example.avi")
    right = left.Greyscale()
    StackHorizontal(left, right)
    
    これを AVS ファイルとして保存し、プレビューしたのが下の図です。
    l.png

ひとくちメモ: StackHorizontal 使用時の注意

上の例では左右のクリップが元々同じものであったため、簡単にスクリプトを作成することができました。しかし実際には、StackHorizontal フィルタを使用する際に注意しなければならないことが、いくつかあります。

  • 2 本のクリップは、画像の高さが同一でなければならない(幅は一緒でなくてもよい)。
    • 異なる高さのクリップを使用したい場合は、どちらか(あるいは両方)をクロップ・リサイズして大きさを調整する必要があります。
  • 2 本のビデオクリップは、その色空間も同じでなければならない。
    • 異なる色空間のクリップを使用したい場合は、どちらか(あるいは両方)の色空間を Convert フィルタを使って同じ色空間に変換しなければなりません。
  • 最終的に出力されるクリップのフレームレートは、1 本目のクリップ(上の例では left)のフレームレートになる。
  • 総フレーム数は、どちらか長い方のビデオクリップのフレーム数になる。
    • 短い方のビデオクリップは、出力されるクリップの最後まで、その最終フレームが繰り返されます。
  • 音声に関しては、1 本目のクリップ(上の例では left)の音声が使用され、サンプリングレートも 1 本目のクリップのサンプリングレートになります。

詳しくは、MultiClipFunctions を参照してください。

関連レシピ


*1 もし開いたとしたら、「The script's return value was not a video clip」というエラーが出るでしょう。

最終更新日時: 2014-03-11 (火) 03:51:05 (3698d)