ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:43.59KB ,
资源ID:9529114      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9529114.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AVS教程.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

AVS教程.docx

1、AVS教程在本章中,我们来学习AviSynth,并手工创建AVS脚本。AVS在DVDRip制作中是至关重要的一个步骤,直接影响到画质好坏。因此,AVS也是无数Ripper花大力气研究的对象。当积累了一定经验和熟练度之后,创建AVS脚本是一件相当有乐趣且轻松的事情。有经验的Ripper看到片源之后,立刻就可以基本确定需要使用那些滤镜、怎样搭配滤镜参数,之后,只要进行细微的调整,便可得到希望的效果。新手成为老手,需要一个积累经验的过程,除了多看别人的心得、遇到问题勤于提出之外,就只剩下自己多做片、积累实战经验。经验的积累是一个较长的过程,因此不要梦想阅读了某篇文章后一夜之间成为所谓高手,经验不会骗

2、人,因此脚踏实地才是正确的道路。有点说多了。现在来提一下提高AVS运用水平的两条小经验:1. 英语要好,因为大多数滤镜的文档都是E文的,且很少有中文翻译版;2. 善于使用各种搜索引擎,比如GOOGLE、一些论坛的搜索引擎等。3. 善于提问。在提出问题之前,看看说明、用搜索引擎搜索一下,这样一来,应该说85%的问题都能够很好的解决。这样不但为别人省去了麻烦,而且这样学来的知识最牢固。废话不多说了,我们来进行第一节 AviSynth简介AviSynth是AVI SYNTHesizer的缩写,意思就是AVI合成器,是一个Frameserver。(Frameserver就是一个把影像文件从一个程序转换

3、到另外一个程序的过程, 其间没有临时文件或中介文件产生)AviSynth是由Ben Rudiak-Gould首创的一种非常有用的工具,能够提供各种方式来处理影像文件。最独特的就是AviSynth并不是一个独立的影像处理程序,而是在影像文件和影像处理软件之间担任“中间人”的角色。AviSynth的基本工作原理是这样的:首先由使用者建立一个包含特定命令的文本,称之为“脚本”(后缀为avs),这些命令指定要运行处理的影像文件和滤镜;然后运行影像应用程序,比如VD或ND,打开脚本。此时AviSynth就开始工作了,打开脚本中指定的影像文件,运行特定的滤镜,并把输出结果提供给影像应用程序。但影像应用程序

4、并不了解AviSynth在后台所做的处理,而认为是直接打开了一个“被处理过”的影像文件。第二节 AVS语法及基本应用技巧写给新手既然要编写脚本,就要知道怎么写。在本节中,我们结合实例来了解一下AVS脚本的基本语法。只有懂得了写法,才能更好的运用。当然,不少人会觉得本节都是废话那么恭喜你,你已经是老手了,你可以直接跳到下一节。AVS 脚本的语法非常类似于C语言的语法,但比C要简单得多。如果你有一定的C语言(或以C为基础的脚本语言,如PHP)的编写经验,那么你会发现AVS 竟然是如此的简单你甚至可以跳过本节直接进行下节的内容。比如,笔者有过将近一年的PHP编程经验,当接触到AVS的时候,几乎没有花

5、费任何力气就上手了。跟往常一样,先了解几个概念。函数函数的英文名字叫function,这个词在英文中还有“功能”意思,没错!AVS 中绝大部分的功能都是通过各种各样的函数来实现的。至于“函数” 的确切定义,高一数学(上册)中写得很明白,笔者就不废话了。AVS中的函数按调用方式分为两类,一种是内置函数,一种是外挂函数。内置函数已经放置在AviSynth软件内部,可以在脚本中直接调用;外挂函数不包含于AviSynth中,需要在脚本中额外加载相应的DLL文件或其他AVS脚本函数才能调用。AVS包含的众多内置函数我们将会专门抽出一节来介绍。外置函数可以在网上下载得到。正是因为这点,AVS被赋予了几乎无

