给剪辑视频4K超清化思路分享

本文主要记录我的4K AMV视频制作流程。

本视频的4K分辨率画面是通过Topaz Video Enhance AI渲染出来的。这个软件可以这么说,傻瓜化程度很高,除去界面语言没中文,其他都十分地易用,这个软件自从去年极客湾介绍后,在B站是火了,基本上B站的4K超分辨率视频很大一部分是由这个软件做的。
这个软件的使用,我不想多介绍,B站上已有多个视频介绍,选个模型选择输入视频,选择输出格式,点点鼠标,就等电脑帮你渲染好,所需时间视显卡性能而定。
多提一些小Tips:动画类视频模型model选Gaia-CG即可。运行之前建议重启电脑清空后台。显卡推荐N卡GTX900系以上4G显存以上,A卡使用支持DirectX12的卡软件1.7.0版本以上。

然后把剪辑软件导出的视频输入超分辨率软件就可以了。

就这么简单?
这确实是最简的方法,但其有一个问题:整个过程中经历了两次有损视频压缩编码:剪辑软件导出编码一次,AI软件自带的视频合成功能编码一次。多次有损压缩,势必会造成画质损失,这还没有完,上传到网上还会被再一次压缩。
所以,接下的方法会奉行一个理念:
尽量在视频制作时只进行一次有损编码,尽可能减少画质损失。

Warning:接下的部分涉及avs脚本以及ffmpeg使用,只是一个思路性质的内容,非教程,对小白极不友好!
avs脚本以及视频压制“入门”学习材料:https://vcb-s.nmm-hd.org/ (VCB-S大佬的教程)
PS:上面的教程我至今还没完全搞懂……(汗)
Pr“无损”输出画面

这里可以直接将视频输出成PNG图像序列,PNG格式是一种无损压缩格式,可以认为其包含的信息无损。这时候也可将声音输出成wav无损格式(格式选“波形音频”)
Topaz Video Enhance AI 的输入格式支持图片,它添加图片是自动添加被选择图片的同文件夹里的全部图片作为序列。


比如上图中的frame0000.png被选择添加进AI软件,文件夹里的其他图也会自动被添加成一个任务。
在AI软件输出设置里也选择PNG,软件会生成一个文件夹来存放输出的图片序列,以000000.png开头。
其实这里AI软件已经可以选择MP4视频方式进行输出,但是这样的方式无法暂停,一旦此期间电脑出现崩溃令渲染停止,只会得到一个不完整的视频流,之后继续渲染的部分会另生成新的视频流,此时再将两者拼合在一起就比较麻烦了。
下面是合并所有帧序列,这里使用avs脚本方式
合成图片主要是ImageSource函数:%06d.png表示加载000000.png文件名的图片,start和end指定区间,即000000.png至002181.png,fps即帧速率。
上面为目前我作后处理的脚本,有点复杂,并涉及多个非avisynth内置滤镜,简化一下:
通过avs脚本压制,这里使用ffmpeg命令:
ffmpeg内置libx264编码库,指令与x264稍有不同
当然也有其他方式进行合成,比如Pr等剪辑软件,但也要注意帧速率的设定!
使用ffmpeg和avs脚本的优势在于可使用crf码率控制方式进行压制,码率分配更精准,视频质量更高。
以上便是一般对剪辑视频的超分辨率操作。

对于本次4Kamv视频制作上流程稍有不同。
首先以1080P分辨率完成剪辑。预览效果。

由于之前已经对部分素材完成了超分辨率,为了不做重复工作,这里只将新剪辑的部分以前面PNG序列方式导出,并完成一遍上面的流程。
把压好的剪辑部分的4K MP4导入Pr,新建一个4K序列,将原先的音轨与已渲染过的部分复制进去拼合。
PS1:这里将剪辑部分先进行了有损编码,不是将帧序列直接导入,一是为使用avs的滤镜进行画面处理,二是Pr在添加帧序列时设定帧速率不能很好地精确到24000/1001。
PS2:当然avs脚本方式也可以通过ffmpeg命令输出成未压缩的无损视频,但那样对长期存储不太友好。

在4K序列下又完成了片尾以及中间部分转场的剪辑。
至此,就可以Pr导出全部视频了吗?还差字幕和水印。很遗憾Pr不支持ass字幕格式,还是需要avs脚本出场。虽然可以先将视频导出,再用avs脚本和ffmpeg压制出内嵌字幕和水印的视频,但我之前说过要尽量减少有损编码的次数。也可以通过输出PNG序列的用之前的方法合成,但产生的中间文件(PNG)容量大(估算7分钟24帧4K视频输出PNG近100G),机械硬盘写入比较慢(我固态没那么多空闲)。
这里使用一个叫framesever的Pr插件,利用它在导出时在本地会生成一个基本无空间占用的avi文件,avs脚本读取avi文件时,插件会实时将Pr输出的画面和音频无损传给avisynth,avisynth完成字幕内嵌与水印添加后,ffmpeg再进行编码输出。

视频压制完成,over。