Avisynth2.5 FAQ

来自NMM Doc
跳到导航 跳到搜索
可打印版不再被支持且可能有渲染错误。请更新您的浏览器书签并改用浏览器默认的打印功能。

S1: 关于 AviSynth:

本页翻译kaspa,校对/整理dgwxx。

Q1.1: 什么是 AviSynth?

A: AviSynth (AVI SYNTHesizer)是一款画帧处理器. 在Lukes homepage可以找到一个非常好的定义:

AviSynth 是一个由Ben Rudiak-Gould编写的非常有用的应用工具软件. 它为编辑视频提供了很多选择. AviSynth有如此独特的优点, 正是因为它不是一款只处理输出文件的孤立的程序. 事实上, AviSynth 就好比站在你的视频文件和应用程序之间的“中间人”.

基本上, AviSynth是这样工作的:首先,创建一个有特殊命令的简单的文本文件,叫做脚本. 这些命令涉及一个或者多个视频文件,和你想作用在这些视频上的滤镜.接着,运行视频工具, 比如 VirtualDub,打开这个脚本文件. 这个时候,这时AviSynth开始工作了. 它打开你在脚本里所指定的视频文件,运行你在脚本里指定的滤镜,将处理后的结果交给你所用的视频(编码) 工具. 然而你的视频工具不会察觉工作正在后台的AviSynth. 相反, 它会认为是正在直接打开一个在你的硬盘里已经滤镜作用过的AVI文件.

选择采用AviSynth的主要原因有以下五点:

  1. 连接视频文件: AviSynth 能让你连接任意数的视频影像, 包括.avi格式的片段. 你甚至可以选择性地连接某些视频段落, 或者配上音轨.
  2. 使用滤镜: AviSynth内置了很多视频处理滤镜, 例如, 调整大小, 裁剪, 和使影像变得清晰明亮.
  3. 突破2GB的限制: AviSynth是把视频提供给执行程序, 而不是让程序直接去打开该视频. 正因如此, 我们就可以在那些不支持2GB以上文件的程序里使用AviSynth来打开这些大文件了.
  4. 打开不支持的格式: AviSynth 可以打开几乎所有类型的视频, 包括MPEG和Quicktime MOV. 当AviSynth将视频交给程序的时候, 对程序而言, 就好比是在打开一个普通的AVI. 这样你#就可以在程序里打开某些原本不被支持的视频格式了.
  5. 节省磁盘空间: AviSynth是生成一个“虚假”的视频来提供给程序的, 不会产生临时或中介性质的视频文件. 所以,它会为你节省磁盘空间.

Q1.2: 谁在开发AviSynth ?

A: AviSynth (直到 v1.0b版) 是由Ben Rudiak-Gould开发, 请看http://math.berkeley.edu/~benrg/avisynth.html. Ben 停止开发后, Edwin van Eggelen 继续开发工作, 请看 http://www.videotools.net/uk/download.php. 在Edwin的主页上可以找到他最新释出的 v1.0b6 版.

在 AviSynth 的论坛里也有一些其他版本, 比如Divine的v1.0b7aDividee的v1.0b7d.