6、限的扩展性,我们可以通过在网上找到各种函数来实现五花八门的功能。忘记说了,有些人喜欢管“函数”叫做“滤镜(filter)”或“插件(plugin)”,实际上这么叫也是正确的,就连AVS的众多官方文档都称之为滤镜、插件。但是就笔者个人来说,更愿意叫“函数”,因为这些“滤镜”的使用方式是函数的 f(x)的形式。参数既然有函数,就要说参数。如果说函数是实现某样功能用的,那么参数就是告诉函数通过什么方式实现、实现到什么程度等等的信息。上面说的f(x)的调用形式,f是函数名称,x就是参数。有的函数一个参数就够了,有的函数却要很多参数,四个、五个、十多个。比如 Telecide这个函数如果把所有的参数加起

7、来一共有十四个之多。好在不是所有的参数都是必要的。有些参数可以写也可以不写。如果不写,函数就会自动使用其内部的默认值。但是,如果必写的参数不写,那么函数就无法启动。变量变量可以简单的理解成某个对象的名字(实际上要复杂一些;)。比如,我们规定“本文作者=大虾”,那么当我们提到“本文作者”的时候,我们的第一反应就是那个叫“大虾”的家伙,HeiHei。好了,下面我们借个一段极其简单的范例来了解一下AVS的语法:#pluginLoadPlugin(E:gkAviSynthPluginsDGDecode.dll)#sourcempeg2source(F:dvdrip-tempsoultaker.d2v)

8、#cropcrop(4,4,712,476)#resizeLanczosResize(640,352)上面的例子中,“#”后面跟着的句子是被“注释”掉的。注释是什么意思呢?就是说,AviSynth读到这句话的时候,一看到这句话前面有“#”,就会 54 (无视)它,继续读到下一行。编写脚本写注释是一个好习惯,尤其是极其复杂的脚本。这种情况AVS脚本大概不会遇到,但是当编写PHP的时候,成千上万行的代码如果没有注释那无论是试图阅读代码的人还是作者本人,都会头晕脑胀。糟糕扯远了。我们回到主题。紧接着下面,“LoadPlugin”,这是一个函数的名字,后面的括号“()”中的内容就是参数。LoadPlu

9、gin函数的功能是载入插件,后面括号中的参数便是告诉函数,要载入“E:gkAviSynthPluginsDGDecode.dll”这个插件。Mpeg2source是包含于上面提到的“DGDecode.dll”中的外挂函数,也就是说,如果不加载DGDecode.dll这个文件的话,mpeg2source就无法使用。Crop是AviSynth的内置函数。这里涉及到了多参数函数。这个函数有四个参数,每个参数之间用“,”隔开(注意是英文逗号,不是中文逗号)。函数的写法多种多样,像LanczosResize函数,只有两个参数,所以我们写“640,352”即可。但是像前文提到的Telecide这样复杂的函

10、数,我们需要将参数的名字也写进去。比如:Telecide(order=1,guide=1,post=2,vthresh=25,show=true)其中,order、guide、post等等的,就是参数名称,参数名称和参数值之间用“=”连接(废话!)。还有一点要注意,数值型(比如1、25之类的)/真假型(true或者false)的参数,不需要用双引号(英文双引号)引起来。但是,字符型的参数,必须要用双引号引起来。例如:mpeg2source(F:dvdrip-tempsoultaker.d2v,idct=7)这个例子很明白,F:dvdrip-tempsoultaker.d2v是字符型的变量值,要

11、加双引号;7是数字型的参数,不用加双引号。下面介绍一些小花招,让我们的处理更加轻松。AVS技巧1:使用变量当我们在一段AVS之中需要打开多段片源、需要分别处理的时候,就要用到变量。请看下面的例子:Clip1=avisource(“d:.avi”)Clip2=avisource(“d:.avi”)Clip3=clip1+clip2Return(clip3)在这个例子中,clip1、clip2、clip3都是变量,现在你也能够理解变量的概念了吧。很明显,我们在clip3中将前两个片源合并在了一起,然后用return函数输出clip3,我们在视频编缉软件中最终看到的结果是:播放1.avi,1.avi

