返回   ShareGet 社群討論 > ≡ 電腦網路 ≡ > □ -- 影音技術交流 > ☆ 教學精華文章

發表新主題 回覆
 
主題工具 顯示模式
  #1  
舊 2005-04-11, 09:00 AM
冰漾 的頭像
北竿
 
註冊日期: 2004-06-14
來自: 資源回收筒
文章: 6,123
給予: 64 | 感謝 193 | 共 38 篇
積分: 35179 | 給分能力: 109
[轉貼][教學] AviSynth 使用教學

AviSynth 教程(來自精品) 作者: CSR2000

一、簡述

AviSynth是AVI SYNTHesizer的縮寫,意思就是AVI和成器,是一個Frameserver。(Frameserver就是一個把影像檔從一個程式轉換到另外一個程式的過程, 其間沒有暫存檔案或仲介檔產生)

AviSynth是由Ben Rudiak-Gould首創的一種非常有用的工具,能夠提供各種方式來合併和濾鏡處理影像檔。最獨特的就是AviSynth並不是一個孤立的影像處理程式,而是在影像檔和應用程式之間擔任“中間人”的角色。

AviSynth的基本工作原理是這樣的:
首先建立一個包含特定命令的文本,稱之為“腳本”(尾碼為avs),這些命令指定要運行處理的影像檔和濾鏡;
然後運行影像應用程式,比如VD或ND,打開腳本。此時AviSynth就開始工作了,打開腳本中指定的影像檔,運行特定的濾鏡,並把輸出結果提供給影像應用程式。但影像應用程式並不瞭解AviSynth在後臺所做的處理,而認為是直接打開了一個“被處理過”的影像檔。

因此使用AviSynth有5大優勢:
1. YUV支持:內建濾鏡可以在YUV環境下運行,第三方濾鏡幾乎也相容YUV,所以比起VD、ND的內嵌濾鏡必須在RGB環境下運行要快很多。省卻了一個轉換的過程,將來還可以支持YV。
2. 濾鏡處理:內建許多影像處理濾鏡,比如Resizing,Cropping等。還有大量的第三方強力濾鏡,並可以調用VD以及AviUtl的第三方濾鏡。
3. 突破2G限制:通過AviSynth打開影像檔就相當於應用程式直接打開,這樣就可以使本身有2G限制的程式也能突破2G的限制。
4. 打開格式:AviSynth可以打開幾乎所有影像檔,包括MPEG和QuickTime。所以當影像應用程式通過AviSynth打開這些檔時,會被認為是打開標準的AVI,這樣就可以處理影像應用程式本身並不支援的格式。
5. 節省硬碟空間:AviSynth處理的影像檔在運行過程中直接導入應用程式,沒有暫存檔案,所以節省硬碟空間。

AviSynth現在有3個版本,第一個是Ben Rudiak-Gould的首先編譯的AviSynth v1.0b;在Ben Rudiak-Gould停止開發後,Edwin van Eggelen繼續開發,最新的版本是AviSynth v1.0b6;在2002年7月第二次源碼編寫計畫開始,目前最新的版本是AviSynth v2.0.6,新的v2.5版還在開發中。
最後一個版本比較強大,更新速度快,增加了許多實用的命令,也吸收了一些優秀的第三方濾鏡成為內建濾鏡,強力推薦使用。

二、安裝

AviSynth的安裝可謂簡單,先下載AviSynth,然後解壓縮,把AviSynth.dll複製到Windows\System下(W98,ME)或Windows\System32下(W2K,XP),然後運行INSTALL.REG就完成安裝了。


三、內建濾鏡

AviSynth內建了數目繁多的濾鏡,所以只能介紹一些最常見實用的一部分。

1、原始檔案濾鏡

 AVISource
導入AVI,對於DivX或XviD,需要安裝相應的Codec。
例:AVISource(“test.avi”)
 WAVSource
導入WAV
例:WAVSource(“test.wav”)

2、處理濾鏡

 AddBorders
加邊:給影像加黑邊,尤其適用於對16:9的影像加字幕,希望不影響圖像,把字幕加在圖像的下方的情況。參數是整數,順序是左、上、右、下。
例:AddBorders(0,64,0,64) # 把640*352(16:9)改成640*480(4:3)

 ConvertToRGB 和 ConvertToYUY2
