当前位置: 主页 > 处理视频 > 视频转换教程 > 用AVS快速高效地将DVD压制为RMVB(3)

用AVS快速高效地将DVD压制为RMVB(3)

2008-12-22   互联网 / 未知 点击: 标签:rmvb AVS
  

(三) 实例代码

下面集中给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,可能还是要用到其分离合成的步骤,呵呵!我下面是从实用性角度(比如我们最常接触的几种rmvb的压制)谈谈。

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合成压制时。

顶一下
(0)
0%
踩一下
(1)
100%
精彩推荐