12、放完后,紧接着放2.avi。当然,这里只是举例子,其实合并没这么简单的,因为两段片源的fps、分辨率、颜色模式都要完全相同。至于怎么让他们“完全相同”,将会在后面的章节中讲到。这里只是要大家了解变量是什么东西。AVS技巧2:“.”的妙用看下面的AVS脚本:v1=avisource(C:.avi).ConvertToYUY2()v2=avisource(C:.avi).ConvertToYUY2()这样写等价于:v1=avisource(C:.avi)v1= ConvertToYUY2(v1)v2=avisource(C:.avi)v2= ConvertToYUY2(v2)是不是省了很多事?赫赫

13、在编写复杂的脚本的时候尤其好用(至于ConvertToYUY2是什么东西我们后文再讲)AVS技巧3:分段处理就算是同一影片在不同的段落中也会表现出来不同的特色。有时候我们需要对一些片源进行特殊处理,这就用到了截取。还是先看例子:Source=avisource(“c:clip.avi”)Clip1=trim(source,0,1999)Clip2=trim(source,2000,3000)这样,我们就用trim函数分别截取了影片的01999(包括1999)号帧和20003000帧。下面就能针对两段影片分别进行处理了。有一点请注意:0号帧也算一帧,0号帧其实是影片的第一帧,1号帧是第2帧,依此

14、类推我们截取到1999号帧,事实上截取了2000帧!自然,2000号帧是影片的第2001帧。AVS的基础语法以及一些小技巧就讲到这里了,更多的应用技巧还希望大家自己去探索。这一章对已经掌握AVS的人来说可能是废话,但是对于从来没接触过AVS得初心者,却是需要重点掌握的。俗话说,工欲善其事,必先利其器。要写好AVS脚本,必须要打好基础才行。第三节 AVS常用滤镜介绍 一、常用内置滤镜本节大虾偷懒,转载一篇精品论坛的经典文章给大家看。(既然有人写好了,大虾自然可以偷懒了HiaHiaHiaHia)本文在原文的基础上略微修改了一下,还望作者见谅。AviSynth内建了数目繁多的滤镜,所以只能介绍一些最

15、常见实用的一部分。1、源文件滤镜 AVISource用于导入AVI格式的影片,需要安装相应的Codec才能导入。例:AVISource(“test.avi”) WAVSource导入WAV例:WAVSource(“test.wav”)2、处理滤镜 AddBorders加边:给影像加黑边。参数是整数,顺序是左、上、右、下。例:AddBorders(0,64,0,64)就是给图像上下各加64像素的黑边。这个滤镜似乎并不常用。 ConvertToRGB 和 ConvertToYUY2改变颜色环境:VD和AviUtl第三方滤镜有的需要RGB环境才能运行,需要ConvertToRGB来进行切换。有的RA

16、W文件是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缩放滤镜:LanczosResize是BicubicRes

17、ize的替代者,提供更精准、更锐利的画质。在日本普遍使用,欧美大多使用BicubicResize。本来是日本人开发的第三方滤镜,自AviSynth 2.05版本开始吸收为内置滤镜。例:LanczosResize(640,480)把分辨率改变为640*480 Tweak?调整:可以调节色度,饱和度,亮度,对比度。?色度:-180.0180.0,默认0.0。正数趋向红色,负数趋向绿色。?饱和度:0.010.0,默认1.0。0.0为黑白。?亮度:-255.0255.0,默认0.0。?对比度:0.010.0,默认1.0。3、编辑滤镜FadeIn 和 FadeOut淡入和淡出:提供淡入和淡出功能,尤其是

18、淡出功能,可以使影片结束地更自然。参数为整数,表示需要编辑的帧数。例:FadeOut(24)影片最后24帧淡出Trim截取:可以截取某段影片。参数为整数,表示需要编辑的开始帧和结束帧。例:Trim(240,480)截取240480帧这一片断4、声音滤镜 AudioDub影音合并:可以把影像和声音合并在一起。例:Video = AVISource(test.avi)?Audio= WAVSource(test.wav)?AudioDub(Video,Audio) 把test.avi和test.wav合并 GetLeftChannel 和 GetRightChannel获取声道:把立体声的左右声道