第二次修订完善的计划是在2002年7月初.(译注:其成品就是现在使用的v2.x版). 目前最新的版本是V2.54, 不过在这里也可以找到更近的版本. 更多文档信息请参照[[AviSynth:FAQ#Q1.5|]].


Q1.3: 我在哪里能下载到最新版本的AviSynth ?

A: 请看 Q1.2.DVD2SVCD 软件包也包含了AviSynth 和在Doom的下载页面也能找到. (这些或许不是最新版的AviSynth).


Q1.4: 当前版本的主要缺陷是什么?

A: 最新版本:

v1.0b5: Dissolve() 不工作, BicubicResize() 工作不正常. v1.0b6: ? v1.0b7a/v1.0b7d: Dissolve() 不工作. v2.01: ? v2.02: Layer()MergeChroma() 不工作. v2.05:当打开无声剪辑的时候 Loop 不工作. v2.07/v2.50:如果没有删除最后一段空白部分,SegmentedAviSource() 不会读取AVI.

v2.50 beta; AviSynthTwoFiveZeroBugs. v2.51 beta; AviSynthTwoFiveOneBugs. v2.52; AviSynthTwoFiveTwoBugs.

其他缺陷可以看修订计划的页面上的文件, 请看 [[AviSynth:FAQ#Q1.5|]].


Q1.5: 我在哪里可以找到关于 AviSynth的文档?

A: 关于AviSynth滤镜的文档可以在http://www.avisynth.org/找到. 至于AviSynth脚本编写的教学可以看入门. 在论坛发贴前请先看这些文档!(不过要是关于理解上的问题还是可以发贴的).


Q1.6: 我怎样安装/拆卸AviSynth?

A: 在 v2.05 或其他更旧的版本下: 复制avisynth.dll到你的system/system32 目录并运行 install.reg(文件). 从v2.06开始, AviSynth已经可以执行自行安装. 请先确认在你的硬盘里还有没有其他版本的AviSynth. 因为只有一个版本会被添加进注册表. 如果有必要, 请先删除它们. 如要拆卸 AviSynth,请到开始菜单中的“程序”->“AviSynth 2”,选择“Uninstall AviSynth”.


Q1.7: v1.0x, v2.0x or v2.5x这些版本之间有什么不同呢?

A: 所有 v1.0x 和 v2.0x版都是相互兼容的 (主要的区别在于 v2.0x版 不包含IPCSource, 及包含了一些 v1.0x版没有的滤镜). 至于v2.5x 版的主要区别就在于AviSynth的内部结构已经改变(支持了YV12 和多通道(multichannel)), 也正因为如此, 兼容v1.0x 或 v2.0x版的外部滤镜将不会在v2.5x版下工作, 反之亦然.


Q1.8: v2.5x 的插件是否兼容v1.0x/v2.0x,反之呢 ?

A: 正如 [[AviSynth:FAQ#Q1.7|]] 所解释的. 不过, 在V2.5x下使用 v1.0x/v2.0x 的插件还是有可能的, 参阅 [[AviSynth:FAQ#Q1.5|]].


Q1.9: 哪款编码程序支持 YV12 ?

A: 要编码DivX/XviD,有很多选择:

  1. VirtualdubMod支持 YV12:该版本 (由 pulco-citron, Suiryc 和 Belgador开发) 支持OGM和预览AVS. 下载请到这里. 要想直接使用 YV12, 而不作任何色彩转换,你需要用VirtualdubMod 来读取avi以及选择fast recompress的选项.
  2. VirtualDub从V1.5.6版开始支持 YV12. 要想直接使用 YV12, 而不作任何色彩转换,你需要用Virtualdub 来读取avi以及选择fast recompress的选项.
  3. 为了方便快捷使用YV12, 你也可以尝试新出的命令行编码工具: AVS2AVI, 参阅 [[AviSynth:FAQ#Q1.21|]].

Q1.10: 如果所用的编码器不支持 YV12(例如 Virtualdub, TMPGEnc 或 CCE SP),我该如何使用 v2.5x?

A: 使用Virtualdub的话, 你一定要在脚本里添加ConvertToYUY2()或者是安装一个支持YV12的解码器, 例如Divx5或其中的一个Koepi’s XviD (XviD-04112002-1或更新版本). 选择fast recompress意味着会进行一个 YV12 --> YUY2 --> YV12的转换. (DivX3/4 也支持 YV12, 遗憾的是,P4 用户在使用YV12 编码Divx4时可能会出现系统崩溃.)

使用TMPGEnc的话, 你要在脚本里加入ConvertToRGB24(). 另外, 使用 CCE SP时, 你需要在脚本里添加ConvertToYUY2() , 这是因为Windows没有内部的YV12压缩器(compressor). 你也可以安装 DivX5 或Koepi’s XviD(XviD-04112002-1或更新版本) 来使TMPGEnc or CCE SP 支持YV12的avi.


Q1.11: 在 Gordian Knot里我该如何使用 AviSynth v2.5?

- 如果你使用的是 GKnot 0.26, 你将要把mpeg2dec3.dll (AviSynth v2.5的插件)重命名为mpeg2dec.dll, 此外要将virtualdubmod.exe 改名为 virtualdub.exe (注意保留好原文件).

- 如果你使用的是GKnot 0.27, 你可以按照上面的步骤去做, 或者你可以在选择菜单里将“使用mpeg2dec.dll”设为“使用mpeg2dec3.dll”, 然后将 virtualdubmod.exe 重命名为 virtualdub.exe.

- 还可以试一下 GKnot 0.28.

如果你在使用 VirtualdubMod 1.4.13.1 或者更旧的版本时遇到困难, 请下载最新释出的版本.


Q1.12: 使用YV12来进行处理/编码有什么优势?

A: 有两点优势:

  1. 提高速度:

这完全取决于你所使用的外部插件是否支持YV12. 如果插件支持YV12, 就可有望提高25%-35%的处理速度. 可以肯定地说, 如果你的片源和目标成品都是在YV12的情况下, 处理速度将会大幅提高. 比如说DVD转换成DivX/Xvid.

  1. 无须转换色彩:

由于无须经常性地转换色彩, 色彩还原得更真实. 即使在你不得不转换色彩(如使用CCE SP或 TMPGEnc 编码时), 你仍可以推延YV12->YUY2 (或是 RGB24 for TMPGEnc) 的转换, 直到你的脚本完成IVTC 或者 Deinterlace 以便生成无交错(progressive) 帧为止. 在无交错帧上做YV12 -> YUY2 转换会比在 交错(interlaced) 或 基于场的(field based) 帧上做时保留更多的色彩浓度细节.

Q1.13: 是否有一个命令行工具使用Avisynth来编码DivX/XviD的呢?

A: 如在 [[AviSynth:FAQ#Q1.9|]] 里解释的, 有一个叫AVS2AVI (和 AVS2AVI GUI)的命令行编码器可以直接使用AviSynth来编码DivX/XviD.


Q1.14: 我在哪里可以找到 VCF2AVS ?

A: VCF2AVS 是一款不错的VCF->avs 转换工具. 你可以在Virtualdub下编辑(剪辑, 裁边, 调整大小)截取的视频. 然后编辑生成的avs文件. 需要注意的是VCF有两个不同的版本的:

  • VCF2AVS by Darksoul71 在这里可以找到.
  • VCF2AVS by BB (功能相对简单些) 可以在这里找到.

分别试用一下看哪款适合你的需求 :)

Q1.15: 在v2.5x下我该如何使用v2.0x的插件? ?

A: 在 WarpSharp-package for AviSynth v2.5x 软件包里可以找到一个叫"LoadPluginEx.dll"的插件. 要是使用旧版本的LoadPluginEx.dll时候, 不要把这个插件放到插件的目录里, 而是放到额外的一个目录下. 否则VirtualdubMod 和 WMP6.4 会在退出的时候出现错误. 此插件可以让你在V2.5x下使用v2.0x的插件. 参考脚本(以v2.0x的”Dust”插件为例子):

LoadPlugin("C:\Program Files\avisynth2_temp\plugins\LoadPluginEx.dll") LoadPlugin("C:\Program Files\avisynth2_temp\plugins\dustv5.dll") AviSource("D:\clip.avi").ConvertToYUY2 PixieDust(5)


Q1.16: 怎样才能转接使用不同版本的 Avisynth 而无须重新安装呢?

A: 你可以使用这里的AvisynthSwitcher. 自带 2.08 和 2.50 版本, 不过你也可以随时在以下目录里添加新版本的AviSynth, AvisynthSwitcher\versions\Avisynth 2.x.x. 这里还有一些其他方法.

Q1.17: 怎样创建 AVS文件?

A: 请参阅 [[AviSynth:FAQ#Q1.19|]] (使用你喜欢的文本编辑器).


Q1.18: 我的 AVS文档保存在哪里?

A: AVS文档可以保存在你硬盘上的任意地方.


Q1.19: 如何知道我用的是哪个版本的AviSynth ?

A: 打开一个文本编辑器, 比如说”记事本”.写入以下命令

Version

然后保存为后缀是.avs的文件. 例如脚本保存名为version.avs (注意文件后缀是.avs而不是.txt). 用可以播放AVI文件的播放器(如WMP6.4)打开该脚本. 这样就会显示AviSynth的版本号了.


Q1.20: AviSynth有GUI吗 (Graphical User Interface,图形用户界面)吗?

A: 有多款很棒的工具供您选择:

  • VirtualdubMod, 参阅 [[AviSynth:FAQ#Q1.9|]]. 加入了几项支持AviSynth的快捷方式:
    • 'Open via AVISynth' 命令. 该选项会自动生成一个适当的脚本, 从而允许你打开任何与AviSynth兼容的视频文件.
    • AVS 编辑器 (热键 Ctrl+E): 打开你的AVS 然后在”工具(tools)”选项下选择”编辑脚本(script editor)". 进行编辑, 然后F5可预览视频.
  • AvisynthEditor, 这是一款高级的脚本编辑器, 其包含有高亮语法, 自动完成编码(指生成脚本)和各版本插件的定义文件. 这里有截图. 你可以从这里找到它. 在Doom9论坛有相关讨论.
  • AVSGenie: AVSGenie 允许用户直接从下拉列表或弹出的对话框中选择使用一个滤镜, 可以看到一个带有指引的参数编辑界面. 当打开预览窗口会出现"片源(source)" 和 "目标(target)". 片源窗口输出脚本第一行指定的文件, 基本上只是打开一个视频文件. 目标窗口会输出已执行处理过的脚本. 由此可以很容易地看到经过滤镜处理后的效果. 指代片源窗口的命令行也可以更改. 这里有相关的讨论.

Q1.21: 为何我得到以下提示 "LoadPlugin: unable to load "xxx" is not an AviSynth 1.0/AviSynth 2.5 plugin(无法加载XXX, 不是Avisynth插件)” ?

A: 意思是所使用的插件与当前AviSynth版本不兼容. 请看 [[AviSynth:FAQ#Q1.8|]].


Q1.22: 在我的AVS脚本里, 怎样知道我在某个位置上使用了哪个色彩空间?

A: 想要查看你脚本的指定位置里使用了什么色彩空间(colorspace) , 添加如下:

Info

... AviSynth就会显示出色彩空间和其他一些相关的信息!


Q1.23: 我已经安装了 AviSynth v2.5 和 DivX5 (或者最新版本的Koepi’s Xvid), 可为什么当我使用Virtualdub/VirtualdubMod/CCE/TMPGEnc来打开AVS文档的时候只出现一个黑屏?

A: Ok, apperently your video is not decompressed by DivX5 (or XviD).Go to your windows-dir and rename a file called MSYUV.DLL, or add the following to your registry file: A: 这是因为DivX5 (或 XviD)无法解码你的视频. 去你Windows的目录下, 寻找和重命名一个叫MSYUV.DLL 的文件, 或是在你的注册表里添加以下信息:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32] "VIDC.YV12"="divx.dll"

使用XviD时应将”divx.dll”改为"xvid.dll".


Q1.24: 当我用任意编码器进行二次编码的时候, 我的电脑会随即时死机?

A : AviSynth (尤其是V2.5x版) 是经过高度优化的. 所以有可能在二次编码的时候出现死机的情况. 遇到这种情况, 可以试一下用 Prime95 进行一个小时的运行压力测试, 由此来看出你的系统是否稳定.如果无法通过该测试或是出现电脑系统自动挂起了, 请确认你的电脑没有进行超频和尝试以5MHz为间隔来调低CPU的总线频率, 直到不再出现死机的情况为止.


Q1.25: (每当退出预览 avs文档时) VirtualdubMod, WMP6.4, CCE 和其他程序会出现程序错误?

A: 如果在你的插件目录下使用了旧版本的 LoadPluginEx.dll (或 WarpSharp.dll) 就会出现这种情况. 解决的办法是把该文件移出插件目录和手动地去加载它. 希望该插件的开发者知道这种情况…

Q1.26: 是否有一些无损的YV12编码器可以用于视频捕捉?

A: 有几款这类编码器:

  1. VBLE codec (by MarcFD): 一个基于huffyuv的编码器
  2. LocoCodec (by TheRealMoh)
  3. MJPEG codec: 会在视频的右上角留下一个小图标.