- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
VCB-Studio教程07:AviSynth基础与入门
0.前言
这篇教程需要教程6:VS基础与入门作为前置
尽管avs早于vs存在了十几年,上手写一个helloworld级别的脚本也比vs容易,但是avs混乱的参数传递机制,使得想深入学习avs的使用,比vs其实来的困难。本教程假定你通过vs教程,已经对变量、参数传递等有了最基本的认识,这样,当我们讨论avs特有的一些机制的时候,不至于从零开始。
AviSynth主页和文档:http://avisynth.nl/index.php/Main_Page
AviSynth+主页和文档:/
在线词典:/
avs目前最新版是avs2.6.0,只有32bit;
avs+是avs的一个改良mod,优势在于,有官方64bit版本。
尽管以vcb-s对于avs+的使用,全局64bit化是可行的,但是因为懒,所以直到转vs之前,vcb-s一直使用32bit版本的avs。如果你希望使用64bit的avs,建议使用avs+。
有vs的存在,avs的意义不是很大,至少作为定位高质量、复杂处理的压制,vs优秀的内存管理机制、原生的多线程优化,和各种新科技滤镜,让它对比avs已然优势明显。但是vcb-s系列教程依旧讲述avs,因为很多以前的教程和脚本是基于avs的,我们需要保证大家能理解并继承上个时代的智慧结晶。
1.简单的avs脚本
以下是一个简单的脚本,以YUV420P16的格式读入一个mkv,并转为RGB32显示:
SetMemoryMax(1000)
a=00000.mkv
LWLibavVideoSource(a,format=yuv420p16,stacked=true)
dither_convert_yuv_to_rgb(chromak=lanczos,taps=4,noring=true,lsb_in=true)
avs原生不支持多线程,但是支持设置最大使用内存。这里我们用setMemoryMax()来设置最大使用1000MB。
除了系统设置(比如setMemoryMax),avs的主要内容一般由两种语句构成:赋值句和输出句。
赋值句的含义和vs的赋值句大致相同,表现为变量=表达式的结构。比如a=00000.mkv就是一个赋值句。
avs的函数不再有各种域,只要载入了,直接就可以用。avs的函数一般来自两种地方,第一种是滤镜原生dll,第二种是写好的库,后缀名为avsi。这两个种文件一般放在avs根目录的plugins文件夹内,这样avs就可以自动载入。
输出句,表现为直接将表达式作为一行,比如:
LWLibavVideoSource(a,format=yuv420p16,stacked=true)
dither_convert_yuv_to_rgb(chromak=lanczos,taps=4,noring=true,lsb_in=true)
这两句就是两个输出句。
avs中,随时随地维护一个叫做last的clip,这个clip要么为空值,要么记录上一个输出类型为clip的输出句,输出的结果:
SetMemoryMax(1000)-这句是系统设置,不产生last
a=00000.mkv-这句是赋值句,不产生last
LWLibavVideoSource(a,format=yuv420p16,stacked=true)-这句结束后,last为lwlvs载入的YUV视频
dither_convert_yuv_to_rgb(chromak=lanczos,taps=4,noring=true,lsb_in=true)-这句结束后,last为dither_convert_yuv_to_rgb转为的RGB24
虽然语法上,avs允许输出句输出非clip的类型,但是last并不会去记录。一般而言,也没有必要写出非clip输出的输出句。
avs结束的时候,输出最后一个输出句的结果,相当于输出last。如果last为空(全程没有一个clip类型的输出句),返回效果是NotaClip的报错信息。
2.AVS函数的调用和参数传递
无论是赋值句,还是输出句,avs进行运算主要也是通过函数进行的。函数的调用,以及参数的传递,跟vs有类似性。比如我们看LWLibavVideoSource的doc:
LWLibavVideoSource(stringsource,intstream_index=-1,intthreads=0,boolcache=true,intseek_mode=0,intseek_threshold=10,booldr=false,intfpsnum=0,intfp
您可能关注的文档
- [VCB-Studio][教程26]YUV和RGB互转手册(2).docx
- Cipherlab_RK25_Mobilcomputer_Aussendienst_EN_Part1使用操作说明书手册.pdf
- Gryphon_GD_GM_GBT_4100_LGD4300_EN操作说明书手册.pdf
- AFIN-801_使用操作说明书手册.pdf
- Intermec_SR31T_EN使用操作说明书手册.pdf
- 74443-74444-LX3000e-User使用操作说明书手册-EN.pdf
- Cipherlab_RK25_Mobilcomputer_Aussendienst_EN_Part2使用操作说明书手册.pdf
- 21.施耐德伺服驱动-LXM32产品目录.pdf
- QuickScan_QD2300_EN操作说明书手册.pdf
- AfiniaLabel-L901-User使用操作说明书手册.pdf
- 临床试验项目进行中妇女妊娠事件报告范本.doc
- 临床试验相关常用英文缩写.doc
- [VCB-Studio][教程06]VapourSynth基础与入门.docx
- [VCB-Studio][教程11]编码器参数研发方法.docx
- [VCB-Studio][教程19]AVS的多线程优化-MPP的使用.docx
- 药品研发与技术审评沟通交流办法.docx
- 生物制品注册分类及申报资料要求(试行).docx
- [VCB-Studio][教程10]x265 2.9参数设置.docx
- [VCB-Studio][教程27]8bit 低码率制作技巧.docx
- BSR-用户操作说明书手册-Datalogic-AV500-AV900-leistungsstarke-2D-Imager-EN.pdf
文档评论(0)