19、单独返回,适用于左右声道不同语种的WAV。例:stereo=WavSource(test.wav)?return GetLeftChannel(stereo)返回test.wav的左声道DelayAudio声音延迟:由于从VOB里分离的AC3通常有延迟,所以用Azid转码得到的WAV也有延迟,在用AudioDub合并时就需要加上这个延迟。例: WavSource(test.wav).DelayAuido(0.5) 把test.wav延迟半秒以上便是AviSynth的常用内置函数。二、常见的外挂滤镜 AviSynth最强大之处就是有数目繁多、功能强大的外置(或称“第三方”)滤镜;同时还可以调用V

20、D以及AviUtl的滤镜;甚至还有特别开发的接口,可以让TMPGEnc和AviUtl读取AVS。和内置滤镜不同,外置滤镜需要先调用声明,再可以使用。 (1)源文件滤镜 MPEG2Dec 由dividee编写的读取DVD2AVI产生的d2v工程文件的滤镜,同时内建去除Noise的TemporalSmoother。 例:LoadPlugin(MPEG2Dec.dll) MPEG2Source(test.d2v) MPEG2Dec2 trbarry在MPEG2Dec的基础上进行了改进,支持P4的SSE2指令集。用文本编辑工具打开d2v,把iDCT_Algorithm=?改成5就可以了。速度很快,效果

21、也好,推荐P4 CPU的用户使用。 例:LoadPlugin(MPEG2Dec2.dll) MPEG2Source(test.d2v) MPEG2Dec3 在MPEG2Dec2的基础上再进行了改进,加入了Nic的图像后处理(PP),一定程度上可以减少Noise。好像除了P4的SSE2外,还加入了AMD的3D Now!优化,目前还在开发中,是个非常有前途的滤镜。 例:LoadPlugin(MPEG2Dec3.dll) MPEG2Source(test.d2v,CPU=4) # CPU=4就是开启了PP模式 (2)处理滤镜 ColorYUY2 颜色补偿:Kiraru2002编写的滤镜。由于经过编码

22、,得到的结果和DVD相比较,颜色有所改变,所以要对颜色进行补偿。 例:LoadPlugin(ColorYUY2.dll) ColorYUY2(0,10,0,10,0,0,0,0,0) ChangeFPS() 改变影片帧率,iphone一般来说支持最大30fps。 例:ChangeFPS(23.976) #改变影片帧率有几种数值 12、15、20、23.976、24、25、29.97、30这几种,一般来说不改变也行。 undot() 消除噪点,可以使用一个或多个,可以连在一起用,自己看效果体会。 无参数,直接加上就行了。undot滤镜是进行象素及细小噪点降噪,一般用来去除细小的、肉眼不容易察觉的

23、噪点,所以具体效果上并不明显。 例:加在其它滤镜后,使用多次。 LoadPlugin(UnDot.dll) DirectShowSource(test.avi) UnDot() LanczosResize(480,272) UnDot() 或者: UnDot().UnDot().UnDot().UnDot() 具体用暴风预览效果。 FluxSmooth() 柔化兼有降噪功能,比UnDot()作用要强些. 例:LoadPlugin(fluxsmooth.dll) fluxsmooth(5,7) 一般用这个默认(5,7) KenKunNR() KenkunNR是WarpSharp自带的降躁插件,具

24、体参数KenKunNR(threshold=1 to 3),数值越大,强度越大。 例:LoadPlugin(WarpSharp.dll) KenKunNR(threshold=1) deen() 降噪锐化功能. 用后画面就会比较干净,但细节都被抹杀. 视情况而用 例:LoadPlugin(deen.dll) #deen(c2d,2,3,3) 较轻 #deen(a3d,3,3,1,3) 较轻 #deen(c2d,2,6,6) 中等 #deen(a3d,3,6,1,6) 中等 #deen(c2d,2,10,12) 强力 #deen(a3d,3,10,1,12) 强力 SpatialSoften()

