AviSynth のバックアップ差分(No.4)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#contents

*AviSynthとは? [#l7d999bb]
AviSynthのオリジナル開発者Ben Rudiak-Gould氏は、自身のホームページ((2004年6月現在、Ben Rudiak-Gould氏のホームページは存在しません。[[Donald Graft氏のサイト:http://neuron2.net/]]でミラーされています。))で、AviSynthについて次のように説明しています。

>Avisynthはスクリプト言語の一種であり、簡単なノンリニア編集のためのフィルタの集合体である。Avisynthは出力ファイルを生成しないという点においてユニークである。その代わりに、Avisynthスクリプト(AVSという拡張子を持つ)は、AVIファイルを読み込むことができるアプリケーションで直接開くことができる。AVSファイルが開かれた時、Avisynthは、スクリプトによって映像や音声のデータを生成し、それをアプリケーションにフィードしながら、バックグラウンドで動作する。~
>Avisynthは、スクリプト言語の一種であり、簡単なノンリニア編集のためのフィルタの集合体である。Avisynthは、出力ファイルを生成しないという点においてユニークである。その代わりに、Avisynthスクリプト(AVSという拡張子を持つ)は、AVIファイルを読み込むことができるアプリケーションで直接開くことができる。AVSファイルが開かれた時、Avisynthは、スクリプトによって映像や音声のデータを生成し、それをアプリケーションにフィードしながら、バックグラウンドで動作する。~
~
(Avisynth is a scripting language and a collection of filters for simple non-linear editing tasks. Avisynth is unusual in that it does not generate output files. Instead, Avisynth scripts, which have the extension .AVS, can be opened directly in applications which read AVI files. When an AVS file is opened, Avisynth runs in the background, generating video and audio data according to the script and feeding it to the application as needed.)~

この4つのセンテンスからなる文章には、AviSynthを理解する上で重要な、たくさんの情報が凝縮されています。
この4つのセンテンスからなる文章には、AviSynthを理解する上での重要な情報が含まれています。

 AviSynthはスクリプト言語である。
**Avisynthは、スクリプト言語の一種であり、簡単なノンリニア編集のためのフィルタの集合体である。 [#w4df7c82]
>Avisynthは、スクリプト言語の一種であり、簡単なノンリニア編集のためのフィルタの集合体である。

AviSynthは、JavaScriptやVBScriptなどと同じ、スクリプト言語です。
AviSynthは、[[JavaScript:http://yougo.ascii24.com/gh/14/001452.html]]や[[VBScript:http://yougo.ascii24.com/gh/31/003135.html]]などと同様の[[スクリプト言語:http://yougo.ascii24.com/gh/17/001765.html]]で、おもに動画編集を目的として使用されます。

例えば、hoge.aviを開く場合、次のような手順を取ることになります。
AviSynthでは、メモ帳などのエディタにスクリプトを記述することによって、ソースを読み込んだり、フィルタをかけたりします。そのため、ほかの動画編集用のアプリケーションに比べると、扱いにくいかもしれません。

まずメモ帳にhoge.aviを開く命令(スクリプト)を記述します。
ただし、AviSynthスクリプトは、[[JavaScript:http://yougo.ascii24.com/gh/14/001452.html]]や[[VBScript:http://yougo.ascii24.com/gh/31/003135.html]]と比べてみても、比較的簡単な部類に入ると言っていいと思います。

>AviSource("path\hoge.avi")((pathには、hoge.aviがあるディレクトリまでのパスを指定します。また、return文(この場合、return last)がないと表示されない可能性があります。))
また、AviSynthには、たくさんの[[内蔵フィルタ]]が含まれており、映像や音声に対し、さまざまなフィルタをかけることができます。また、[[外部プラグイン]]が利用することで、さらに多くのフィルタを追加することも可能です。

AviSourceは、AVIファイルを開くためのフィルタです((詳しい使用方法は、AviSynth付属の添付のマニュアルを参照))。
**Avisynthは、出力ファイルを生成しないという点においてユニークである。 [#kffa352c]

 AviSynthスクリプトの拡張子はAVSである。
>Avisynthは、出力ファイルを生成しないという点においてユニークである。

次に、このスクリプトに適当な名前を付けて保存します。このとき、拡張子はAVSにします。
AviSynth自身はエンコーダではないため、単独で何らかのファイルを出力することはできません。必ず、ほかのアプリケーションやコーデックと連携させて使用します。

 AVIファイルを読み込むことができるアプリケーションで直接開くことができる。
**Avisynthスクリプトは、AVIファイルを読み込むことができるアプリケーションで直接開くことができる。 [#a91b9a86]

そして、このAVSファイルを、他の動画編集用アプリケーションなどで開きます((AviUtlなど、デフォルトの状態では開けないアプリケーションもあります。))。
>その代わりに、Avisynthスクリプト(AVSという拡張子を持つ)は、AVIファイルを読み込むことができるアプリケーションで直接開くことができる。

#ref(avisource.png)
AviSynthスクリプトファイル(以下、AVSファイル)の拡張子は、*.avsです。

すると、このようにhoge,aviの画像が表示されます。
AVSファイルは、「AVIファイルを読み込むことができる」多くの(すべてのではない)「アプリケーションで直接開くことができ」ます。また、ffdshowに付属している[[makeAVIS]].exeを利用すれば、AVSファイルに対応していないアプリケーションでも、(疑似AVI化した)AVSファイルを開くことができるようになります。

 出力ファイルを生成しない。
**Avisynthは、映像や音声をアプリケーションにフィードしながら、バックグラウンドで動作する。 [#d82fdf41]

ただし、AviSynth自身はエンコーダではないため、単独で何らかのファイルを出力することはできません。~
必ず、何らかのアプリケーションやコーデックと連携させて使用します。
>AVSファイルが開かれた時、Avisynthは、スクリプトによって映像や音声のデータを生成し、それをアプリケーションにフィードしながら、バックグラウンドで動作する。

 スクリプトによって映像や音声のデータを生成し、それをアプリケーションにフィードする。
AviSynthは、フレームサーバーと呼ばれる種類のソフトウェアでもあります。

つまり、AviSynthは、映像や音声とアプリケーションとの「橋渡し役」(フレームサーバー)として機能するのです。
映像や音声とアプリケーションとの間の「橋渡し役」として、バックグラウンドで動作します。そのアプリケーションが対応していない形式の動画ファイルであっても、AviSynthを経由させることで、開くことができるようになります。

 バックグラウンドで動作する。
アプリケーションにとっては、あたかもAviSynthなど存在せず、ごく普通のAVIファイルを開いているかのように解釈されます。また、ユーザーにとっても、AVSファイルをアプリケーションで開いたときに、何らかのエラーでも発生しない限り、その存在に気づくことはないかもしれません。

そして、フレームサーバーとしてのAviSynthは、あくまでも「裏方」に徹します。~
アプリケーションにとっては、あたかもAviSynth自身は存在せず、ごく普通のAVIファイルを開いているかのように解釈されます。
#hr
[[AviSynth.org FAQ]]の[[[Section1 About AviSynth]>Section1 About AviSynth#k960e9aa]]にも、AviSynthに関する明解な説明があります。また、フレームサーバーとしてのAviSynthについては、[[[Section2 AviSynth and frameserving]]]を参考にしてください。

 ノンリニア編集のためのフィルタの集合体である。

また、AviSynthには、トリミングや色調補正などの様々なフィルタが内蔵されており、これらのフィルタを利用することができます。~
外部プラグインを利用することで、さらに多くのフィルタを追加することも可能です。

例えば、hoge.aviをモノクロに変換したい場合、先程のスクリプトに続けて、ビデオをモノクロに変換するフィルタの命令を記述します。

>AviSource("path\hoge.avi")~
>GreyScale()

GreyScaleは、ビデオをモノクロ(グレースケール)化するフィルタです。

#ref(greyscale.png);

これをアプリケーションで開くと、このような画像が表示されます。

後は、アプリケーション(エンコーダ)で出力設定を行ってから、実際にエンコードすれば、モノクロ化されたhoge.aviを得ることができます。

[[AviSynth.org FAQ]]:[[Section1 About AviSynth>Section1 About AviSynth#k960e9aa]]にも、AviSynthに関する明解な説明があります。そちらも参考にしてください。