StaxRip介绍

Windows上的一个集成视频编码工具包StaxRip。

StaxRip 与 VapourSynth

视频压制的时候,并非直接把视频文件解码后pipe给编码器,往往我们需要在这之间加一些滤镜操作,例如且黑边,调尺寸等。这项工作目前有两个常用的软件可以完成,AviSynth和VapourSynth

AviSynth 对比 VapourSynth

AviSynth本身是一个仅支持Windows系统32位的处理软件,开发得早,受众面很广。由于他32位的限制导致在处理视频的速度上可能成为瓶颈,目前实际使用的都是它的fork版本AviSynth+。AviSynth使用一个自创的脚本语言来写自己的处理脚本,这个脚本既可以是你用来控制视频处理的流程,也可以写一些滤镜函数。当然大部分滤镜需要效率,所以都会用C/C++这样的基础语言编写,然后编译成动态链接库的形式作为AviSynth的插件,最著名得有ffms2,这是一个基于ffmpeg的视频分离解码插件。

VapourSynth是来替代AviSynth的,它的优势是:目前是一个活跃开发的项目,使用python这种标准语言编写处理脚本,全平台通用。大部分AviSynth插件都可以直接或者移植到VapourSynth使用,内置的功能基本上也是全面覆盖。换句话说,所有AviSynth能做的事VapourSynth都能做。如果你不是留恋于AviSynth的第三方工具或者众多的教程的话,我更推崇VapourSynth的使用。

安装

第一篇教程我想从StaxRip入手,这个工具箱我也是最近准备这些教程才上手使用的,感觉很不错,把重编码的流程整合得很合理。下载地址

StaxRip解压后就可以直接用了。不过它需要.NET4.7才能运行,如果你是用的win10这不存在问题,如果你用的win7还需及时更新所有补丁并安装.NET4.7。StaxRip同时还打包了很多它需要调用的软件,例如AviSynth+,如果你打算用AviSynth脚本处理视频,就无需再安装什么了。但是如果你希望体验VapourSynth,就需要单独的安装了。

VapourSynth在Windows上的安装并不一定轻松,参考官方说明。我简单说一下可能会遇到的问题,首先全局安装要比安装Portable简单。Portable会有一个个的坑,永远踩不完,不建议新手尝试。全局安装主要的注意点就是python版本要选对,例如当前官方指定的版本是3.6,简单起见python也全局安装,不要去折腾什么虚拟环境和conda发行版本了。然后就是vc++的运行时,这个也是一个大坑,VapourSynth本身的运行时可能是2017版本的,但是一些插件例如ffms2需要的运行是2015版本的。好在微软提供了一个网页,逼急了你可以把这些运行时安装个遍。

VapourSynth安装好后还需要在StaxRip中检车设置下文件路径和版本信息对不对。菜单栏Apps->Manage,在打开的窗口找到VapourSynth,文件路径会检查默认安装地址,可能需要手动指定一下版本号。

Pic. 3

如果你是在Linux上使用VapourSynth,安装就要方便很多。特别是在Archlinux这样的发行版本上,AUR里你可以找到几乎所有的插件,也不用担心依赖的问题。但是Linux上并没有StaxRip这样方便的工具包使用,所有的工作都得手动。

StaxRip

Pic. 1

首先选择基本的流程设定,Project->Templates->Automatic Workflow。当你玩得熟练了你可以自创一些模板,提高再次处理相同文件时的效率。本教程以内置的自动模板为例解说。

添加mkv文件

在Source一栏右键添加single file,定位到准备的remux mkv文件。第一次添加mkv文件时,StaxRip会自动为我们处理ffmsindex。这一过程需要较长时间,请耐心等待。

Pic. 2

滤镜

在StaxRip中间一栏的第一项Filters就是设置滤镜脚本的地方,默认使用AviSynth+,调整成VapourSynth的办法,右键Filters栏的空白处Filter Setup->VapourSynth。默认的5个滤镜中FiledNoise我们不用。可以右键Remove掉,方便我们保存模板,以后选择自定义的模板就不会显示这些不用的滤镜了。另外我们在做重编码的时候还常用到一些滤镜是StaxRip中没有的,例如处理dirty line的滤镜fillmargins。在VapourSynth中fillmargins的实现是这个插件,插件下载好后把dll文件放到VapourSynth能自动加载的目录,如果是默认安装地址就是这个目录C:\Program Files (x86)\VapourSynth\plugins64。回到StaxRip,右键Filters栏的空白处Profiles弹出窗口,在文档最后添加

Pic. 5

1
FillBorders = clip = core.fb.FillBorders(clip, left=0, top=0, right=0, bottom=0, mode="fillmargins")

然后右键Filters栏的空白处Add->Misc->Fillborders。如果你还需要用到一些StaxRip中没有的插件都可以这样添加。

切黑边

StaxRip菜单栏Crop,弹出一个内置的专用于切黑边的帧浏览器。右下角Menu里有不少选项,有很多控制切线位置的快捷键。我们可以先用鼠标大致控制一下切线位置,然后用键盘快捷键微调。StaxRip的且黑边工具还设计了一个放大器,放大切边附近的像素,就是看起来有点像刘海屏的那个位置。透过这个放大镜我们不仅可以很好的控制切黑边,还能看清楚画面边缘的dirty line。

Pic. 4

切边的参数在关掉整个页面会自动把参数记录下来,Fillborders的参数则需要手动输入,双击Filters栏的空白处弹出对话框,填写参数

Pic. 6

一般我们只用Fillborders修复一个像素的dirty line,其他情况其他办法具体对待,超出本教程范围暂时不讨论。

Resize

如果还要调整大小的话,把原来的Resize删掉,从新添加,右键Filters栏的空白处Add->Resize->Resize,弹出对话框选Spline36方法。然后在Resize一栏中拖动滚动条,调整尺寸,例如720p的宽度应该是1280个像素点。

x264参数

第三栏是设置编码器参数的一栏,不仅仅是x264,还可以选择其他的编码器,包括x265。StaxRip为这些编码器都设置好了一个UI用来选取参数,用起来很方便。这篇教程暂不详细讨论重编码时x264的参数选择。

Pic. 7

音频的处理

StaxRip提供了音频处理的UI,在Audio一栏点Edit弹出对话框

Pic. 8

本文也暂不讨论音频处理

Next

点击next就开始编码了

总结

本文初步介绍了StaxRip这个工具的使用流程,截取了部分UI,着重描述了VapourSynth在StaxRip中的使用方法。

VapourSynth并不是要绑定StaxRip使用,它还有很多其他的第三方编辑器可以使用

更多的视频压制教程敬请期待!欢迎大家留言讨论。