史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 多媒體影音轉檔燒錄技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2005-08-16, 09:10 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 什麼是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。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2005-08-16, 09:11 AM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

下面先簡單的介紹些基本方法和常用濾鏡。

首先安裝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了!
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2005-08-16, 09:12 AM   #3 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

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
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 02:28 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1