AviSynth常用脚本语法
一、简述
AviSynth是AVI SYNTHesizer的缩写,是一款优秀的帧服务器程序(帧服务器是指将视频处理后直接输出到其他程序,没有其他临时文件的产生),因其特殊的工作方式,可以给视频增加滤镜,合并视频文件,或者将不支持的格式导入Premiere或者Vegas中。
相当于一个桥梁的角色哦~
AviSynth是使用脚本来工作的,当脚本文件(.avs)被打开时,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处理的影像文件在运行过程中直接导入应用程序,没有临时文件,所以节省硬盘空间。
主页:http://avisynth.org/mediawiki/Main_Page
二、安装
安装十分简单,到主页上下载,一路下一步就可以了。PR和Vegas需要对应的插件,大家网上搜索一下吧
三、内建滤镜
AviSynth内建了数目繁多的滤镜,这里只介绍常用的部分。
在写脚本的时候,如果你使用Notepad++等可以调整编码格式的编辑器,要把编码设置成ANSI,否则程序不会识别。
在使用脚本时,所有需要提供文件名的地方,直接写文件名,就需要把脚本和视频放到一个目录中。如果分开放置,文件名处则填写文件的绝对路径。
例:x:\temp\test.avi
0、最最常用的,PR和Vegas导入视频
DirectShowSource("test.avi",25)
注:25表示导入时的帧速,根据自己的需求进行更改。
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的替代者,提供更精准、更锐利的画质。
例: LanczosResize(640,480) 注:把分辨率改变为640*480
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").DelayAudio(0.5) 注: 把test.wav延迟半秒
四、第三方滤镜
AviSynth最强大之处就是有数目繁多、功能强大的第三方滤镜;同时还可以调用VD以及AviUtl的滤镜;甚至还有特别开发的接口,可以让TMPGEnc和AviUtl读取AVS。
和内建滤镜不同,第三方滤镜需要先调用声明,再可以使用。
1、源文件滤镜
① MPEG2Dec
由dividee编写的读取DVD2AVI产生的d2v工程文件的滤镜。
例: LoadPlugin("MPEG2Dec.dll")
MPEG2Source("test.d2v")
② MPEG2Dec2
MPED2Dec加强版,支持SSE。
例: LoadPlugin("MPEG2Dec2.dll")
MPEG2Source("test.d2v")
③ MPEG2Dec3
MPED2Dec2加强版,增加支持SSE2和3D Now!,同时可以降噪。
例: LoadPlugin("MPEG2Dec3.dll")
MPEG2Source("test.d2v",CPU=4) # CPU=4就是开启了PP模式
2、字幕滤镜
① VobSub
Sub字幕:VobSub不但是外挂字幕的好手,内嵌字幕也是一样的强。
将字幕的2个文件test.idx和test.sub放在同一个目录下就可以了。
例: LoadPlugin("VobSub.dll")
VobSub("test")
② TextSub
SSA和ASS字幕:这个也是VobSub自带的,可以内嵌特效字幕。
例: LoadPlugin("TextSub.vdf")
TextSub("test.ssa")
已有 3 条评论
发表评论
电子邮件地址不会被公开。 必填项已标注。
大D已经献身伟大的非编事业了
呃。。俺记录一下。省着用的时候到处找。。哈哈
路過路過、avisynth很強大很強大、你的文章很詳細很詳細~~