全平台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

全平台GPU通用AI视频补帧超分教程的更多相关文章

  1. 全平台轻量开源verilog仿真工具iverilog+GTKWave使用教程

    前言 如果你只是想检查Verilog文件的语法是否有错误,然后进行一些基本的时序仿真,那么Icarus Verilog 就是一个不错的选择.相比于各大FPGA厂商的IDE几个G的大小,Icarus V ...

  2. 浅谈AI视频技术超分辨率

    泛娱乐应用成为主流,社交与互动性强是共性,而具备这些特性的产品往往都集中在直播.短视频.图片分享社区等社交化娱乐产品,而在这些产品背后的黑科技持续成为关注重点,网易云信在网易MCtalk 泛娱乐创新峰 ...

  3. 让视频丝滑流畅——N/A通用补帧傻瓜解决方案

    补帧就是字面意思,把24帧的视频通过算法即时补偿到更高的帧数,获得更优秀的观感体验 索尼大法brivia电视的中高端产品线中的motionflow技术,都可以实现硬件补帧,只需要把动态打开,相应的画面 ...

  4. 媒体应用视频超分AI神器!360P视频一键转换HD

    作为多媒体应用的开发者,你是否想为媒体播放器快速开发创新AI功能?例如: 在播放低画质视频过程中对其进行逐帧超分 让满屏飘飞的弹幕自动绕过画面的主体人物 HMS Core 6.0.0开放的多媒体管线服 ...

  5. 人工智能,丹青圣手,全平台(原生/Docker)构建Stable-Diffusion-Webui的AI绘画库教程(Python3.10/Pytorch1.13.0)

    世间无限丹青手,遇上AI画不成.最近一段时间,可能所有人类画师都得发出一句"既生瑜,何生亮"的感叹,因为AI 绘画通用算法Stable Diffusion已然超神,无需美术基础,也 ...

  6. 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然

    from:https://36kr.com/p/5103044.html 到2020年,大多数先进的ML袖珍电脑(你仍称之为手机)将有能力执行一整套任务.个人助理将变的更加智能,它是打造这种功能的切入 ...

  7. EasyNVR智能云终端接入AI视频智能分析功能,用户可自定义接入自己的分析算法

    视频分析的需求 人工智能的发展和在行业中的作用就不用多说了,已经到了势在必行的一个程度了,尤其是对于流媒体音视频行业来说,这基本上是人工智能重中之重的领域,视频人工智能,也就是视频视觉分析的应用方式大 ...

  8. EasyNVR流媒体直播之:零基础实现摄像头的全平台直播 (二)公网直播的实现

    接上回(https://blog.csdn.net/xiejiashu/article/details/81276870),我们实现内网直播,可以实现直播的web观看,该篇博文我们将实现公网的直播. ...

  9. 可能是目前市面上唯一能够支持全平台的RTMP推流组件:Windows、Linux、Android、iOS、ARM

    EasyRTMP是什么? EasyRTMP是一套RTMP直播推送功能组件,内部集成了包括:基本RTMP协议.断线重连.异步推送.环形缓冲区.推送网络拥塞自动丢帧.缓冲区关键帧检索.事件回调(断线.音视 ...

  10. 课程报名 | 基于模型训练平台快速打造 AI 能力

    我们常说的 AI 通用能力往往不针对具体的行业应用,而是主要解决日常或者泛化的问题,很多技术企业给出的方案是通用式的,比如通用文字识别,无论识别身份证.驾驶证.行驶证等,任何一张图片训练后的模型都会尽 ...

随机推荐

  1. mysql-数据类型,类型约束,联合唯一约束,表与表之间的关系,存储引擎---day36

    # ### char varchar(补充) char 字符长度 255个 varchar 字符长度 21845个 # ### part1 数据类型 -时间 date YYYY-MM-DD 年月日(结 ...

  2. JS内存爆破问题

    原理 检测到调试,格式化等,疯狂的在js文件,或者html中进行读写,cookie重写追加,字节追加,导致内存不足够,卡死 内存爆破,指js通过死循环/频繁操作数据库(包括cookie)/频繁调取hi ...

  3. Html飞机大战(十三): 暂停状态编辑

    好家伙,本篇介绍如何添加暂停状态 按照惯例我们依旧先分析思路 什么时候游戏应该暂停? 当我的鼠标不在游戏画面内了,我们就可以直接暂停了 在当我的鼠标回来以后,我们继续进行游戏 所以我们可以监听一个鼠标 ...

  4. DataGear 制作基于 three.js 的 3D 数据可视化看板

    DataGear专业版 1.0.0 已发布,欢迎试用! http://datagear.tech/pro/ DataGear 支持采用原生的HTML.JavaScript.CSS制作数据可视化看板,也 ...

  5. 【Azure App Service】同一个App Service下创建多个测试站点的方式

    问题描述 在一个App Service中,部署多个应用,每个应用相互独立,类似与IIS中在根目录下创建多个子应用的情况. 问题解答 可以的.通过App Service Configuration页面, ...

  6. 【Azure Function】开启Azure Function输出详细Debug日志 ( --verbose)

    When func.exe is run from VS, it suggests "For detailed output, run func with --verbose flag.&q ...

  7. 微信小程序开发:接入阿里云人像动漫化api接口

    前面我已经把腾讯云的人像转动漫化接口接到了我的小程序里,但是和阿里云的对比后,发现阿里云的效果会更好一些,且支持更多特效,如下: 我比较喜欢这个3D特效风格,动画3D也可以,大家拭目以待. 话说上次接 ...

  8. 遥感图像镶嵌拼接:ENVI的Pixel Based Mosaicking工具操作方法

      本文介绍基于ENVI软件,利用"Pixel Based Mosaicking"工具实现栅格遥感影像镶嵌拼接的方法.   首先需要说明的是,本文需要镶嵌的遥感影像并不含地理参考信 ...

  9. OpenCV开发笔记(七十七):相机标定(二):通过棋盘标定计算相机内参矩阵矫正畸变摄像头图像

    前言   通过相机图片可以识别出棋盘角点了,这时候我们需要通过角点去计算相机内参矩阵,通过上篇得知畸变的原理,所以我们尽可能要全方位都能获取标定图片,全方位意思是提供的多张图综合起来基本覆盖了相机所有 ...

  10. 候捷-C++面向对象高级开发

    目录 笔记参考 学习目标 complex类 构造函数 常量成员函数 参数传递 函数返回值 临时对象 友元 string类 三大函数 堆.栈与内存管理 扩展补充:类模板.函数模板及其他 继承.复合.委托 ...