25、 空间轴柔化滤镜。基本参数3个,如SpatialSoften (4,8,8)第一个指柔化程度,数值不要太大,25之间,后2个是亮度域值和色彩域值,均为整数型数值,需要测试调节. TemporalSoften() 时间轴柔化滤镜。 例:Temporalsoften(2,3,3,mode=2,scenechange=6) #一般用这个参数就行了 Convolution3d() 3D柔化滤镜.参数一般动画用animeHQ,电影用movieHQ. 例: LoadPlugin(Convolution3d.dll) #转电影 Convolution3d(movieHQ) #转动画 #Convolution

26、3d(animeHQ) sharpen() 锐化滤镜:数值越大, 锐化效果越强. 例:sharpen(0.2) 一般取0.20.3 11 WarpSharp() 锐化滤镜: 主要改动depth,bump这两个数值 越下面的线条越细 例:LoadPlugin(WarpSharp.dll) #WarpSharp(depth=30,blur=2,bump=40,cubic=-0.6) #WarpSharp(depth=40,blur=2,bump=60,cubic=-0.6) #WarpSharp(depth=60,blur=2,bump=96,cubic=-0.6) #线条比上细,全屏的时候,明显

27、感觉出锯齿 12 mergechroma(blur(1.3) 模糊滤镜. 柔化滤镜可以参考一些自动生成的模板,如 # 1) little noise #Temporalsoften(2,3,3,mode=2,scenechange=6) #mergechroma(blur(1.3)#可以换成MergeLuma(blur(1.0) #FluxSmooth(5,7) # # 2) medium noise #Temporalsoften(3,5,5,mode=2,scenechange=10) #Convolution3d(moviehq) #FluxSmooth(7,7) # # 3) heav

28、y noise #Temporalsoften(4,8,8,mode=2,scenechange=10) #Convolution3d(movielq) #FluxSmooth(10,15) 可以使用其中的一套,使用具有处理效果的滤镜会增加压片的时间.片源不好就按需选用些.总之能尽量少用就少用,或者干脆不用. Blur(0,1)是模糊滤镜,设置了垂直参数可以消除些边缘刻痕 可以连续加载Blur(0,1).Blur(0,1) 可以结合MergeChroma 或者MergeLuma来使用,如MergeLuma(Blur(0,1)Blur(0,1)Blur(-1)就相当于锐化滤镜了 (3)交错滤镜

29、Decomb IVTC和Deinterlace滤镜:由Donald A.Graft编写,新增加的专门处理NTSC格式动画的mode=2,要和Avisynth2.05以上版本使用,不然速度会慢一倍。 guide 02,默认0, NTSC用1,PAL用2,可以提高IVTC准确度。 gthresh 0100,默认15,控制区分不同帧的程度。 post 默认true,用来处理IVTC遗漏的细节,使画面略微模糊。 threshold 0255,默认15,控制post的程度。 dthreshold 0255,默认9,控制threshold判定IVTC遗漏的程度。 blend 默认true,在交错画面用渲染

30、来替代填充。 chroma 默认false,在交错画面的亮度色度调整。 cycle 225,默认5,每n帧删除1帧,NTSC选5,PAL选25。 mode 02,默认2。 mode=0 对cycle里最相近的帧不进行处理。 mode=1 对cycle里最相近的帧进行处理,用于处理混合帧速。 mode=2 在一个很长的范围里进行帧对比,可以正确处理动画里由8帧或12帧复制为29.97帧的情况。 Threshold 默认0,控制mode=1时的处理重复帧的程度,Threshold默认100,控制mode=2时的处理重复帧的程度。 Quality 03,默认2,采样和色度的质量,与速度成反比。 但是最近的几个版本似乎都存在一个问题,就是处理后的画面有波动现象,并伴随影片里文字闪烁现象,所以还是用老版本的保险。 例:LoadPlugin(Decomb.dll) Telecide(Guide=1,Gthresh=50,Chroma=True,Quality=3,Post=false) Decimate(cycle=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1