实战 NVENC 快速编码存档视频

文章目录[隐藏]

0.前言

使用显卡进行视频编码加速其实并不是什么新鲜技术,早在2011年 Intel 就在处理器中增加了名为 Quick Sync 的硬件编码单元用以加速视频处理。而 Nvidia 这边利用 CUDA 核心的通用计算能力进行视频编码加速时间还要更早一些。但彼时受限于技术水平和编码规范本身,显卡硬编码除了速度之外优势似乎并不明显。对于低码率区间,硬件编码的画质更是可以用惨不忍睹来形容。

不过随着技术的演进和时代的变化,配备 HEVC 编码加速支持的现代显卡又再度回到了大众的视野当中。对于时下热门的直播类主播而言,要在画质、转码速度、延迟三者之间找到平衡点并非易事。而使用显卡进行编码加速无疑是众多解决方案中性价比最高的一个。

我们今天的主角 NVENC 是 Nvidia 自 Kepler 架构显卡(600系)起所配备的独立显卡编码加速单元。相较于过往使用 CUDA 通用计算进行加速,NVENC 无论是画质还是性能方面都有了长足的进步。今天我们便以 NVENC 为例,实战处理非常常见的 1080P 30fps 6Kbps 标准的视频压缩存档。(相信大家应该都明白)

1.软件及硬件

由于 reizhi 囊中羞涩并买不起 RTX 显卡,以下的配置方案基于 Pascal 架构的 GTX 1080 显卡。如果你使用的也是10系显卡的话可以直接抄作业,16/20/30系可以对参数稍加改动。

不支持 NVENC 的显卡:MX130 MX150 MX330 MX350 GT 1030 等。

软件方面使用的是 StaxRip ,对于 ffmpeg/NVENC 套壳软件而言画质上其实并不会有什么区别,更多的是 GUI 是否方便好用。下载地址见文末。

注:本文与任意第三方无利害关系,请放心食用。

2.新增配置模板

运行软件后,依次点击:x265 – Edit Profiles ,选中 Nvidia | H265 后点击右侧的 Clone ,最后点击 Rename 将复制的模板重命名为好记的名字,如 nvenc 。

双击刚刚新建的配置模板,进入详细参数设置。

3.详细参数设置

3.1 Basic

Basic 页面顾名思义是一些基本参数,其中 Bitrate 项10系显卡建议设置为3700,16/20/30系显卡可酌情降低20%左右。其他项目如图设置即可。

额外说明:除非使用的是900系显卡,无论源视频是否为10位色深,此处都按图设置。

3.2 Rate Control

Rate Control 页面主要用于控制码率,其中 Max Bitrate 和 VBV Bufsize 项10系显卡看图即可,16/20/30系显卡可对应降低20%左右。

注意 Multipass 项选择 2Pass-Full ,其他如图所示即可。如果希望牺牲一定的画质来提高转码速度,也可以选择为 2Pass-Quarter 。

3.3 Slice Decision

Slice Decision 页面主要是和关键帧有关的一些设置项,此处按图设置即可。

额外说明:10系显卡不支持带 B 帧的 HEVC 编码,所以前两项设置仅在16/20/30系显卡上生效。

3.4 Analysis

Analysis 页面只需要勾选 Enable weighted prediction in P slices 一个项目即可,这里就不截图了。

3.5 VPP

VPP 是 Video Post Processing 的缩写,即视频后处理。这里通常是一些视频后期强化调整的项目。

如果需要对视频进行反交错处理,进入 Deinterlace 页面,选择 AFS 或 Nendi 均可。使用默认参数,实测效果没有明显区别。

额外说明:如果选择 AFS ,还要在 Input/Output 页面为 Interlace 项选择 Top Field First 。

reizhi 在10系显卡上测试使用 nvenc 后发觉画面锐度略有下降,推荐按照上图设置轻微的细节锐化。

3.6 其他

如果需要计算 SSIM 和 PSNR ,可以进入 Statistic 页面进行勾选。如果不了解其含义请不要勾选。

Input/Output 页面的 Decoder 项选择 ffmpeg(DXVA2) 以便使用显卡进行视频解码,加快整体转码速度。

全部完成后,点击右下角的向下箭头,选择 Save Profile 保存刚刚的预设,最后点击 OK 返回软件主界面。

4.添加转码任务

确认好配置模板选择的是之前创建的 nvenc ,容器格式选择 mp4 ,点击最下方的 Click here …… 来添加待转码的视频到 StaxRip 中。最后点击 Start 即可启动转码任务。

如果还需要对视频进行调整分辨率或帧率等操作,可以在添加任务前点击 AVS Filters 进行相关的设置。

由于 Nvidia 在2020年6月将消费级(Geforce)显卡的 NVENC 会话数限制提高到了3,我们可以打开3个 StaxRip 同时运行转码任务。只需要启动一个新的实例,依次点击 Tools – Jobs – Start 即可。

额外说明: 在转码完成后可以删除 _temp 为后缀的同名文件夹。

5.速度和能耗

在 reizhi 的系统上,3实例的合计速度可以达到 340-360fps ,GPU 报告的功率消耗为 83.6w 。

额外说明:由于配备了2个 NVENC 模块(Titan V 为3个),1070/1070ti/1080 的转码速度要高于16/20/30系显卡。但除1650外,后者支持带 B 帧的 HEVC 编码,同体积下能够提供更好的画质。

6.画质和体积

以其中一个编号为 SSNI-805 的文件为例,编码前文件大小为 5.11G ,编码后为 3.32G ,压缩率64.97%。

视频质量分析数据如下(基于前30分钟):

SSIM: Y:0.993126 U:0.996568 V:0.995596 All:0.994112
PSNR: psnr_avg:50.43 psnr_y:49.51 psnr_u:53.65 psnr_v:52.84
VMAF: 98.513620

如果你对以上指标并不熟悉,那么用更通俗方式来表述就是:在逐帧100%分辨率肉眼对比的情况下,仍然有较高的难度来区分源视频和受损视频。

7.其他资料

如果你对 VMAF 感兴趣,可以参见之前的文章:使用VMAF对视频质量进行分析

StaxRip 项目地址:https://github.com/staxrip/staxrip/

NVENC 详细支持列表:https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new

原文地址:https://cloud.tencent.com/developer/article/2123106

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340