改變顏色環境:
VD和AviUtl第三方濾鏡有的需要RGB環境才能運行,需要ConvertToRGB來進行切換。
有的RAW檔是RGB的,但調用的AVISynth濾鏡只能運行在YUV下,就需要用ConvertToYUY2來運行。
例:ConvertToRGB() # 改變成RGB顏色環境
ConvertToYUY2() # 改變成YUV顏色環境

 Crop
切邊:為了保持比例或切除黑邊,參數是整數,順序是左、上、寬、高。
例:Crop(8,0,704,480) # 左右各切去8,以保持比例

 Levels
層次:調節亮度、對比度和Gamma值。
例:Levels(0,1.2,255,0,255) # 調整Gamma,使畫面變亮


 LanczosResize
放大縮小:Lanczos採樣方法可以在圖像處理中看到,是BicubicResize的替代者,提供更精准、更銳利的畫質。本來是日本人開發的第三方濾鏡,在日本普遍使用,歐美使用BicubicResize。自2.05版本開始吸收為內置濾鏡。
例:LanczosResize(640,480) # 把解析度改變為640*480

 Tweak
調整:可以調節色度,飽和度,亮度,對比度。
色度:-180.0~180.0,默認0.0。正數趨向紅色,負數趨向綠色。
飽和度:0.0~10.0,默認1.0。0.0為黑白。
亮度:-255.0~255.0,默認0.0。
對比度:0.0~10.0,默認1.0。

3、編輯濾鏡

FadeIn 和 FadeOut
淡入和淡出:提供淡入和淡出功能,尤其是淡出功能,可以使影片結束地更自然。參數為整數,表示需要編輯的幀數。
例:FadeOut(24) # 影片最後1秒淡出

Trim
截取:決定需要處理的部分。參數為整數,表示需要編輯的開始幀和結束幀。對抽樣做Sample比較有用。
例:Trim(240,480) # 決定處理240~480這一片斷

4、聲音濾鏡

 AudioDub
影音合併:可以把影像和聲音合併在一起。適用用用Helix直接做RMVB格式的DVDrip。
例:Video = AVISource("test.avi")
Audio= WAVSource("test.wav")
AudioDub(Video,Audio) # 把test.avi和test.wav合併

 GetLeftChannel 和 GetRightChannel
獲取聲道:把身歷聲的左右聲道單獨返回,適用於左右聲道不同語種的WAV。
例:stereo=WavSource("test.wav")
return GetLeftChannel(stereo) # 返回test.wav的左聲道

DelayAudio
聲音延遲:由於從VOB裏分離的AC3通常有延遲,所以用Azid轉碼得到的WAV也有延遲,在用AudioDub合併時就需要加上這個延遲。
例: WavSource("test.wav").DelayAuido(0.5) # 把test.wav延遲半秒





四、第三方濾鏡

AviSynth最強大之處就是有數目繁多、功能強大的第三方濾鏡;同時還可以調用VD以及AviUtl的濾鏡;甚至還有特別開發的介面,可以讓TMPGEnc和AviUtl讀取AVS。
和內建濾鏡不同,第三方濾鏡需要先調用聲明,再可以使用。

1、原始檔案濾鏡

 MPEG2Dec
由dividee編寫的讀取DVD2AVI產生的d2v工程檔的濾鏡,同時內建去除Noise的TemporalSmoother。
例:LoadPlugin("MPEG2Dec.dll")
MPEG2Source(”test.d2v”)

 MPEG2Dec2
trbarry在MPEG2Dec的基礎上進行了改進,支持P4的SSE2指令集。用文本編輯工具打開d2v,把iDCT_Algorithm=?改成5就可以了。速度很快,效果也好,推薦P4 CPU的用戶使用。
例:LoadPlugin("MPEG2Dec2.dll")
MPEG2Source(”test.d2v”)

 MPEG2Dec3
