ArchLinux 下 VapourSynth 和 VapourSynth-editor 的编译与配置

ArchLinux 安装桌面

参考以官方 Wiki 的方式安装 ArchLinux 安装 ArchLinux 的基本系统。

参考 ArchLinux 安装 GNOME 图形桌面环境ArchLinux 安装后的必须配置与图形界面安装教程安装图形界面。

顺带提一下我的经验,若是在 VMware 虚拟机中安装,不要在 VM 下拉伸桌面,不然重启系统后黑屏…

编译 VapourSynth

在之前的一篇博文中,提到了编译 VapourSynth。但我不知道为什么,可能是升级了 ArchLinux 系统(pacman -Syu),导致之前编译好的用不了,只能重新编译一次。

安装依赖

VapourSynth 的必要依赖包括:

  • 构建与编译依赖
    • Autoconf、Automake、Libtool
    • pkg-config
    • GCC 4.8 及以上版本或 Clang
  • 功能依赖
    • zimg v2.9分支 (由于新版R49增加了spline64,这是 zimg 2.9.3 新增的内容,所以要用新版)
  • Python 环境
    • Python 3 (Python 3 即可,不需要指定 3.x,只有 Windows 下安装编译好的二进制文件时,才需要限定小版本)
    • Cython 0.28 及以上版本

此外,还有四个可选的依赖

  • 构建文档:Sphinx
  • 编译字幕滤镜:iconv、libass、ffmpeg
  • 编译读写图片的 Imwri 滤镜:ImageMagick 7
  • 编译 OCR 滤镜:Tesseract 3

我感兴趣的是 Imwri,而 ImageMagick 7 作为 ArchLinux 默认安装的包已经装好了。

在 ArchLinux 下,安装必要依赖的命令如下。

(gcc 和 Python 3 应该是装好系统就自带了,没写。(在 ArchLinux 的 pacman 语境下,gcc 指最新版的 gcc(目前是 9.2.1),这个应该是系统默认就安装了的,gcc8 指 gcc 8.x 的稳定版,应该需要自己安装。))

1
2
3
4
5
pacman -S autoconf automake libtool
pacman -S pkg-config
pacman -S zimg

pip install cython

编译

下载 VapourSynth 源码。

1
2
git clone https://github.com/vapoursynth/vapoursynth.git
cd vapoursynth

若担心开发中的版本不稳定,可下载打包发布的版本。

1
2
3
wget https://github.com/vapoursynth/vapoursynth/archive/R49-RC1.tar.gz
tar -xzvf R49-RC1.tar.gz
cd vapoursynth-R49-RC1

进行构建和编译。

1
2
3
4
./autogen.sh
./configure
make
make install

在这里提一下我编译时遇到的问题。我用的源码是 R49-RC1 版本,自带的resize函数新增了spline64,然而我在编译中报错说ZIMG_RESIZE_SPLINE64未声明。于是把两行相关代码注释掉(位于src/core/vsresize.cpp),编译通过。可能和 zimg 版本问题有关?我猜的。

补记:猜的没错,新版 R49 增加了spline64,这是 zimg 2.9.3 新增的内容。

顺带试了一下 R48,因为这个版本还没有添加spline64,结果出现了一个通用的报错,没有去深究,放弃了。

配置

编译好后,配置搜索路径和 Python 环境。

编译完成,会在/usr/local/lib(或其他类似的文件中)得到相关.so库文件,包括libvaoursynth.solibvapoursynth-script.so.0.0.0,把这些库文件链接到/usr/lib中,完成搜索路径的配置。

1
2
ln -s /usr/local/lib/libvapoursynth.so /usr/lib/libvapoursynth.so
ln -s /usr/local/lib/libvapoursynht-script.so.0.0.0 /usr/lib/libvapoursynth-script.so

配置好搜索路径,在 Python 中安装 VapourSynth。这听上去有点怪,但根据 VapourSynth 的设计思路,需要先完成上面的编译和配置,才能用 pip 安装。

1
pip install vapoursynth

完成上述配置后,vsedit 就能搜索到 VapourSynth。

编译vsedit

安装依赖

vsedit 是基于 qt 的图形界面程序,需要 qt5 相关的依赖包。

下面列出的这个包是我个人在编译vsedit中需要的。根据官方的编译指南,需要build-essentialqtbase5-dev。但在 ArchLinux 下似乎不叫这两个名字,没有去深究。强行编译,发现缺少下面这个包。

1
pacman -S qt5-websockets

配置头文件

编译时需要 VapourSynth 的头文件,也就是vapoursynth/include文件下的三个.h文件。在/usr/include中新建一个vapoursynth文件夹,把这三个文件复制过去即可。

编译

下载源码。

1
2
git clone https://bitbucket.org/mystery_keeper/vapoursynth-editor.git
cd vapoursynth-editor/pro

进行构建和编译。

1
2
qmake -norecursive pro.pro CONFIG+=release
make

vapoursynth-editor/build/release-64bit-gcc或类似的地方,得到 vsedit 等二进制文件,可以用ln命令做一个链接,方便平时使用。

1
ln -s $Home/vapoursynth-editor/build/release-64bit-gcc/vsedit ~/Desktop/vsedit
1
2
cd ~/Desktop
./vsedit

运行 vsedit,即可弹出图形界面。

关于滤镜

滤镜应该放在/usr/local/lib/vapoursynth下。