视频处理工具的安装和调试

本教程讲述如何安装并调试 avisynth+, avspmod, VapourSynth, VapourSynth Editor, MeGUI

教程主要来源于littlepox@vcb-s.com
教程中提供官网链接,同时我提供一份百度链接方便下载。
http://pan.baidu.com/s/1cqM7aI

1.avisynth+ 和avspmod 的安装

avisynth是一直以来滤镜处理的传统工具,后来分裂成avisynth 2.6.0(简称avs 2.6) 和avisynth+(简称avs+),两者大同小异。本系列教程如无例外,均以avs+ 32bit为准。

avs+只允许标准安装,不像avs 2.6允许标准安装和绿色安装,容易造成版本和滤镜目录的混乱。

SVP(Smooth Video Project)依赖avs运行。所以如果你需要使用svp,不建议你重新安装avs+。

安装avisynth+之前,先去控制面板-程序,找到之前所有的avs版本,卸载。

如果卸载完了有弹窗问你是否要保留滤镜目录,选否。

然后安装avisynth plus的本体:

https://github.com/AviSynth/AviSynthPlus/releases/download/Rel-r1576/AviSynthPlus-r1576.exe

Language选English。

安装目录,千万记好你装到哪里。

随后的安装选项,你可以根据你的需要选择32bit(x86)还是64bit(x64),一般情况下推荐只安装稳妥的32bit,毕竟avisynth官方没有64bit版本,一些组合滤镜也很难把所有插件找齐64bit版本:

32bit的avs,一般被32bit的自行环境启动,比如说32bit的播放器,32bit的x264。如果要想让64bit的编码器读取32bit的avs,则要借助avs4x264.exe这样的pipe工具。

同理,64bit的avs只能被64bit的环境自动启动。如果你装了32bit的avs,而你的播放器是64bit环境,那么播放器是无法打开avs的。

avs脚本是一种编程语言。一般后缀就用.avs,通过安装的avisynth环境(最核心的是avisynth.dll,一般非绿色安装的时候会丢system32/syswow64)来将脚本转化为视频和音频,以模拟一个avi文件。

最简单的avs脚本大概算是AviSynth+Examples目录下的Version.avs:

Version()

这个函数的作用就是输出当前安装avs的版本。

如图,avspmod就可以显示avs文件想要表达的内容,这里显示的是版本。

avs的运行依赖大量插件,一般推荐把插件放在自动加载的目录中。avs+的自动加载目录为根目录下的plugins(64bit则为plugins64)。你也可以放在plugins+/plugins64+中,都没有关系。

附件中的plugins.7z是我个人积累的滤镜,不保证最新。mawen1250也有发过自己的滤镜包,需要的自己去nmm找。下载后,解压到plugins文件夹中就好。在plugins文件夹中存在的滤镜不需要手动load,直接调用即可

解压覆盖后的效果大概如下图:

检验安装成果可以用这个简单的脚本:


LWLibavVideoSource("C:xxxxx.mkv",format="yuv420p16",stacked=true)

dither_convert_yuv_to_rgb(chromak="lanczos",taps=4,noring=true,lsb_in=true)

C:xxxxx.mkv是一个输入的视频文件,也可以是MP4/m2ts等。如果avs文件和视频文件在同一个目录,还可以省略绝对路径,直接用文件名。第一行的意思是把它以yuv420 16bit精度读入,第二行的作用是高质量转为RGB24。用avspmod预览,就应该可以模拟播放器播放视频的画面。

avspmod可以同时载入多个avs。如果它们输出图像的时间长度,分辨率都一样,切换标签的时候,会自动同步到同一帧数,和同一画面位置。这点很适合用来比较多个视频,特别是用来比较源、成品和多版本Rip:

2.VapourSynth和vsedit的安装

VapourSynth(简称VS)是新时代的处理工具,先进性表现为依赖Python的强大可编程性,原生的多线程优化,大幅提升的内存管理,以及官方64bit版本。缺点就在于vs实在是太新了,教程实在是少的可怜,包括本系列教程中绝大部分,初稿均写在vs普及之前。

好在熟悉avs的人,适应vs并没有太多难度,而力图讲述处理原理和思路的教程,基于avs/基于vs也不重要。

 

安装VS之前,一般需要先安装Python 64bit:https://www.python.org/ftp/python/3.5.1/python-3.5.1-amd64.exe

老规矩,记好你安装到了哪里;因为之后需要往里面丢东西。

VS本体的最新版可以在这里下载:https://github.com/vapoursynth/vapoursynth/releases,一般选择最新的稳定版。安装的时候只选择稳定版,同样,记好你安装到了哪里。

VS的插件分两类,一类是编译好的dll,一类是写好的library。前者默认放置位置是VapourSynthplugins64,后者是Python35Libsite-packages文件夹。就我收集范围内的,前者在VS plugins64.7z中,把各种dll啥的解压到plugins64文件夹内。后者(3个py文件)在VS libraries.7z中,解压到Python安装目录里Python35Libsite-packages内就好。

