《[NMM]Avisynth 2.5语法及滤镜详解》.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《[NMM]Avisynth 2.5语法及滤镜详解》.doc

语法/doc/%E8%AF%AD%E6%B3%95 所有基本的Avisynth脚本声明都符合以下的某种形式。 变量名?=?表达式 表达式 return?表达式 (也存在两种更高级的结构 -?函数声明和try..catch声明) 第一种情况,计算表达式的结果,赋给变量名。第二种情况,计算表达式的结果,如果类型是Clip,则赋给一个特殊的变量last。第三种情况,计算出的表达式成为活动脚本的“返回值”——可以是一个函数的“返回值”,也可以是整个脚本的“返回值”。在之后会提到的情况里,返回值往往是可以由打开AVS文件的应用程序看到的视频。简单的说,如果一个表达式中有关键字return,它就会成为一个脚本(或一个脚本block)的结束声明语句。 绝大多数时间,表达式的结果是一个视频Clip,但实际上表达式的结果可以是本脚本语言支持的任何类型(Clip、整数、浮点、布尔、字符串),而且是靠像内部脚本函数这样的模块运算的。 一个表达式有如下的一种形式: 数字常数、字符串常数或布尔常数 变量名或Clip属性 函数(参数) 表达式.函数(参数) 表达式1?运算符号?表达式2 布尔表达式???表达式1?:?表达式2 第一种情况,表达式的值就是常数的值。第二种情况,值和Clip属性或语法:脚本变量有关(之前必须经过初始化)。第三种情况,值是AVS函数的返回值(见下文)。第四种情况,是一个替代的写法,(成为“OPP记号”),和函数(表达式,参数)等价。 最后两种情况,可以使用普通的算数和逻辑运算符号(来自C)操作表达式,计算整数、浮点和布尔,甚至使用三重符号的条件执行语句。字符串可以用相关运算符号比较,也可以用“+”合并。以下的运算符号也对视频Clip有定义:a + b等价于Splice(a,b),a ++ b等价于Splice(a,b)。 Avisynth脚本语言中大部分的函数是视频滤镜。尽管函数可以是它选择的任意类型(这个特性对创建在脚本中重复使用的模块代码很有用的特性,你可以定义自己的脚本函数),但是不返回一个Clip的函数的作用往往被局限在中间变量的处理,用来给滤镜传递变量。脚本最终应该返回一个Clip。总之,Avisynth是一个视频处理程序。 函数可以有60个参数(希望足够了),而且可以返回任何Avisynth支持的类型(Clip、整数、浮点、布尔和字符串)。函数一般计算出一个新值,而从不会更改已经存在的值。这就意味着函数所有的参数都是“按值”传递的而不是“按参考 - By reference”传递的。在Avisynth脚本语言中,为了改动一个值应该首先去赋一个新的值。 参考内部滤镜一节,学习调用内部滤镜函数的语法。同样也有内部函数,对非Clip变量进行运算。 参数是一个由逗号分开的函数参数列表,可以留空。每个参数必须是一个匹配函数所期望类型的表达式(比如文本字符串、整数、浮点/小数、布尔值或Clip)。如果函数期望第一个参数是Clip类型,而且没有提供这个参数,那么Clip会使用last这个特殊的变量。 Avisynth函数可以使用有名字的参数。有名字的参数能以任意顺序给出,滤镜也会给未指定的参数选择默认值。某些滤镜因此用起来很简单。比如你可以这样写: Subtitle(Hello, World!, text_color=$00FF00, x=100, y=200),而不用写成Subtitle(Hello, World!, 100, 200, 0, 999999, Arial, 24, $00FF00)。颜色可以像上面的例子里,以十六进制或十进制的数给出。两种情况下颜色都应该用RGB值,即使Clip本身是YUV的。 如果没有给函数传递函数,还是可以不需要括号就调用函数的。比如:函数名。作这种保留的主要原因是考虑老脚本的兼容性。但是当没有混淆的时候,不写括号也很方便。 Avisynth忽略每行#后面的任何字符。这个功能能用来在脚本中添加注释。 # Comment(注释) # 块注释: /* comment 1 comment 2 */ # 嵌套注释: [* [* a meaningful example will follow later?:) *] *] Version() __END__ ReduceBy2() Result is not reduced and we can write any text here Avisynth忽略大小写:aViSouRCe和AVISource等效。 单行之内复合的Avisynth声明只能以OOP记号书写或作为参数内嵌在其他函数内,比如: AviSource(c:\video.avi).Trim(0, 499) -或- AudioDub(AviSource(c:\video.avi), W

文档评论(0)

wyth + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档