蜗牛的壳 - 插件
type: channel
link: https://snailium.net/tag/%E6%8F%92%E4%BB%B6/
items: 后期AVS教程(1)

后期AVS教程(1)
type: item
date: 2006-10-03T20:33:25-04:00
description: 1 、初识AVS首先必须明确，AVS是什么东西？AVS的全称是AviSynth。还记得用VDM内嵌字幕的时候是怎么做的吗？先打开片源，然后挂字幕，最后送到编码器压制。所以说到最后，VDM的工作就是给编码器提供带有字幕的视频。AVS的功能也是差不多，就是输入源视频，输出处理过的视频。AVS的处理过程全部保存在AVS文件里。对于AVS文件，我们可以把它当作是视频文件，因为安装好AviSynth以后，AVS文件可以像AVI那样被VDM打开，甚至能被播放器打开。AVS文件中包含的是处理信息。先举个简单的例子。比如之前的用VDM内嵌字幕，现在改用AVS内嵌字幕。VDM启动的时候自动加载字幕插件，先打开片源，然后添加字幕插件。用AVS的话就可以这样写：（文件名自己改）[code] loadplugin("c:\vsfilter.dll") avisource("c:\1.avi") textsub("c:\1.ssa") [/code]我来解释一下，第一句中的loadplugin()意思是加载插件，括号里面就是插件的名字。在VDM里面启动时会自动加载插件，AVS中要手动写这一句。vsfilter.dll是字幕插件的名字。然后是avisource()，这个是加载AVI的功能，就像VDM中的打开文件。textsub这个功能本来AVS没有，是加载完vsfilter.dll这个插件以后才有的。就像是VDM在没有加载字幕插件的情况下在Video->Filter里面不会出现textsub这个东西。textsub()括号里面的是字幕文件的名字。以上内容用记事本写好，保存的时候在文件名后面加上“.avs”。然后这个AVS文件拿去用播放器打开试试，播放出来有字幕的影片了吗？这样还只是出来一个AVS文件而已，字幕并没有真正跑到影片里面去。刚才看到的是AVS输出的画面，只要把这个画面拿去压制就可以出来有字幕的文件了。可以使用VDM进行压制。在VDM打开文件的时候，直接选择AVS文件，然后不要再挂字幕了，设置好以后送去压制就可以了。2 、特效的内嵌AVS强大的功能还不止这一点，现在再介绍复杂一点的AVS操作。比如特效，字幕组的人经常会把特效制作成AVI格式或者字幕格式。如果是字幕格式，那好办，用AVS就这样写：[code] loadplugin("c:\vsfilter.dll") avisource("c:\1.avi") textsub("c:\1.ssa") textsub("c:\tx.aas") [/code]和刚才相比，就多了一句，再加载一次字幕而已。如果是AVI的特效，比如是片头，就是去掉原来动画片的片头，把这个AVI塞进去充当片头。就是说用AVI里面的内容替换片源的内容。先要找到片源中要替换的部分的位置。这个用VDM操作。用VDM打开片源，拖动下面的滚动条找到片源中要替换部分的开头，这里的开始位置就是361，记住这个数字。然后用同样的方法找到结束位置，这里找到的是2519。再把滚动条移动到最后面，找到总帧数，这里是35963。然后找出那个AVI特效。这里假设片源是c:\py.avi，字幕是c:\zm.ssa，特效是c:\tx.avi。[code] loadplugin("c:\vsfilter.dll") py=avisource("c:\py.avi",audio=false).textsub("c:\zm.ssa") tx=avisource("c:\tx.avi",audio=false) py.trim(0,360)+tx+py.trim(2520,35963) [/code]这个AVS会相对比较复杂。解释一下：[code] loadplugin("c:\vsfilter.dll") #加载字幕插件 py=avisource("c:\py.avi",audio=false).textsub("c:\zm.ssa") #加载片源并挂字幕 tx=avisource("c:\tx.avi",audio=false) #加载特效 py.trim(0,360)+tx+py.trim(2520,35963) #用特效代替片源中的部分 [/code]和前面相比，又多了一些东西。在加载片源语句中，多了一个audio=false，这个的意思是加载片源的时候不加载音频。以此类推，加载特效的时候也没有加载音频。音频的话可以在最后压制好再混合。这样就直接在AVS里面禁掉了音频，不用在VDM里面选audio->No audio了。加载语句的后面跟了一个点，然后是加载字幕。点的作用是分割，意思是加载好片源以后紧跟着挂字幕。为的是写在同一行。写在同一行的理由在这一行的开头，就是那个py=。它的意思是这一整行出来的结果用py表示。下面的也是，特效加载好以后用tx表示。接…