|
|
innison
超主
. 積分: 954
. 精華: 4
. 文章: 2848
. 收花: 4778 支
. 送花: 1403 支
. 比例: 0.29
. 在線: 425 小時
. 瀏覽: 4993 頁
. 註冊: 8204 天
. 失蹤: 490 天
|
|
|
|
|
|
|
#2 : 2004-9-11 02:33 PM
只看本作者
|
送花
(1)
送出中...
|
|
|
以下是轉貼大陸網站的文章
avs講解及其在rmvb壓製中的合理運用
小新Bob @ 2004-08-11 23:17
原作者 極速copd
做為rmvb制作愛好者,儘管很早就接觸過avs,但真正體會出其強大功能的還是近2月的事,因為自己在rmvb壓製方面也算積累了不少經驗和技巧,對於avs在rmvb的應用有自己的一番見解,呵呵!
AviSynth是AVI synthesizer的縮寫,簡單來說就是個合成平台!在媒體文件和壓縮軟件之間擔任\"橋樑\"的角色。這座橋樑不是簡單的獨木橋、而是有欄杆、有台階(比喻其提供的大量濾鏡)。因此比較靈活!如對於壓製real格式來說,源媒體文件是vob、d2v(DVD處理過程中的中間文件)、ac3、mp3、avi、DAT/mpeg等,而應用程序是各種real壓縮軟件如Helix real producer、Batch Real Producer 144和EasyRealProducer14,它們都支持avs的導入。個人推薦使用EasyRealProducer14(可能目前的版本在avs方面不夠完善,但趨勢是明朗的,呵呵)。AutoRv9雖然在avs方面有所體現,但不適合剛接觸rmvb壓製的朋友,我總覺得有誤導之嫌。
AviSynth首先要編寫建立一個包含特定命令的文本,稱之為\"腳本\"(文件副檔名為avs),這些命令指定要運行處理的媒體文件和濾鏡!
AviSynth的平台和相關濾鏡更新比較快,功能不斷增加,編輯avs腳本也更簡單。在射手網可以下載到這個平台軟件。至於濾鏡可以到得到http://www.avisynth.org/warpenterprises/
下載,至於doom9論壇,大家知道有這麼個烏合的巢穴就可以了!
上面簡單介紹了AviSynth的一些基本概念作為引子,在正文開始前,我想首先交待很重要的一點:avs腳本及其各種濾鏡主要適用於大碼率媒體文件的處理,也即我們經常接觸的DVDRIP/TVRIP avi的制作優化。而對於高度壓縮格式的rmvb來說,我們利用的avs濾鏡應該持慎重態度(如亮濾鏡、字幕濾鏡、畫面調整等少數幾個)!也就是說avs在rmvb壓製方面,我們需要的是利用avs靈活的“中間人”的角色(看下面的例子)!而不是為了avs而去壓製!我看到好多朋友初步接觸rmvb壓製,就在用avs壓製DVDRIP-rmvb,完全套用個別論壇給出的avs腳本,裡面全是各種濾鏡,如3D增強、柔化、去絲等!這些濾鏡如果制作DVDRIP的avi那是會獲得肯定的畫質效果,但是用於rmvb壓製,彷彿就是東施效顰,忠言逆耳!real壓製的原理和高碼率的mpeg4編碼是不同的,後者有視頻上層的概念,因此濾鏡的修飾作用可以體現。我看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、mpeg1/dat、mpege/vob/bin都可以加載,另外可以不用分離視頻和音頻,而直接壓縮!想要直接壓製vob請使用高版本的avisynth,如目前的2.54
AVISource(e:\avi.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。16: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目前的版本還是不能支持mpeg2唉!否則可以利用它來調節亮度了
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:.avi\",false).TextSub(\"c:\logo.ssa\").VobSub(\"c:.idx\").Lanczosresize(512,384) #定義了avi源、字幕、水印和畫面大小
audio=mpasource(\"c:.mp3\") #音頻
AudioDub(video, audio)
為簡便起見,以avi文件為例說明語法,但此例不推薦用,直接用壓縮軟件+ffdshow設置即可。原始avs加載了至少3個額外的濾鏡,已略去!
該方法可以用於雙語DVDRIP的壓製,使用雙語處理的軟件提取自己要的聲道即可,而不要再合併成avi了!
DTS音軌格式的可以用這個avs法壓製
先根據中高級教程裡的方法將DTS音頻轉換成wave格式,如放在e:\avi\目錄裡
avs可以這麼寫:
LoadPlugin(\"VSFilter.dll\")
video=AVISource(\"c:.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:\mpeg\*.dat\").Levels(0,1.7,255,0,255).LanczosResize(480,360)
return GetChannel(video,2)
1 left channel
2 right channel ,一般是國語
如果要求控制幀率,那麼有句改成這個
video=DirectShowSource(\"F:\mpeg\*.dat\",fps=25)
以上都是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\")
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
|
|