AvisynthをAviutlで使う(動画読み込み編)

Avisynthスクリプトで動画を読み込むの巻。

 この記事では、Avisynthは既にインストールしたものとします。

 

 

スクリプトファイルの作り方の基本。

基本はテキストファイルを作ってそれをテキストエディタ(例えばメモ帳とか)で編集して拡張子を.avsにするだけ。かんたん。

それかインストール時に指定しているなら「新規作成」→「Avisynthスクリプト」とかの方法もある。ね?簡単でしょ?

 パスのコピー

動画を読み込む場合は、動画のパスが必要になる。

エクスプローラー」で読み込みたい動画ファイルをクリックして、Shiftを押しながら右クリック、「パスのコピー」をクリック。

これでパスをコピーすることができる。

読み込みの基本

基本は

読み込みに使うフィルタ名(ファイルのパス)

と書けばよい。

例えば、directshowsourceで、ファイルのパスが「"D:\video\test.mp4"」な動画を読み込みたい場合は、

directshowsource("D:\video\test.mp4")

と書けばよい。

必ず『"』(ダブルクォーテーション)を残さないとエラーになってしまうので要注意。

ちなみに、フィルタ名は大文字小文字を問わない。*1

めんどくさい人向け

めんどくさいとか思う人。自作スクリプト紹介。

github.com

ダウンロードしたAutoloader.avsiをAvisynthプラグインフォルダに入れればおk。

LoadAll

動画と音声の両方を読み込む。

例)

Loadall("D:\video\test.mp4")

LoadVideo

動画のみを読み込む。

LoadAudio

音声のみを読み込む。音声ファイルもこれで読み込める。

めんどくさくない人向け。

おまたせしました。初期状態で使える入力フィルタと、Avisynth用「L-SMASH Works」で使える入力フィルタを紹介しましょう。

avisource

AVIファイルだけでなく、WAVファイルやAvisynthスクリプト、VDR (VirtualDub frameserver)も読み込めたりするフィルタ。 最初から使える。

directshowsource

Directshowを使って読み込む。AviutlのDirectShow file readerと同じ。最初から使える。

lsmashvideosource

L-SMASHをデミキサー*2libavcodecデコーダーとして動画を読み込む。AviutlのL-SMASH Worksの「Libav+L-SMASH」と同じ。Avisynth用「L-SMASH Works」で使える。

lsmashaudiosource

lsmashvideosourceと同じ仕組みで音声を読み込む。Avisynth用「L-SMASH Works」で使える。

lwlibavvideosource

ibavformatをデミキサーとして、libavcodecデコーダとして動画を読み込む。AviutlのL-SMASH Worksの「LW-Libav」と同じ。Avisynth用「L-SMASH Works」で使える。

lwlibavaudiosource

lwlibavvideosourceと同じ仕組みで音声を読み込む。Avisynth用「L-SMASH Works」で使える。

 

Audiodub

さて、ここで勘の良い方はお気づきかもしれないが、lsmashvideosourceだけでは動画だけを読み込み、lsmashaudiosourceでは音声だけを読み込む。そのため、両方使いたい場合はそれらを結合する必要がある。それを行えるのが、Audiodubである。

これも例を書くのでそれを参考にして、自分でいろいろ変えて使ってほしい。

例1)動画と音声の両方が入っているtest.mp4からL-SMASHで両方取り出す

v=lsmashvideosource("D:\video\test.mp4")

a=lsmashaudiosource("D:\video\test.mp4")

audiodub(v,a)

 例2)動画と音声の両方が入っているtest.mp4からlwlibavで両方取り出す

v=lwlibavvideosource("D:\video\test.mp4")

a=lwlibavaudiosource("D:\video\test.mp4")

audiodub(v,a)

例3)test.aviから動画を、test.m4aから音声を取り出す

v=avisource("D:\video\test.avi")

a=lwlibavaudiosource("D:\video\test.m4a")

audiodub(v,a) 

 例に分かるように、v=(動画フィルタ)、a=(音声フィルタ)と書いてAudiodub(v,a)と書くのが基本。

 

ちょっとしたテクニック集

ここからはちょっとしたテクニックをご紹介。

パスを1度だけ書く

例をみてくれればわかる。

FP="D:\video\test.mp4"

v=lsmashvideosource(FP)

a=lsmashaudiosource(FP)

audiodub(v,a)

 このように、動画用フィルタと音声用フィルタのパスを最初の1行目で指定して後で持ってくるっていう方法。

動画と音声で別な編集を行う

例をみてくれればわかる。

 

lsmashvideosource("D:\video\test.mp4")

###ここに動画だけに適用したいフィルタを書く###

v=last

lsmashaudiosource("D:\video\test.mp4")

###ここに音声だけに適用したいフィルタを書く###

a=last

audiodub(v,a)

動画と音声で別な編集ができる。

たとえば、動画はここから開始して、音声はこの部分から開始して・・・といったことができるようになる。

*1:例えば、「directshowsource」を「DIRECTSHOWSOURCE」と書いてもいいし「DirectShowSource」と書いてもよい。極端な話「DiRecTshOwSoUrce」とかでも問題ない

*2:要はスプリッターと似たようなもの。映像と音声を分けてくれる