安装好vs插件之后,我们需要安装vs的调试工具,vsedit:https://bitbucket.org/mystery_keeper/vapoursynth-editor/downloads

一般选择最新的64bit版本下载。

vs脚本一般以vpy作为结尾。这里我们可以用这个简单的脚本来测试效果:


import vapoursynth as vs

import sys

import havsfunc as haf

import mvsfunc as mvf



core = vs.get_core(accept_lowercase=True,threads=8)



core.max_cache_size = 2000



a="00002.m2ts"

src = core.lsmas.LWLibavSource(a,threads=1)

src = core.std.SetFrameProp(src, prop="_FieldBased", intval=0)

src = mvf.ToRGB(src)

src.set_output()

其中,a=”00002.m2ts”一句可以换成任何视频都行;如果vpy文件和视频不在同一个文件夹,则需要用绝对路径。这个vpy脚本先是载入相关的库到Python环境,然后设置线程和缓存,接着就是本体。先通过a来指定文件名,然后用LAV读入视频,指定为progressive格式,接着用mvf库中的函数转为RGB24,最后输出。

点击Script-Preview(F5),可以预览效果:

如果出错,在log标签卡中会显示出错信息。

如何用VapourSynth实现两个视频同时预览,一般用这种方法:


import vapoursynth as vs

import sys

import havsfunc as haf

import mvsfunc as mvf



core = vs.get_core(accept_lowercase=True,threads=8)

core.max_cache_size = 2000



source = "00001.m2ts"

ripped = "Symphogear Vol1-1.mkv"

src16 = core.lsmas.LWLibavSource(source,format="yuv420p16")

rip16 = core.lsmas.LWLibavSource(ripped,format="yuv420p16")



res = core.std.Interleave([src16,rip16])

res = mvf.ToRGB(res,full=False,depth=8)


res.set_output()

就是同时载入两个视频,然后前后间隔显示每一帧,再转为RGB。预览的时候,0,2,4,6,8…帧是源,1,3,5,7,9…帧是成品。如需放大,可以在右下方设置zoom,放大倍数自己写,放大方法选Nearest:

, , ,
上一篇文章
Pandora Hearts OST
下一篇文章
僕だけがいない街 OST

6条评论. Leave new

  • 怎么内嵌字幕和分割视频也就去广告 去logo等代码?

    回复
  • 我软件都是安装了博主提供的版本,没用最新版,每一步都是按这篇文章做的。但是打开VSEditor的时候提示:「vsedit.exe – 无法找到入口。无法定位程序输入点 clCreateImage 于动态链接库 OpenCL.dll 上。」重启计算机后依然如此,我的电脑是Win7 64位系统,请问是什么原因?
    猜想:
    1、我同时解压了官网的VapourSynthEditor-r18-64bit.7z(先解压)、以及本文提供的VapourSynthEditor-r5-64bit.7z(后解压)两个压缩包分别放到了两个目录。
    2、我只有Python环境使用了默认安装路径,其他软件都更改了安装路径,放在了C:\Tools目录的子目录下
    3、VS libraries.7z和VS plugins64.7z解压后放错了位置,我是这样放的:\Python\Python35\Lib\site-packages\nnedi3_resample.py(以及其他两个py文件) \VapourSynth\plugins64\*.dll(以及一个models文件夹和一个z.lib)
    以上是我觉得可能失误的地方,也可能不是以上原因,求解。

    回复
  • 已初步确定是VapourSynth\plugins64出了问题,如果把plugins64目录移动到其他目录,打开VS Editor就不会弹出警告框了。

    回复
    • 首先,目前最新版本也可以使用,我已经开始使用R38,同时开始尝试换R40。
      第二点,如果说是ocl错误,很可能是需要重新安装opencl驱动(通常包含在显卡驱动中),如果无法使用opencl,那么尝试删除KNLMeans滤镜。
      第三点,就环境变量而言,默认的python脚本只要放在site-packages路径即可工作,使用import完成调用(详见python文档),vs的plugin滤镜库一般都是放在plugins64下,这一点可以参见VS的官方文档

      回复
      • 非常感谢!问题完美解决!!
        我把Intel和AMD的显卡驱动都卸载重装了一遍,然后就完全可以正常运行了。
        好激动我以为我又要重装系统了,而我系统里装了好多乱七八糟的东西重装一次配置好至少要一天,以前我在网络上如果搜不到解决方案基本上无论在哪 个社区提问也都得不到正解啊,这次居然成了,第一次被解决问题,超感谢!
        顺便我明明勾选了“通过邮件通知我后续评论”然而没发邮件提醒我,幸好我又来翻了一下,否则一定错过一个亿……

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Fill out this field
Fill out this field
请输入正确的电子邮件地址。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

菜单