全平台GPU通用AI视频补帧超分教程

全平台GPU通用AI视频补帧超分教程

本教程只发布于https://www.cnblogs.com/Icys
注意:本教程需要一定的命令行和视频编码知识,请谨慎食用。

软件准备

  1. realcugan-ncnn-vulkan
  2. rife-ncnn-vulkan
  3. ffmpeg

这些文件UP主将打包好放到群里,大家也可以自己去下载

文件准备

首先把下载的这些文件无脑丢一起

最好放在一个剩余空间比较大的地方,否则到时候缓存文件会把你磁盘撑爆掉。

在这个文件夹下面建立一个名为workspace的文件夹。

在workspace中,把你想要处理的视频文件命名为source.mp4 (按照你原来文件夹灵活改后缀,当然之后的命令里的后缀也需要对应修改,总之后缀和视频编码要适应)。

在workspace下同时建in,out两个文件夹。

开始运行

新建一个文本文档

打开,修改内容为

start cmd

保存后,重命名为run.bat

双击打开

拆分视频帧

在弹出的窗口里输入

..\ffmpeg -i source.mp4 .\in\%08d.png -c:v vulkan

这里用到了vulkan作为加速器,如果无法运行可以把-c:v vulkan删除(后文不在赘述)

耐心等待拆分完毕

分离音频

输入

..\ffmpeg -i source.mp4 -acodec copy -vn source.aac -c:v vulkan

这里通常是.aac格式,如果不行就换成.mp3格式

耐心掉电分离完毕

运行补帧(可选)

这个步骤可以执行0到无数次,直到满足你的需求,也可以和下面步骤调换顺序执行,下文同理

输入

..\rife-ncnn-vulkan -i .\in -o .\out

耐心等待补帧完毕

如果您是多显卡用户,并且程序无法准确调用到您想要的GPU,可以使用这个命令,下文同理

..\rife-ncnn-vulkan -i .\in -o .\out -g GPU编号

这里的GPU编号从0开始,您可以一个一个测试,直到调用到您的GPU。或者您可以用逗号()分割GPU编号,以达到调用多个GPU的目的。

..\rife-ncnn-vulkan -i .\in -o .\out -g 0,1,2

补帧完毕后再输入

rd /s /q in
rename out in
md out

运行超分(可选)

对于超分您有许多选项可以选择

命令模板

..\realcugan-ncnn-vulkan -i .\in -o .\out -noise-level 降噪等级 -scale 放缩倍率

这里的降噪等级可选值为(-1/0/1/2/3),数字越大表示降噪越强,-1代表不进行降噪处理

这里的放缩倍率可选择为(2/3/4),输入多少就代表把原来分辨率放大多少倍(宽高的倍率,像素是其平方倍)

支持降噪与缩放模式

缩放 降噪
2 -1/0/1/2/3
3 -1/3
4 -1/3

命令例子

  1. 将分辨率放大为原来4倍,并且打开一级降噪

..\realcugan-ncnn-vulkan -i .\in -o .\out -noise-level 1 -scale 4

  1. 当然,如果您是个佛系的人,也可以选择不进行配置,采用默认配置(降噪-1,放缩2)

..\realcugan-ncnn-vulkan -i .\in -o .\out

rd /s /q in
rename out in
md out

合并为视频

输入命令

..\ffmpeg -i source.mp4

找到** fps这样的字样

..\ffmpeg -f image2 -framerate 新的帧率 -i .\in\%08d.png -i source.aac -c:v 编码器 -crf 18 out.mp4

这里新的频率取决于您补帧的次数,原来是30fps,补过一次就是60,两次就是120。

而编码器参照下面这张表(GPU编码需要更高的质量可以以通过-b选项来设置,推荐视频码率: 1080p大于6000kbps(-b 6000k); 4k大于20000kbps(-b 20m); 8k大于40000kbps -b 40m)

名称
hevc_amf AMD显卡专用(效果最差)
hevc_nvenc NVIDIA显卡专用(效果倒数第二)
hevc_qsv INTEL显卡专用(效果第二)
libx265 CPU通用(最慢,但是效果最好)

例如我这里补过一次帧,而且我是AMD的GPU,那么我就应该输入

..\ffmpeg -f image2 -framerate 60 -i .\in\%08d.png -i source.aac -c:v hevc_amf -crf 18 -b 20m out.mp4

或者我追求质量

..\ffmpeg -f image2 -framerate 60 -i .\in\%08d.png -i source.aac -c:v libx265 -crf 18 out.mp4

转码结束之后就可以了,workspace下的out.mp4就是转好的文件了。

清理

rd /s /q in
rd /s /q out
del source.aac
posted @ 2022-07-31 16:59  Icys  阅读(3543)  评论(3编辑  收藏  举报