2007年12月30日日曜日

AviSynthの基本的なスクリプト例

スクリプト例で使っている用語の説明

  • clip・・・DireceShowSource()等により取得した動画(または映像や音声)。
  • path・・・動画等のファイルパス。絶対パスでも相対パスでも可。ダブルクォートで囲う。バックスラッシュの変わりにスラッシュは使えない。
    (例:"C:videovideo1.mpg")


スクリプトの基本事項
  • その時点で最後に取得したclipはlastという変数に入っている。
  • returnを省略すると、最後に取得したclipが再生される。FFmpegに渡す場合等は下記のようにreturnが必要?
    return last
  • 関数の引数は必須のもの以外は省略が可能。省略した場合はデフォルト値が使われる。clipを省略するとたいていの場合はlastが使われる。引数を渡す時には下記のように引数名を指定できる。これにより、途中の引数を省略しつつ後ろの引数を渡すことが出来る。
    # 引数名がwidthの場合の例
    fnc(width = 320)


動画や音声をファイルから取得する DirectShowSource()
DirectShowSource(path)
Windows Media Playerが再生できる動画や音声なら、これで取得できる。
AviSource()は手持ちの動画では使えなかった。


動画を結合する + or ++ or Dissolve()
clip + clip
または
clip ++ clip
または
Dissolve(clip, clip, 30)
+でも++でも結合できるが、+は元々同じ動画(長い動画をいくつかに分割した場合等)を結合する場合、++はそれ以外の動画を結合する場合に使うらしい。
+と++はそれぞれAlignedSpliceとUnalignedSpliceと同じ役割を果たす。
Dissolve()の場合、1つ目の動画の最後と2つ目の動画の最初がオーバーラップする。オーバーラップする時間は第3引数で指定するフレーム数によって決まる。


動画を時間軸で部分的に抜き出す Trim()
Trim(clip, 0, 300)
数字は開始フレームと終了フレーム。30fps(1秒間に30コマ)の場合、上記だと0秒目から10秒目までとなる。


動画を表示部位で部分的に抜き出す Crop()
Crop(clip, 170, 10, -170, -10)
または
Crop(clip, 170, 10, 300, 300)
上記の1つ目の例では左、上、右、下のトリミングするピクセル数を指定している。
2つ目の例では、左、上のトリミングするピクセル数と、出力の幅、高さを指定している。


動画に音声を合成する AudioDub()
AudioDub(clip_video, clip_audio)
動画の元々の音声は無くなる。
動画より音声の方が長い場合も動画の長さは変わらない。


2つの音声を混ぜる MixAudio()
bgm = ResampleAudio(clip_bgm, 48000) # サンプリングレートを合わせる
audio = MixAudio(clip_video, bgm, 0.7)
AudioDub(video, audio)
上記のスクリプトでは、混ぜ合わせた音声をさらに動画に合成している → 動画の元々の音声に、BGMが加わっている。
動画の音声のサンプリングレートが48KHzだったので、BGMもそれに合わせたサンプリングレートに変換している。
MixAudio()の第3引数は第1引数のclipの音声の割合。上記の場合は第1引数のclipが70%、第2引数のclipが30%になり、BGMは小さめな音になる。
割合を指定しないと同じ割合(0.5ずつ)になる。


動画にテロップを入れる Subtitle()
Subtitle(clip, "テキスト", font = "MS Pゴシック", size = 30, text_color = $FFFFFF, align = 1)
日本語のテキストの場合はfont指定が必要。
表示場所を決めるalignの数字はテンキーの配置と同じ。


フェイドアウト Fadeout2()
Fadeout2(clip, 30)
数字はフェイドアウト時間のフレーム数。Fadeout2()の他にFadeout()とFadeout0()があるが、Fadeout2を使っておけば問題無い?


動画を90度回転する TurnLeft() or TurnRight()
TurnLeft(clip)
または
TurnRight(clip)
携帯電話で向きを間違えて録画してしまった場合などに役立ちそう。
回転すると縦横比がおかしくなる(横長になる)気がする。


動画を逆から再生する Reverse()
Reverse(clip)
動画の逆回転。
試してみたが見られるレベルでは無かった。無圧縮のAVIなら上手く逆回転させられるのかもしれない。

0 件のコメント:

ブログ アーカイブ

tags