MPC-HC 与 AviSynth+ 便携化
MPC-HC 与 AviSynth+ 便携化
偶尔会用 AviSynth+ 来做一些简单的视频处理,主要是 AviSynth+ 体积小巧,而且脚本可以复用。
普通情况下 AviSynth+ 是安装使用的,但是在公司的设备中,用户不允许进行程序安装,于是尝试了一下将 AviSynth+ 便携化,基本上是成功的,以下就步骤说明如下:
便携化步骤
注意,以下内容以 x86 的 AviSynth+ 和 MPC-HC 为示例,x64 的可尝试,不保证可用。
到 AviSynth+ GitHub 和 MPC-HC GitHub,下载最新版本的 AviSynth+ 和 MPC-HC。
- AviSynth+ 选择名字符合
AviSynthPlus_*-filesonly.7z
这个格式的压缩包。 - MPC-HC 选择名字符合
MPC-HC.*.x86.zip
这个格式的压缩包。
- AviSynth+ 选择名字符合
解压上一步中下载的 AviSynth+ 和 MPC-HC 压缩包,并移动必要文件。
- 将解压出来 AviSynth+ 文件中 x86 文件夹下的 AviSynth.dll 移动到 MPC-HC 解压的目录。
- 将解压出来 AviSynth+ 文件中 x86 文件夹下的 System 文件夹下的 DevIL.dll 移动到 MPC-HC 解压的目录。
- AviSynth.dll 和 DevIL.dll 应与 mpc-hc.exe 在同一文件夹下。
(可选)移动 AviSynth+ 的其他 Plugin。
- 在 MPC-HC 解压的文件夹下,新建一个文件夹(名称随意,如:AviSynthExt)。
- 将解压出来 AviSynth+ 文件中 x86 文件夹下的 plugins 文件夹下的所有文件移动到新建的目录。
做完上面中几步之后,应该会得到下面这个结构的文件夹
MPC-HC
AviSynthExt (文件夹)
ConvertStacked.dll
DirectShowSource.dll
……
CrashReporter (文件夹)
……
AviSynth.dll (文件)
DevIL.dll (文件)
mpc-hc.exe (文件)
……
此时,AviSynth+ 便携化已完成,但是特别注意以下内容:
存在问题
用上述方案实现便携化的 AviSynth+,在 avs 脚本中,需要使用以下内容加载对应 plugin dll:
LoadPlugin("D:\1-Program\MPC-HC\AviSynthExt\Plugins\ConvertStacked.dll") LoadPlugin("D:\1-Program\MPC-HC\AviSynthExt\Plugins\DirectShowSource.dll") LoadPlugin("D:\1-Program\MPC-HC\AviSynthExt\Plugins\ImageSeq.dll") LoadPlugin("D:\1-Program\MPC-HC\AviSynthExt\Plugins\Shibatch.dll") LoadPlugin("D:\1-Program\MPC-HC\AviSynthExt\Plugins\TimeStretch.dll") LoadPlugin("D:\1-Program\MPC-HC\AviSynthExt\Plugins\VDubFilter.dll")
用上述方案实现便携化的 AviSynth+,无法使用 DirectShowSource() 滤镜,可以使用 ffms2 外部滤镜代替。
其他内容
以下内容属于锦上添花的内容,且可能仅适用于作者,可参考,可忽略。
关于预览
- 若用户使用 Vim 作为 avs 脚本的编辑器,可以参考 Vim 给特定文件增加功能以及菜单 的内容,添加热键来调用 MPC-HC 打开当前的 avs 脚本的功能作为预览。
关于压制
- 若使用 FFmpeg 压制 avs 脚本,可将 AviSynth.dll 复制至 ffmpeg.exe 所在目录下实现便携化。
- 请注意,此时使用的 FFmpeg 应为 Shared 版,保证 ffmpeg.exe 自动加载同文件夹下的 AviSynth.dll 处理 avs 脚本。
- 如不清楚什么是 Shared 版,可到 FFmpeg-Auto-Build 下载名字中含 shared 的 FFmpeg。