IsaacZ 发表于 2009-2-13 00:31:44

AVS(AviSynth)工作原理浅析、工作流程图解

前几天 chende99 网友发了一篇求助帖子“ TMPGEnc 4.0 XPress在编辑MPG和VOB时。无法加载SSA字幕? ”经过一番测试和讨论后,得出结论:小日本4解码MPG和VOB时无法加挂字幕滤镜,要想不换软件为MPG加字幕,必须通过AVS中转。已经完成的教程在这里:[教程] 【原创】通过 AVS 脚本调用 VOBSUB 滤镜,在 TE4XP 中为 MPG 文件挂字幕图文教程。

通过进一步测试,发现小日本4中,只有RMVB和MKV格式的视频可以成功外挂字幕,其他多种格式都不行,于是AVS的学习必须提上日程了。
(因为其他格式小日本都有专用阅读器,只有这RMVB和MKV两种格式必须用DirectShow滤镜,于是VOBSUB自然发生作用。)


鉴于许多菜鸟网友对于AVS这种软件还很不熟悉,特别是对于它的工作原理感到费解,影响了对这一强大工具的使用,特此把新近琢磨出的一点儿心得和大家分享一下,有理解不到位之处,欢迎老鸟批评指正。


IsaacZ打算通过几个问答帮助大家了解AVS的工作原理:

什么是AVS?
AVS 是 AviSynth 的缩写,而 AviSynth 又是 “AVI Synthsizer” 的缩写,意思是 “AVI 合成器”。
什么是“合成器”呢?

请参考帖子:[原创] 视频的“分离”与“合成”、“编码”与“解码”浅析

我需要单独安装 AviSynth 软件吗?
不必单独安装AVS,一般的编解码器集成包(如完美解码)均包含这个组件。
安装AVS软件后,开始菜单中找不到可执行的程序?
安装AVS软件后,会发现开始菜单中并未出现可以直接运行的程序快捷方式,而是给了几个网页链接,还都是英文的,很难懂。这些是一些AVS实用说明文档,还有一些范例文件。我们可以不管它们,直接根据网上的教程学习编写AVS脚本文件即可。当然,如果你英文和耐心都足够好,也可以研读一下这些文章和范例。
怎样使用AVS?
通过AVS提供的教程和范例,我们先编写AVS脚本,保存成“.avs”格式文件,然后直接用视频播放软件或者视频编码软件来处理这个AVS脚本文件。
AVS文件包含哪些内容?

在一个AVS文件中,可以定义n多东西,作为菜鸟来说,我们只需要学会定义两个内容就够了:
1、用AVS来处理的视频源文件
2、处理源文件需要调用的解码器或滤镜的名称。
一个典型的AVS文件的内容如下: Loadplugin(“d:\avsplugin\vsfilter.dll”)
Directshowsource(“d:\test.avi”)
Textsub(“d:\test.srt”)
怎样编写AVS文件?
直接用记事本就可以创建和编辑AVS文件,只需要掌握一些常用语句并理解其意义。很多时候,我们推荐菜鸟网友直接复制教程中的现成脚本语句到自己的脚本文件,然后稍加修改再保存即可。
有没有编写AVS文件的辅助工具?手写AVS脚本实在是太难了!

有的。点拨论坛有一款EasyAVS可以使用。界面十分简单,一共3个标签,第一个标签定义源文件和外挂字幕,第2个标签定义需要的其他滤镜,第3个标签“编辑”中直接就可以看到脚本已经被自动生成了。可以方便地预览效果、保存和另存为AVS文件。

https://www.dianbo.org/data/attachment/forum/201408/02/225759mdmdfw1mieq1y1id.jpg

https://www.dianbo.org/data/attachment/forum/201408/02/225759lbgsdsdddvtkgelz.jpg   

AVS 的工作原理和流程是怎样的?

AVS 这个软件的类别属于 FrameServer,意为“帧服务器”,因为它起到的功能是一个“中转站”的作用,所以也有人借用网络通信上的名词称之为“帧中继”或“帧传送”软件。它的具体工作原理是这样的:



[*]安装了AVS以后,AVS会自动在系统内部关联已经注册的分离器、解码器等滤镜,一旦一个AVS文件被视频播放软件或视频转换软件载入,则AVS文件中定义的所有操作被自动激活。
[*]首先AVS调用分离器对片源进行分离;
[*]然后AVS调用音频解码器和视频解码器对分离出来的音频流和视频流进行解码,这时AVS中定义的各种滤镜生效,产生我们希望产生的一切效果,比如加挂字幕。
[*]解码后的音频流和视频流被AVS重新编码并合成为一个虚拟的AVI文件,并以即时帧的方式传送给播放软件或是视频转换编码软件。


要点:AVS软件的所有操作都是在内存中完成的,尽管它是一个“合成器”,但它并不在硬盘上产生真实的AVI文件,而是在内存中一边合成一边传送,直接将视频流传送给了播放或编码软件。

apsiooavk 发表于 2009-2-13 16:26:50

{:2_42:}

好呀,期待楼主的教程……

IsaacZ 发表于 2009-2-16 11:48:46

基本上算是写完了,请大家看看,不当之处,欢迎指正!

apsiooavk 发表于 2009-2-16 13:41:22

本帖最后由 apsiooavk 于 2009-2-16 13:44 编辑

:hug:

已经写完了嘛!
我个有觉得管理员是不是再加些常用滤镜的用法呢?
或是滤镜的本身的涵义呢?

应该就会更完美了……

IsaacZ 发表于 2009-2-16 16:03:20

嗯,可以再添加一个问题,AVS脚本中常用的滤镜有哪些?

apsiooavk 发表于 2009-2-16 16:38:39

本帖最后由 apsiooavk 于 2009-2-16 16:53 编辑

嗯,可以再添加一个问题,AVS脚本中常用的滤镜有哪些?
IsaacZ 发表于 2009-2-16 16:03 http://bbs.dianbo.net/images/common/back.gif

最重要的是这些滤镜基本用法是怎样的?

IsaacZ 发表于 2009-2-16 17:10:03

嗯,会介绍的。

IsaacZ 发表于 2009-3-4 23:21:26

今日将图片更新一下,澄清“滤镜”的概念。

jxmar62 发表于 2010-3-5 11:25:00

谢谢楼主,滤镜基本用法是怎样的?

IsaacZ 发表于 2010-3-5 12:37:12

滤镜不以单独的可执行文件存在,只为编码程序所调用,有些可单独设置参数。通常只要安装上就可以了。
页: [1] 2
查看完整版本: AVS(AviSynth)工作原理浅析、工作流程图解