Avisynthの使い方

「Avisynthの使い方」の編集履歴(バックアップ)一覧に戻る

Avisynthの使い方 - (2010/12/13 (月) 17:45:51) のソース

***Avisynthスクリプトファイルの作り方
フォルダで右クリックをして[新規作成]→[テキスト ドキュメント]からテキストファイルを作成
拡張子を[.avs]に変更
この[xxx.avs]ファイルをメモ帳やテキストエディタで開きスクリプトを記述していく

***プラグインの追加の仕方
使いたいプラグインが必要とするdllやhlslをAvisynthのインストールフォルダの[plugins]フォルダに入れる

***Avisynthスクリプトの記述の仕方
基本的に
フィルタ名(パラメーター)
という風に記述します

avsファイルの一例
*avsここから
#タイトル

#読み込み
MPEG2Source("作成したd2vファイル.d2v")

#カット
Trim(5684,8367) #OP

#インターレース解除
mt("""TIVTC24P2()""",4,3)

#ロゴ透過
EraseLOGO("D:\Encode\Logo\lgdファイルr.lgd",logoname="logo名",start=0,fadein=0,fadeout=0,end=-1,interlaced=true)

#クロップ&リサイズ
LanczosResize(1440,1080,4,2,-4,-10,2)

#ノイズ除去
GPU_Begin()
GPU_2DCleanFake(16)
GPU_Convolution3D(preset="animeHQ")
GPU_End()
FFT3DGPU(sigma=2,beta=1,plane=0,bw=32,bh=32,ow=16,oh=16,bt=3,mode=2,sharpen=0, interlaced=false,NVPerf=false,wintype=0,precision=0)
FFT3DGPU(sigma=2,beta=1,plane=1,bw=32,bh=32,ow=16,oh=16,bt=3,mode=2,sharpen=0, interlaced=false,NVPerf=false,wintype=0,precision=0)

#シャープ化
mt("""WarpSharp(128,2,80,-0.6)""",4,2)

return last

function TIVTC24P2(clip clip){
Interp = clip.AssumeTFF().SeparateFields().SelectEven().EEDI2(field=1)
Deinted=clip.TDeint(order=1,field=1,edeint=Interp)
clip = clip.TFM(mode=6,order=1,PP=7,slow=2,mChroma=true,clip2=Deinted)
clip = clip.TDecimate(mode=1)
return clip
}
*avsここまで

***各行解説
**#タイトル
タイトル、#より右側はコメントとなり好きなことを書き込んでもスクリプトに影響しない

**MPEG2Source("作成したd2vファイル.d2v")
必要dll:MPEG2Dec3.dll
動画ファイルを読み込むプラグインです
パスはavsからの相対パスまたは絶対パスで指定する

**Trim(5684,8367)
CMカット、Avisynth内臓のフィルタなので追加dllは必要ありません
例ではOPを抜き出しているので上記のようになっていますが
OP+本編+EDなどを切り抜いた場合は
Trim(918,4363)++Trim(6462,24383)++Trim(27082,44972)++Trim(46772,49917)++Trim(50218,51112)
のようになります
カットの仕方は[[CMカット>CMカット]]に

**EraseLOGO("D:\Encode\Logo\lgdファイルr.lgd",logoname="logo名",start=0,fadein=0,fadeout=0,end=-1,interlaced=true)
必要dll:delogo.dll
右上のロゴの透過です
ロゴ透過の仕方は[[ロゴ透過>ロゴ透過]]に
ちょっと調査中

**TIVTC24P2()
必要dll:EEDI2.dll・TDeint.dll・TIVTC.dll
インターレース解除+逆テレシネ
簡単に言うと縞々の除去
詳しく説明すると・・・^^;
return lastの後の
function TIVTC24P2(clip clip){
Interp = clip.AssumeTFF().SeparateFields().SelectEven().EEDI2(field=1)
Deinted=clip.TDeint(order=1,field=1,edeint=Interp)
clip = clip.TFM(mode=6,order=1,PP=7,slow=2,mChroma=true,clip2=Deinted)
clip = clip.TDecimate(mode=1)
return clip
}
がTIVTC24P2の関数

**mt("""   """,4,3)
Multi-Threadedサポート

**LanczosResize(1440,1080,4,2,-4,-10,2)
クロップ&リサイズ、Avisynth内臓のフィルタなので追加dllは必要ありません
パラメーターの意味は
LanczosResize(横のサイズ,縦のサイズ,左クロップ,上クロップ,右クロップ,下クロップ,?)
クロップは2ずつ、かつ左右のクロップはふたつ合わせて4の倍数ずつ

**GPU_Begin()
**GPU_End()
必要dll:_GPU25.dll
_GPU25パッケージのプラグインを使うときはこのBeginとEndの間に記述する
グラフィックが対応していないと使えない
うちの環境↓では使えた
Windows 7 Pro 64bit
DirectX 11
Radeon HD 5850

**GPU_2DCleanFake(16)
必要hlsl:2DCleanFake.hlsl
2DCleanの改造版(?)
()の値を増やせばどんどん強力にノイズを取るが塗りつぶしているだけなのでかけすぎに注意

**GPU_Convolution3D(preset="animeHQ")
必要hlsl:Convolution3D.hlsl
Convolution3DのGPU版プラグイン
アニメ用のプリセットが用意されてある
アニメに関するものは
animeHQ→ハイクオリティなアニメ、薄いフィルタ
animeLQ→ロークオリティなアニメ、ちょっと濃いフィルタ
animeBQ→バッドクオリティなアニメ、濃いフィルタ

**FFT3DGPU(sigma=2,beta=1,plane=0,bw=32,bh=32,ow=16,oh=16,bt=3,mode=2,sharpen=0, interlaced=false,NVPerf=false,wintype=0,precision=0)
**FFT3DGPU(sigma=2,beta=1,plane=1,bw=32,bh=32,ow=16,oh=16,bt=3,mode=2,sharpen=0, interlaced=false,NVPerf=false,wintype=0,precision=0)
必要dll・hlsl:FFT3dGPU.dll・fft3dgpu.hlsl
FFT3dのGPU版プラグイン
modeの値を0にすると動画が緑色になる不具合がある
一回目でplane=0、二回目でplane=1をかけることで速度をほとんど落とさずノイズリダクションもかけることができるらしい
参考:[[FFT3DGPUを二重に使ってみる>http://freesoft.tvbok.com/movie_encode/avisynth/fft3dgpu.html]]

**WarpSharp(depth=128,blur=2,bump=80,cubic=-0.6)
必要dll:warpsharp.dll
シャープネスプラグイン、輪郭をくっきりさせる
depthとbumpの数値を上げてシャープネスの強さを調節するがbumpよりdepthをいじったほうがいいらしい
かけすぎに注意

**return last
スクリプトの終了

***記述の順番
ひとつのフレームに対して上から順にフィルターをかけていくので記述の順番にも気を使う必要がある
たとえば大きな画像に対してノイズフィルターをかけてリサイズするのとリサイズして小さくした画像にノイズフィルターを書けるのではエンコードの時間が大きく変わる