SVP+VLC补帧配置
不知道为什么,突然想起要搞补帧了。可能在某个地方看到了小黄鸭补帧,突然想起来我很多年之前还买过SVP的License,准备弄下来看看。
五六年前,补帧还大量使用的是光流法,这样的补帧算法在现在AI大行其道的环境下显得很不够看。有人推荐使用Rife补帧,Rife是个什么?一查原来是SVP的组件,很好,但是Linux下好像不能用。这大概是SVP在Linux下免费的原因吧。。。虽然对于我这个付费用户来说,我宁愿它收钱hhh。
我在Windows下是用的SVP+Potplayer的方案,但是PotPlayer是windows独占应用。好在Linux下也有很多好用的播放器,挑了挑,最终选中了VLC。
安装SVP和VLC倒是没有什么问题。SVP提供了Linux的安装程序,运行的时候一股浓浓的Windows风格扑面而来。VLC在官网上有详细的安装说明。
问题比较大的是配置。SVP提供了一份Linux下的配置文档,讲的比较详细,但有很多问题,主要在Vapoursynth和启用SVP上。
VapourSynth这个组件,我没有找到任何安装文档,所有文档都说的是直接sudo dnf install Vapoursynth就能解决,包括其官网的安装说明也是让直接安装,但是我却提示找不到这个包。找了一下Fedora的包源,发现这个组件是由几个子组件组成的,于是我决定要不然单独安装子组件吧,于是使用以下命令安装:sudo dnf install vapoursynth-libs python3-vapoursynth vapoursynth-tools vapoursynth-plugins
之后的结果表明这个方案是可行的。而且在写这篇文档的时候我发现了Fedora论坛对这个包的讨论,貌似讨论的是这个项目只有子组件,但没有名为vapoursynth的主组件,想来在fedora上这样的安装方式应当是正确的了。
然后就是VLC的配置。SVP有一个开关可以很方便的为VLC启用补帧,但需要指定VLCPlugin的路径。SVP官网说的是/usr/lib/vlc/plugins/video_filter,但这个路径是错误的,应当是只有32位的VLC才使用的是这个地址。我cd过去之后发现根本没有/usr/lib/vlc,网上所有文档也都说的是这个路径。最后我翻它自带的VLsub插件,发现它的路径在/usr/lib64/vlc这里,这才找到了实际的路径。
然后,需要在SVP里设置一下这个Plugin的路径:
然后使用以下命令给这个路径设置写入权限:sudo chmod 777 /usr/lib64/vlc/plugins/video_filter
然后在菜单里打开VLC支持就可以正常补帧了……吗?
对于一般的视频确实是可以了,但我拿来测试的视频却无法正常播放。
视频位于机械硬盘里,很不幸,拜Linux糟糕的NTFS驱动所赐,我的机械硬盘分区在之前一段时间遭到了毁灭打击。我在Linux下向Windows中写入了140G的文件,但在回到Windows中却发现所有文件全部凭空消失。chkdsk了之后发现这些文件全部变成了游离的碎片嵌在了NTFS系统里,虽然花了很长时间,牺牲了一些数据恢复了正常,我却不确定有没有其他文件损坏。
这些视频无法播放,我很自然的想到了是文件损坏的问题,于是回到Windows,却发现播放是正常的。通过PotPlayer差看了一下编码,是HEVC,好像不是很刁钻,但为什么有问题呢?
印象里在哪儿看到过HEVC的推广缓慢很大的原因就是版权问题,一查果然如此,VLC依赖ffmpeg,但Fedora默认安装的ffmpeg是不是完全体而是ffpmeg-free,缺了不少的解码库。但我按照网上的说法去替换的时候,却发现无论如何也安不上完全体ffmpeg。仔细查了一下,原来fedora默认是不带ffmpeg源的,只提供ffmpeg-free。我之前启用过NPMFusion的NonFree源,本以为有版权问题那肯定是在这个源里了,万万没想到这软件是在Free源里,实在是有点抽象了,原来这里的Free不是自由而是免费?
1 | sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm |
使用上面的命令,将FFmpeg-free替换为完全体ffmpeg,之后再运行VLC,视频就可以正常播放了。启用补帧,也正常看到了SVP的标志,补帧也正常运行了。