AIGC时代给大家的福利之一就是,如果你自己手里有一些比较老的资源,但是你又没时间去找高清资源的话,那你可以选择用现在的40系显卡加AI模型来帮助自己修复低清视频,比如我就是用这个AI模型修复了一整套480P的远古动画片,我就再也不用去苦哈哈找那些所谓的高清资源了。
我修复的视频是之前我比较喜欢看的一些动漫,比如天降之物,作为十年前的动漫,想找一个4K分辨率的资源那必定是相当困难的,即使是找到了也不一定有下载速度,但是我手里的资源基本上都是720P甚至是480P的。
自从我拿了图像处理方向的硕士学位之后,我就知道很多时候我可以自己写算法出来把低清视频插值修复成高清视频,但是实际上传统的插值算法繁琐,对算力占用太大,修复能力太弱,一个40分钟的视频修复起来可能要两三天,所以那时其实没太多的人去做这件事,毕竟那时候的算力也少,修复时间也长。
前两天我去某代码网站上扒拉了一下相关的项目,发现nVidia的40系显卡出来之后,他们自己用RNN调出来的视频修复AI模型已经完全可以用了,所以我根本不需要自己苦哈哈写代码,直接调用他们成品的项目就行了。
我这次选的模型是Real-ESRGAN,有自己改代码用命令行的版本,也有exe可执行文件的版本,完美照顾到所有人的需求。
修复就是用的技嘉的4060显卡,技嘉RTX 4060 Elite小雕,算力部分差不多是15.11TFLOPS,功耗大概115w,相比4090的93.24TFLOPS的算力,4060也就是慢了一点,修复视频时候给它多跑一段时间而已。
115W功耗的4060对电源要求更低,并且电耗也更低,所以更适合拿来自己玩儿。
4K视频修复体验我修复的视频是拿暗杀教室作为例子的,作为一个2015年前后结尾的动漫,暗杀教室正好处于720P和4K视频换代的分界点,大部分人手里已经有的资源就是720P的视频,但是现在是2023年,大家手里都已经普及2K分辨率的显示器了,4K显示器更是已经进入大部分高端用户群体的桌面了。
这时候你再回去回顾自己的存货的时候,你就就会感慨为什么这视频这么糊呢?
这就是我的心路历程。
给大家看看我修复的视频结果,左边是原始视频,分辨率1920X1080,放在我4K显示器上就相当糊了。修复之后的视频分辨率是3804X2160,也就是修复成了普遍意义上的2K视频,再放过去我的显示器上看的时候就相当清晰了。
修复的原始视频长度是23分钟16秒,编码格式H264,视频码率2.5Mbps,占用空间是457MB。
修复好之后的视频我是截了一小段出来,视频长度是7分钟10秒,编码格式H264,视频码率11.9Mbps,占用空间614MB,如果说完整的23分钟视频全部修复的话,整个视频占用就会提升到1501MB左右。体积会膨胀到原来的四倍上下。
随手截图一张原始视频里面的过场图,中间的人物的头发其实很模糊,在小图情况下都能看出来边缘很模糊。
修复之后的视频,截图之后很明显的就能看到边缘部分变清晰了很多,并且背景上的白色线也清晰了很多,没有之前那种高糊的观感了。
我又换了另外一个场景截了一张原始视频的图,原始图勉强能看,细节地方颜色分层和边缘其实还是很有古老的气息。
现在修复之后的图在整个颜色明亮度以及边缘清晰度上都有相当大的改善。
视频修复教程视频部分修复教程其实相对复杂一点,简单来说就是把视频文件变成图片文件,然后对每个图片文件进行4倍分辨率修复,最后把修复好的图片文件再合成视频文件。
所以视频需要使用到ffmpeg进行视频拆分处理,至于ffmpeg是怎么装的,可以参考别的教程,我就暂时不细写了。
先创建两个目录用来存放拆分和处理的图片帧。
再看看demo视频文件里面的基本参数,视频的分辨率就是老照片的感觉。
首先利用ffmpeg把视频分割成不同的图片文件:ffmpeg -i onepiece_demo.mp4 -qscale:v 1 -qmin 1 -qmax 1 -vsync 0 tmp_frames/frame%08d.jpg
上面就是执行后tmp_frames目录产生了拆分后的图片帧,相对来说还是挺粗糙的。
下一步就是执行命令行对所有的图片帧进行4倍分辨率修复:realesrgan-ncnn-vulkan.exe -i tmp_frames -o out_frames -n realesr-animevideov3 -s 2 -f jpg
这一步执行的时间会特别长,建议大家用一下40系显卡,我后面会放出来我用不同的N卡修复同一段视频的时间对比。
再执行一下命令行:ffmpeg -i out_frames/frame%08d.jpg -i onepiece_demo.mp4 -map 0:v:0 -map 1:a:0 -c:a copy -c:v libx264 -r 23.98 -pix_fmt yuv420p output_w_audio.mp4
将out_frames内的图片压缩为视频,看一下最后的视频质量,可以看出清晰度和分辨率也有了不小的提高。
结语我算了一下,4060去修复视频的话,平均一分钟的视频修复时间需要五分钟的修复时间,也就是说一集23分钟的动漫修复大概是需要115分钟的修复时间的。
好处就是修复之后的动画文件质量相当高,问题就是有部分修复的画面AI感很重,但是总体来说这个修复的效果是很不错的,也没太大的技术门槛,修复成本也就是0.2度电的电费。
技嘉的4060做这个修复刚刚好,功耗不是太高,对电源和平台的要求不是太高,如果换成技嘉的4070Ti或者4090的话,其实能大幅度提升修复的效率。
不过我是在家里用嘛,就老老实实放在那边给它跑就行了。