
为什么想写这个工具:
用Aegisub做完字幕,一般情况下还需要另外再用小丸/megui/消极压制或者编写avs/vpy脚本对字幕进行内嵌操作,有形中降低了生产效率,其实有个旧版压值脚本是基于avs+x264的,不过已经过时了,参考一下重新写个vs版的;
A、I、N三家现在都有了比较便捷快速的硬编码方案,在线视频网站的二压参数也比过去讲究;存储和网速的提升使得我们可以把CPU编码的压力转移给其它硬件/网站,况且RTX的N卡至少已经能和x264 fast战了;
最近做CUT需求增多(运动跟踪字幕、沙雕综艺生放CUT、演唱会CUT,Vtuber直播CUT等),有个直接在字幕软件里输出视频片段的工具可以帮助实现沉浸式体(fa)验(dian),带来身心的愉悦;
Aegisub的棋盘背景是个挺有意思的东西,Dummy Video仅用一行不长的字符串描述了所有必要的信息,刚好研究了一下怎办把它复现出来;
认识一下开源工具、并学习它们的使用方法,比如我在这之前就没写过vpy;
(不幸)借机踩了各种坑,涨了一波姿势。
功能简介:
通过Aegisub的文件和视频相关接口,自动填写vpy脚本中的各种必要信息,在一次性设置好编码器参数保存后,可进行一键压制字幕/无字幕视频(片段)。支持A卡(APU)、N卡、Intel核显硬编。同时具有以下特性:
支持挂载主副两个ass文件,可选使用vsfilter或vsfiltermod
支持mp4和mkv两种封装
支持完美还原Aegisub棋盘样式空白视频
支持视频片段截取,并混流对应的音频(依赖于ffmpeg)
支持简单的编码参数选择,和添加自定义参数
可选择保留中间文件,如vpy脚本和bat文件,以供自行修改
支持调用neroaac进行音频编码
用了一些绕弯子的方法绕开了滤镜本身的缺陷
文件构成:
autoload\enc-hsub-VS.lua --主脚本文件
include\enc_gui.lua --界面配置文件
内部依赖:utils.lua --HSL与RGB转换
外部依赖:VapourSynth(NegativeEncoder的目录结构及其打包的文件,除x264外)
x264编码器(可选,使用CPU编码时与VSPipe搭配)
VCEEnc(A卡用户可选)
作者信息:domo @ 2019.08
工具的配置:
参考:https://www.bilibili.com/video/av62296494/
压制视频:
用户基本有四种选择,请自行适配:
使用QSVEnc,需要有Intel的核显(HD4600测试通过)
使用NVEnc,需要有Nvidia独显(GTX965M、GTX1070测试通过)
使用VCEEnc,需要有AMD独显(FirePro W4100测试通过)或者APU(Vega 10测试通过)
使用VSPipe和x264,进行CPU编码(速度慢,同体积画质可能更好)
其余的选项都是简单的英文,需要对应的功能只要在前面的checkbox打钩并填好相关的
信息。
编码器设置:

选择界面
QSVEnc:
Preset(预设)
模式(mode):
一种是VBR(可变码率),对应参数是目标bitrate,越高文件越大。
另外一种是ICQ模式,对应参数是ICQ值,类似于x264的crf,越低画质越好,文件越大,越慢。

QSV的参数设置
NVEnc&VCEEnc:
Preset(预设)
只提供了码率控制模式(VBRHQ)
过于简单,没有图
X264:
Preset(预设)
只提供了crf模式
过于简单,没有图
最后:
本工具采用想起来写啥就写一段的写法,很多地方没有输入检查,不过就算lua这端不报错,后面vpy和编码器也会报错的,不要慌。
lua脚本: https://github.com/qwe7989199/aegisub_scripts
VSFilter: https://github.com/HomeOfVapourSynthEvolution/VSFilter
VCEEnc: https://github.com/rigaya/VCEEnc
消极压制: https://github.com/zyzsdy/NegativeEncoder
x264.exe: 可以从其它软件的tools文件夹里得到