在MPEG2Dec2的基礎上再進行了改進,加入了Nic的圖像後處理(PP),一定程度上可以減少Noise。好像除了P4的SSE2外,還加入了AMD的3D Now!優化,目前還在開發中,是個非常有前途的濾鏡。
例:LoadPlugin("MPEG2Dec3.dll")
MPEG2Source(”test.d2v”,CPU=4) # CPU=4就是開啟了PP模式

2、處理濾鏡

 SimpleResize
放大縮小:由trbarry編寫的,由於對SSE進行了優化,所以速度快,效果好。替代了AviSynth中的BilinearResize。和LanczosResize的米切爾雙立方體演算法不同,這個是單純的雙線性演算法。LanczosResize的畫質更銳利和真實,適合普通電影;而SimpleResize的畫質較柔和,適合動畫。
例:LoadPlugin("SimpleResize.dll")
SimpleResize(640,480)

 ColorYUY2
顏色補償:Kiraru2002編寫的濾鏡。由於經過編碼,得到的結果和DVD相比較,顏色有所改變,所以要對顏色進行補償。
例:LoadPlugin("ColorYUY2.dll")
ColorYUY2(0,10,0,10,0,0,0,0,0)


3、交錯濾鏡

Decomb
IVTC和Deinterlace濾鏡:由Donald A.Graft編寫,新增加的專門處理NTSC格式動畫的mode=2,要和Avisynth2.05以上版本使用,不然速度會慢一倍。

guide 0~2,默認0, NTSC用1,PAL用2,可以提高IVTC準確度。
gthresh 0~100,默認15,控制區分不同幀的程度。
post 默認true,用來處理IVTC遺漏的細節,使畫面略微模糊。
threshold 0~255,默認15,控制post的程度。
dthreshold 0~255,默認9,控制threshold判定IVTC遺漏的程度。
blend 默認true,在交錯畫面用渲染來替代填充。
chroma 默認false,在交錯畫面的亮度色度調整。
cycle 2~25,默認5,每n幀刪除1幀,NTSC選5,PAL選25。
mode 0~2,默認2。
mode=0 對cycle裏最相近的幀不進行處理。
mode=1 對cycle裏最相近的幀進行處理,用於處理混合幀速。
mode=2 在一個很長的範圍裏進行幀對比,可以正確處理動畫裏由8幀或12幀複製為29.97幀的情況。
Threshold 默認0,控制mode=1時的處理重複幀的程度,Threshold默認100,控制mode=2時的處理重複幀的程度。
Quality 0~3,默認2,採樣和色度的質量,與速度成反比。

但是最近的幾個版本似乎都存在一個問題,就是處理後的畫面有波動現象,並伴隨影片裏文字閃爍現象,所以還是用老版本的保險。

例:LoadPlugin("Decomb.dll")
Telecide(Guide=1,Gthresh=50,Chroma=True,Quality=3,Post=false)
Decimate(cycle=5) # NTSC 3:2 PullDown

LoadPlugin("Decomb.dll")
Telecide(Guide=1,Gthresh=50,Chroma=True,Quality=3,Post=false)
Decimate(Cycle=5,Mode=2) # NTSC Progressive和Interlaced混合

LoadPlugin("Decomb.dll")
Telecide(Guide=2,Gthresh=50,Chroma=True,Quality=3,Post=false)
Decimate(Cycle=25) # PAL



4、字幕濾鏡

 VobSub
Sub字幕:VobSub不但是外掛字幕的好手,內嵌字幕也是一樣的強。
將字幕的2個文件test.idx和test.sub放在同一個目錄下就可以了。
例:LoadPlugin("VobSub.dll")
VobSub(“test”)

 TextSub
SSA和ASS字幕:這個也是VobSub自帶的,可以內嵌特效字幕。
例:LoadPlugin("TextSub.vdf")
TextSub(“test.ssa”)
----------------------------------------------------------------------------
補充兩個日本網站~
http://aetermv.hp.infoseek.co.jp/avisynth.shtml
http://niiyan.s8.xrea.com/avisynth/

此文章於 2005-04-11 09:10 AM 被 冰漾 編輯.
回覆時引用此文章
發表新主題 回覆

書簽

主題工具
顯示模式

發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用
論壇跳轉


所有時間均為GMT -5。現在的時間是 12:58 PM


Powered by vBulletin® Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.