VCB-Studio 视频比较工具在 macOS 下的实现

本文启发自 [VCB-Studio 科普教程 7] 如何高效高质量比较 BDMV/BDRip。文中给出了 Windows 平台上的工具,我搜索后发现这些工具都是开放源代码的,因此将其移植到 macOS 和 Linux 下就成为了可能。我已经在 macOS 上实现了这套工具的使用,本文会先介绍我个人打包好的 macOS 版本,后半部分再介绍如何编译,供 Linux 用户参考。Linux 平台因为发行版众多暂时还没有具体测试,步骤大同小异。

前置知识:Homebrew 的安装及使用

本教程需要对命令行以及 Homebrew 有最基本的了解。如果不知如何使用,请在搜索引擎查找相关教程,本文不再赘述。

添加个人源

对于所需工具我已经编译并打包了一份,发布在我的个人源上。因此只需在 Homebrew 里添加即可使用:

1
brew tap hguandl/custom

安装工具

VapourSynth 及其插件

所需要的库之间存在依赖关系,包管理会自动安装依赖。因此只需安装 mvsfunc 即可获取整套工具:

1
brew install hguandl/custom/mvsfunc

FFmpeg

需要注意的是其实还存在一个依赖 FFmpeg。之所以没有显式地加进去是因为其可能有不同的版本,如果添加进依赖就会强制安装官方版。如果你自己从未安装过 FFmpeg,那么需要再安装一下:

1
brew install ffmpeg

官方源的 FFmpeg 包含了很多功能,包括了 Tesseract 这样的 OCR 工具,对于不需要的人来说会显得很臃肿。我这边编译了一份不包含此类功能的精简版 FFmpeg,有需要的读者可以用如下的版本取代官方版:

1
brew install hguandl/custom/ffmpeg

VapourSynth Editor

前往 https://bitbucket.org/l33tmeatwad/vapoursynth-editor/downloads/ 下载即可。

完成

就此工具全部安装完成,可以接着原教程的第三节继续了。

vsedit on mac

(进阶)相关源码及编译向导

从这部分开始是介绍从头编译的过程,适合想要刨根问底的读者,以及想在 Linux 上编译的朋友。

依赖

插件及工具需要用到如下依赖,请自行从包管理下载或从官网下载源码安装:

以及常见的编译工具例如 autotools libtool gcc g++ 等。

组件安装

首先要找到 VapourSynth 的插件目录。一般在 /usr/local/lib/vapoursynth 下。

mvsfunc

马雯姐做的超实用轮子,很多视频处理的操作都能用一两句话解决:

HomeOfVapourSynthEvolution/mvsfunc

下载里面的 mvsfunc.py,放进 Python 3 对应的 site-packages 里即可。

AddGrain

HomeOfVapourSynthEvolution/VapourSynth-AddGrain

1
2
3
4
5
git clone https://github.com/HomeOfVapourSynthEvolution/VapourSynth-AddGrain.git
./autogen.sh
./configure --prefix=/usr/local
sudo make install
sudo ln -s /usr/local/lib/libaddgrain.dylib /usr/local/lib/vapoursynth/libaddgrain.dylib

在 Linux 下文件名应该是 libaddgrain.so,下同。

vslsmashsource

VFR-maniac/L-SMASH-Works

1
2
3
4
5
git clone https://github.com/VFR-maniac/L-SMASH-Works.git
cd VapourSynth
./configure --prefix=/usr/local
sudo make install
sudo ln -s /usr/local/lib/libvslsmashsource.dylib /usr/local/lib/vapoursynth/libvslsmashsource.dylib

fmtconv

EleonoreMizo/fmtconv

1
2
3
4
5
6
git clone https://github.com/EleonoreMizo/fmtconv.git
cd build/unix
./autogen.sh
./configure --prefix=/usr/local
sudo make install
sudo ln -s /usr/local/lib/libfmtconv.dylib /usr/local/lib/vapoursynth/libfmtconv.dylib

VS Editor

参考 https://forum.doom9.org/showthread.php?p=1688477

一些补充

  • 原文里的 Windows 版还有 vszimg 这个库,由于 zimg 于 2015 年底与 VS 进行了整合,现在 vszimg 已被移除。mvsfunc 的较新版本也跟进了此变化,故本文删去了此依赖项。

  • macOS 的 HiDPI 会对 VS Editor 的画面进行整体缩放,不知道是用的什么算法,可能会成为一个问题。