AviSynthのぺーじ/AviSynthについて

これは、かつて「にーやんのAviSynthのぺーじ」として公開されていたものを転載したものです。内容は古く、間違いも含まれている可能性があります。より正確で新しい情報を知りたい場合は、AviSynth 付属のヘルプや AviSynth 公式サイトを参考にすることをおすすめします。AviSynth WikiAviSynth入門なども活用してください。

AviSynthとは…

AviSynthはスクリプト言語の一種であり、ノンリニア編集のためのフィルタの集合体である。
Avisynth is a scripting language and a collection of filters for simple non-linear editing tasks

http://neuron2.net/www.math.berkeley.edu/benrg/avisynth.html

この(フレームサーバの)機能を持った代表的なビデオ編集ソフトとして、Avisynth(中略)が知られています。
※「フレームサーバ(frameserver)」は、あるソフトで開いたビデオソース(AVIなど)を、別のソフトにリアルタイムで渡すことのできる連携機能のことです。

http://www.novac.co.jp/products/software/ns-ct260/ns-ct260/info-1.html

 1つ目の文章はAviSynthのオリジナル開発者であるBen Rudiak-Gould氏のサイトから、2つ目の文章はCCE-Basicの販売元であるNOVACのサイトから、それぞれ抜粋したものです。

 これらを元にして簡単にまとめると次のようになります。

AviSynthとは…

  1. メモ帳などのエディタにスクリプトを記述することによって、
  2. AVIなどの動画ファイルにフィルタをかけたり、
  3. 動画編集ソフトに橋渡ししたりすることができる

ソフトウェアである。

 (2)(3)については他の動画編集ソフトにもあてはまるものがありますので、比較的理解しやすいと思います。しかし(1)の「スクリプトを記述する」というのは少しイメージしづらいかもしれません。

 じつはAviSynth自身はGUI(グラフィカル・ユーザー・インターフェイス)を持たず、コマンドラインにも対応していない(実行ファイル(*.exe)ではない)ため、単体でエンコードすることはできません。そのため、AviSynthを使って動画を作成するには、まずスクリプトを記述し、そのスクリプトファイル(*.avs)をAviSynthに対応している動画編集ソフト(エンコーダ)に読み込ませてエンコードすることになります*1)。ここがAviSynthが他の動画編集ソフトと大きく異なる点である言えると思います。

 では、GUIを持たないAviSynthを使って、どのようにしてフィルタをかけたり、動画編集ソフトに橋渡したりすることができるのでしょうか?

AviSynthはスクリプト記述型

 ここでスクリプトの記述に関して、具体的な一例をあげて説明したいと思います。

 AviSynth初心者の人にとっては何のことかさっぱりわからないかもしれませんが、ここではスクリプトを記述するというのがどういうことかをイメージしてもらうための例として紹介することにします。具体的なAviSynthの使用方法については「AviSynthチュートリアル」に詳しく書いていますので、そちらを参考にしてください。

AviSource("C:\AVI\Capture.avi") #…(1)
Crop(8,0,-8,0) #…(2)
LanczosResize(640,480) #…(3)
return last #…(4)

 この4行をメモ帳に記述し、拡張子「.avs」のファイルとして適当な名前を付けて保存します。 これがAviSynthのスクリプトファイル(AVSファイル)です。

 この場合、?でCドライブのAVIフォルダにあるCapture.aviという動画ファイルを読み込み、?で左右8pixelずつクロップし(削り)、?で640x480の解像度にリサイズ(サイズ変更)しています(?は最後に処理したクリップに返すという意味です)。

 このAVSファイルをVirtualDubなどのAviSynthに対応している動画編集ソフト(エンコーダ)で開いてエンコードすれば、640x480にリサイズした動画を作成することができます(Capture.aviが640x480以外の場合)。

 AviSynthを使った動画作成の基本的な流れはこのような感じになります。たとえスクリプトの内容はわからなくても、AviSynthがどのようなものであるか、ある程度イメージすることができたと思います。そして、もしかすると、AviUtlなどの編集ソフトに比べて難しいという印象を持たれたかもしれません。

 では、他のソフトではなく、AviSynthを使うメリットとはいったい何なのでしょうか?

AviSynthを使うメリット

 AviSynthを使う一番のメリットは、他のソフトを使う場合に比べて高速に処理できることです。

 なぜAviSynthでの処理が速いのかと言うと、AviSynthではYUY2やYV12*2のまま処理を行うことができ(YV12はAviSynth2.5以降のみ)、VirtualDub(Mod)の[Fast Recompress]を用いれば、そのままコーデックに渡すこともできるからです。たとえば、AviUtlは精度を高めるために内部でYUV4:4:4*3に変換して処理していていますが、AviSynthではこの変換処理がない分速くなります。また、VirtualDub(Mod)の[fast recompress]モードを利用すれば、YUV->RGB変換時のロスからも解放されます。

 ですから、映画など長時間ソースのエンコードには、AviSynthが最適と言えるでしょう。

 ただし、GUIをもたない、スクリプトを記述しなければならないなど、AviSynthが他の動画編集ソフトに比べて取っつきにくい印象があるのはぬぐえません。

 当サイトでは、少しでもAviSynthが理解しやすくなるように、チュートリアルなどを通して解説していきたいと思います。

最終更新日 2003年9月7日


*1 Reena!やdougaαなどのAviSynth補助ツールを使えば、直接スクリプトを記述する必要はありません。
*2 YUY2やYV12など色空間(カラーフォーマット)については、「もりのみやこ」のぺえじさんの「カラーフォーマットのナゾ」や川嶋 宏彰さんの「YUVフォーマット及び YUV<->RGB変換」のページなどを参考にしてください。
*3 AviUtl内部処理フォーマット YUV 48bit (4:4:4 YUV, 各色 16 bit, 有効範囲 12 bit, マージン 4 bit) (2ちゃんねるDTV板「YC伸張する?しない?総合スレッド」より抜粋。)

最終更新日時: 2014-03-12 (水) 23:36:22 (3691d)