什麼是AVS(AVI synthesizer)?如何在壓制rmvb中合理利用AVS?
和ssa字幕特效一樣,avs也有其神秘的一面。
做為rmvb製作愛好者,儘管很早就接觸過avs,但真正體會出其強大功能的還是近2月的事,因為自己在rmvb壓制方面也算積累了不少經驗和技巧,對於avs在rmvb的套用有自己的一番見解,哈哈! AviSynth是AVI synthesizer的縮寫,簡單來說就是個合成平台!在媒體文件和壓縮軟體之間擔任"橋樑"的角色。這座橋樑不是簡單的獨木橋、而是有欄杆、有台階(比喻其提供的大量慮鏡)。 因此比較靈活!如對於壓制real格式來說,源媒體文件是vob、d2v(DVD處理程序中的中間文件)、ac3、mp3、avi、DAT/mpge等,而應用程式是各種real壓縮軟體如Helix real producer、BatchRealProducer144和EasyRealProducer14,它們都支持avs的匯入。 個人推薦使用EasyRealProducer14(可能目前的版本在avs方面不夠完善,但趨勢是明朗的,哈哈)。Auto Rv9雖然在avs方面有所體現,但不適合剛接觸rmvb壓制的朋友,我總覺得有誤導之嫌。 AviSynth首先要編寫建立一個包含特定指令的文本,稱之為"指令碼"(文件後面名為avs),這些指令指定要執行處理的媒體文件和濾鏡! AviSynth的平台和相關濾鏡更新比較快,功能不斷增加,編輯avs指令碼也更簡單。在射手網可以下載到這個平台軟體。至於濾鏡可以到得到http://www.avisynth.org/warpenterpri...可以了! 上面簡單介紹了AviSynth的一些基本概念作為引子,在正文開始前,我想首先交待很重要的一點:avs指令碼及其各種濾鏡主要適用於大碼率媒體文件的處理,也即我們經常接觸的DVDRIP/TVRIP avi的製作最佳化。 而對於高度壓縮格式的rmvb來說,我們利用的avs濾鏡應該持慎重態度(如亮慮鏡、字幕慮鏡、畫面調整等少數幾個)!也就是說avs在rmvb壓制方面,我們需要的是利用avs靈活的「中間人」的角色(看下面的例子)! 而不是為了av s而去壓制!我看到好多朋友初步接觸rmvb壓制,就在用avs壓制DVDRIP-rmvb,完全套用個別論壇指出的avs指令碼,裡面全是各種濾鏡,如3D增強、柔化、去絲等!這些濾鏡如果製作DVDRIP的avi那是會獲得肯定的畫質效果,但是用於rmvb壓制,彷彿就是東施效顰,忠言逆耳! real壓制的原理和高碼率的mpge4編 碼是不同的,後者有視瀕上層的概念,因此濾鏡的修飾作用可以體現。 我看Doom9討論avs時,主要還是處理各種大資料量影像媒體為主。如處理自己DV錄製的影視、電視卡錄製的視瀕源之類的等。而眾所周知的影響real媒體壓縮效果就是片源效果。 VCD片 源的再怎麼處理也不可能達到DVD的效果,而DVD片源,再怎麼胡亂壓制也不會差到哪裡。因此avs直接在rmvb的壓制中需要適當選項,而不能盲從,特別是對於各種濾鏡的選項更要注意。 第二,需要認識avs的橋樑作用。修飾之餘盡可能的使用壓縮軟體本身的功能。如rmvb壓制中畫格率的改變就可以在壓縮軟體中進行設定,而不要在avs中寫入相關的語句。 另外各種壓縮軟體使用的是real的壓縮內核,而real壓縮一般以YV12的快速處理 環境為主。這也是在使用avs壓制rmvb時需要注意的問題 DVDRIP-rmvb的壓制請使用我中進階教學裡介紹的方法來壓制,更顯成熟和含蓄!因為黑邊裁減、畫面縮放和亮度調節都可以通過輔助軟體如ffdshow來實現。請注意我使用的少數幾個ffdshow的輔助功能(ffdshow可以變相的認為是avs濾鏡的插件化) 。 其道理和avs是一樣的,我只是用了其字幕、調節亮度和縮放尺寸等少數幾個功能! 自己覺得上文對avs的介紹及套用範圍要比下面的內容來的更重要!這是我直到現在才撰寫完畢這篇小文的良苦之處。我希望接觸過avs法壓制rmvb的朋友能夠更有效的利用這種方法! 我自己測試過利用avs壓制vob文件。感覺:1,壓縮速度較快,因為vob直接壓縮成rmvb本身就需要畫面縮放,用一般方法壓制速度較慢。2,黑邊裁減很是輕鬆。3,可以靈活的載入字幕合水印文件。4,壓縮效果不如高品質的DVDRIP-rmvb。 |
下面先簡單的介紹些基本方法和常用濾鏡。
首先安裝avisynth,並將常用慮鏡插件dll檔案拷貝到安裝目錄的plugin目錄裡。 我們主要利用avs來壓制DVD的vob文件 一 基本程式碼 1. LoadPlugin(),載入插件。 如: LoadPlugin("VSFilter.dll") 載入字幕插件 LoadPlugin("mpasource.dll") 載入mp3插件 請下載以上提到的濾鏡!並解壓制到plugin目錄裡(當然目錄可以自己選定) 2.源媒體讀取 DirectShowSource("e:\vob\ss.VOB") DirectShowSource()在高版本avisnyth中顯得更萬能些,常用的媒體格式,如avi、mpge1/dat、mpge2/vob/bin都可以載入,另外可以不用分離視瀕和音瀕,而直接壓縮!想要直接壓制vob請使用高版本的avisynth,如目前的2.54 AVISource(e:\avi\1.avi,false) 這個對於DVDRIP壓制者來說可能更常用些.false表示禁止音瀕! WAVSource("e:\vob\ss.wav") 讀取wave音瀕 AC3SOUECE("e:\vob\ss.ac3") 讀取ac3音瀕 MPASOURCE("e:\vob\ss.MP3") 讀取mp3音瀕 註:WAVSOURCE和AVISOURCE是屬於核心指令碼,無須讀取插件,但AC3SOURCE和MPASOURCE需要讀取AC3SOURCE和MPASOURCE插件。DirectShowSource的讀取需要安裝各種音瀕和視瀕的解碼器 3. crop()、LanczosResize()裁黑邊和調整大小 vob文件畫面大小一般720×480。1 6:9寬銀幕的都帶了很大的黑邊,需要裁減掉。也是avs用於vob壓制的關鍵因素之一 裁減黑邊和縮放畫面是vob文件壓制中很重要的因素,一般連用。 對於本身就無黑邊的文件直接用LanczosResize() 16:9畫面的有2種情況,請記住這幾個數值,在rmvb壓制中直接套用即可! DVD變形寬銀幕:640×352,608×336 電影寬銀幕: 640×272 如要將電影寬銀幕的畫面比列調整到640×272,avs裡可以這麼寫 Crop(8,90,704,300) LanczosResize(640,272) 如要將DVD變形寬銀幕的畫面比列調整到608×336,avs裡可以這麼寫 Crop(8,64,704,352) LanczosResize(608,336) 無黑邊的畫面的直接用 LanczosResize(512,384) 縮小同時畫面強制到標準4:3 請直接記住這幾句就可以了得到最佳的rmvb畫面大小了! 4.亮度濾鏡 亮度濾鏡是使用avs壓制vob-rmvb vcd-rmvb的又一關鍵因素。畫面太暗的rmvb是失敗之作 介紹2個 Levels(0,1.5,255,0,255) 改第二個,我感覺數值在1.3-2之間比較合適,一般1.5比較合適 Tweak(0,1,20,1) 4個浮點數分別表示:調節色度,飽和度,亮度,對比度。 一般將第三個調節在0-30之間,以15-20為宜 個人感覺level()比較好,主要調背景為主,而vob文件主要是背景暗。 注意Tweak的其他調節可能和顏色控制環境有關,如YUY2,因此其它的最好不要再改動 註:ffdshow目前的版本還是不能支持mpge2唉!否則可以利用它來調節亮度了 5.字幕濾鏡 TextSub("h:\avs\jrvs.ssa") 載入水印文本 VobSub("e:\vob\ss.idx") 載入影片字幕 6.其它慮鏡介紹 在rmvb壓制中不推薦使用,如部分朋友選用的 FluxSmooth(5,7) 柔化濾鏡 Convolution3d("moviehq") 3D最佳化濾鏡 2者需要載入相應的濾鏡插件 二,合成 1 LoadPlugin("VSFilter.dll") LoadPlugin("mpasource.dll") video=AVISource("c:\1.avi",false).TextSub("c:\logo.ssa").VobSub("c:\1.idx").Lanczosresize(512,384) #定義了avi源、字幕、水印和畫面大小 audio=mpasource("c:\1.mp3") #音瀕 AudioDub(video, audio) 為簡便起見,以avi文件為例說明語法,但此例不推薦用,直接用壓縮軟體+ffdshow設定即可。原始avs載入了至少3個額外的濾鏡,已略去! 該方法可以用於雙語DVDRIP的壓制,使用雙語處理的軟體提取自己要的聲道即可,而不要再合併成avi了! |
DTS音軌格式的可以用這個avs法壓制
先根據中進階教學裡的方法將DTS音瀕轉換成wave格式,如放在e:\avi\目錄裡 avs可以這麼寫: LoadPlugin("VSFilter.dll") video=AVISource("c:\1.avi",false).TextSub("h:\avs\jrvs.ssa").VobSub("e:\avi\t1.idx") audio=WAVSource("e:\avi\t1.wav") AudioDub(video, audio) 如此可以不用再合併那麼費事了! 2 LoadPlugin("VSFilter.dll") b=directshowSource("e:\avs\cd1.avi").TextSub("e:\BBSLogo\logo.ssa").VobSub("e:\avs\cd1.idx").Lanczosresize(608,320) c=directshowsource("e:\avs\cd2.avi").VobSub("e:\avs\cd2.idx").Lanczosresize(608,320) final=b+c return final 這個語法很好,直接將多CD的壓製成一個rmvb,可以在一定程度上解決單CD碼率過度錯位。 如分別1pass壓制CD1和CD2可能會由於碼率錯位太大而使文件增大,但如果2個一起壓制,則可能由於碼率補償,平均碼率錯位反而不大,而使文件大小減小。 請注意,這裡自己可以將水印放在CD1上,而CD2不會顯示(說明什麼?哈哈!) 一般DTS的都要2CD以上,有時影片長度也不長,所以DTS的電影可以這麼寫avs壓制 LoadPlugin("VSFilter.dll") video=AviSource("e:\cd1.avi",false).Vobsub("e:\cd1.idx").TextSub("c:\logo.ssa")+AviSource("e:\cd2.avi",false).VobSub("e:\cd2.idx") audio=wavSource("e:\cd1.wav")+wavSource("e:\cd2.wav") AudioDub(video, audio) 3.雙語的vcd分成單語來做 LoadPlugin("VSFilter.dll") video=DirectShowSource("F:\mpge\*.dat").Levels(0,1.7,255,0,255).LanczosResize(480,360) return GetChannel(video,2) 1 left channel 2 right channel ,一般是國語 據說這裡的*.dat表示成批壓制! 如果要求控制畫格率,那麼有句改成這個 video=DirectShowSource("F:\mpge\*.dat",fps=25) 4,雙語rmvb的製作 a,雙語DVDRIP壓製成雙語的rmvb 先用AVIMux_GUI來處理音瀕。右鍵點擊提示另存為mp3即可 對於喜歡壓制rmvb而門外與DVDRIP壓制的朋友建議使用AVIMux_GUI來處理音瀕,更顯輕鬆合理。 avs語法如下: LoadPlugin("VSFilter.dll") LoadPlugin("mpasource.dll") video=AVISource("c:\1.avi",false).TextSub("c:\logo.ssa").VobSub("c:\1.idx") R=MPASOURCE("e:\R.MP3") L=MPASOURCE("e:\L.MP3") stereo = MergeChannels(R,L) return AudioDub(video, stereo) 雙語VCD-rmvb的壓制 avs語法如下 LoadPlugin("VSFilter.dll") video=DirectShowSource("F:\mpge\*.dat").Levels(0,1.7,255,0,255).LanczosResize(480,360) stereo=GetChannel(video,1,2) return AudioDub(video,stereo) 註:不過雙語VCD-rmvb可以直接使用壓縮軟體進行製作,聲音碼率使用44k以上的立體聲即可。我這裡是想加大點亮度,那麼同時就放大、水印一起來好了,哈哈! 以上都是avi,都可以自動關聯ffdshow,所以亮度可以在ffdshow裡設定!但請同時去掉ffdshow的字幕和avisynth功能 下面集中給2個用avs法壓制vob-rmvb的avs程式碼 先按照一般教學裡介紹的方法將vov檔案拷貝到硬碟上,然後在記事本裡寫上如下語句,儲存為後面名為avs的文件即可 然後可以用mediaplayer播放這個avs(想一想,是怎麼個效果。哈哈,avs不是聯繫源文件和應用程式的橋樑嗎,播放avs就相當於在播放帶字幕和水印的影視了) 1,無黑邊者 LoadPlugin("VSFilter.dll") DirectShowSource("e:\vob\ts.VOB") LanczosResize(512,384) Levels(0,1.5,255,0,255) VobSub("e:\vob\ss.idx") TextSub("h:\avs\jrvs.ssa") 2,寬銀幕(16:9) LoadPlugin("VSFilter.dll") DirectShowSource("e:\vob\ss.VOB") Crop(8,64,704,352) LanczosResize(608,336) Levels(0,1.5,255,0,255) TextSub("H:\avs\jrvs.ssa") 請使用Easy Real Producer14壓制,設定如圖 vob文件直接壓製成rmvb,初始平均碼率可以加大。 一般推薦用480k-1500k,畫格率23,聲音使用44k的,1pass壓制,寧可碼率錯位來保證清晰度 另外利用ffdshow支持avs的特點,可以在DVDRIP-rmvb壓制時載入多字幕(就是動態ssa水印字幕了)。或者載入聲音文件來個聲形並茂(結合動態水印的時間軸) 好了,我是從rmvb壓制者角度對avs做的一些介紹和使用技巧。 可能和部分朋友的觀點有些衝突,不過相信實踐吧。DVDRIP的壓制和rmb壓制不是一回事,就這麼實際! avs在rmvb壓制中另外一個作用是利用ffdshow支持avisynth的功能來實現多字幕的載入,部分動態水印可以通過這種方法來實現,但是還不是很完善,請參見水印的那個帖子 第二,部分VCD/mpge格式由於插件衝突,在播放時能自動載入版權水印,但用壓縮軟體壓縮時就不能自動載入了,那麼這個時候,就利用avs了 語法如下,比如對於一個dat文件,壓縮時不能載入ssa字幕 LoadPlugin("VSFilter.dll") DirectShowSource("F:\mpge\2.dat").TextSub("h:\avs\jrvs.ssa") 但是達到完美的avs語句應該是 LoadPlugin("VSFilter.dll") DirectShowSource("F:\mpge\2.dat").Levels(0,1.7,255,0,255).LanczosResize(480,360) TextSub("h:\avs\jrvs.ssa") 同時增加了亮度和放大了畫面 註:亮度這個值要用到的話,一般1.5,感覺亮度合適的話,可以不用這個語句 VCD畫面放大,不要超過512×384,否則就是傻樣的rmvb了,違反壓縮時畫面應該縮小的原則。放大的同時也改正了畫面的比列到標準的4:3畫面 再來談談2個重要的載入濾鏡directshowsource 和avisource avs的重要功能體現在其合成、嵌套以及強大的增強濾鏡。 早期的avs需要先分離視瀕和音瀕,然後再利用avs的合成,比較繁瑣,一般人也不願意接觸。 隨著avisynth版本的提高,directshowsource 和avisource可以直接載入,不用分離視瀕和音瀕了,avs語法也顯得簡練起來,因此目前的avs開始廣泛的普及了。 不過我先提到,真正的掌握和利用avs,可能還是要用到其分離合成的步驟,哈哈!我下面是從實用性角度(比如我們最常接觸的幾種rm vb的壓制)談談。 directshowsource ,avisource是avs中最強大的2個載入語法,版本越高越強大!一般directshowsource 如同其名,只要安裝directshowsource 的插件,也就是說,可以用mediaplayer來播放,那麼就可以用Directshowsource 來載入。 如,安裝了ac3filter7.0,就可以直接用Directshowsource來載入ac3音瀕了,安裝了mpge2插件,Directshowsource就可以載入bin(SVCD)和vob(DVD)文件了。 牛過的mimi8(阿飛) 的解碼插件包,基本是關於directshowsource的插件,配合avs,很大程度上方便了directshowsource的運用! 而avisource和wavescource,ac3scource還有mpascource實際是一個性質的東西,他們可以載入不能Directshowsource的源,但是就比較嬌貴了,需要相應的濾鏡dll文件了,前2者是avs內裝的濾鏡! 一般來說,對於avi文件先用avisource來載入,如wm9和vp6格式的!使用avisource載入的話,源和其它插件脫離關係! 如就不能關聯ffdshow了! 而directshowsource仍舊可以關聯ffdshow!所以,我一般推薦 DVDRIP的avi文件是用directshowsource來載入,而一些亮度濾鏡、畫面大小、水印之類的可以通過ffdshow來載入! 關於directshowsource和avisource的其它東西,可以再看看avisynths原有的的說明 我提示幾點(因為說明書的確對於非專業的很吃力) avisource("("d:\test\sample.avi",false) false表示禁止音瀕 AVISource("cap.avi",false,"RGB32") RGB32是一種色彩處理模式,預設是YV12,處理速度最快 一般,這個在一般使用AVISource中不必使用!而很多人在剛接觸avs時,就盲目套用一些avs,這樣就走上了不歸路了! 轉換成RGB32,一般字幕社用的多些,因為他們喜歡加一些圖片的logo等,而只有RGB32支持透明處理,但RGB32模式處理速度較慢! directshowsource("d:\test\sample.rm",fps=24) 舉這個例子來說明directshowsource吧,對於rm和asf格式的,需要定義畫格率才能讀取。如裡面的fps=24 DirectShowSource(string filename, int fps, bool "seek") int fps說明這個是整數型的畫格率,但是如果我上例子改成fps=23.976仍舊可以讀取 處理定義畫格率的源,需要注意不同步 又如雙語VCD只壓制一個聲道,avs語法可以這麼寫 video=DirectShowSource("F:\mpge\test.dat) return GetChannel(video,2) 註: 1 left channel 2 right channel ,一般是國語 使用AUDIODUB合成時,一般也無需在directshowsource或者AVISource加上禁止音瀕的參數了! directshowsource 和avisource直接載入的缺點是有可能導致不同步。如5個聲道以上的vob文件,雙語的avi多CD合成壓制時。 轉自:http://mkv.cn/Article/ArticleShow.asp?ArticleID=435 |
所有時間均為台北時間。現在的時間是 11:14 AM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *