基础知识
我们在基础知识中了解了什么编码和解码,那么之前的行为都是CPU在处理,我们称之为软编码,软解码。
这里我们借用GPU的能力,借用它上面的视频编码解码芯片,直接从硬件层面进行对应的操作,我们称为硬件编码,硬件解码。硬件编码解码的优势在于专门在GPU设备上有一个芯片处理,肯定比CPU快很多。
硬件编解码的供应商最主要的是NVIDIA,它的GPU能力我想目前是世界第一了。当然Intel也有一些,本文主要介绍NVIDIA的能力。
NVIDIA GPU
NVIDIA GPU 包含一个或多个基于硬件的解码器和编码器(独立于 CUDA 内核),为多种流行的编解码器提供完全加速的基于硬件的视频解码和编码。卸载解码/编码后,图形引擎和 CPU 可用于其他操作。
用于视频解码(称为NVDEC)和视频编码(称为NVENC)的GPU硬件加速器引擎支持比实时视频处理更快的速度,这使得它们除了视频播放之外还适合用于转码应用。视频编解码器 SDK 可让您利用 NVENC 和 NVDEC 在 Ada Lovelace 架构上实现实时 8k 60FPS AV1 和 HEVC 视频。
NVENC – 硬件加速视频编码
在 NVIDIA Ada 架构上引入使用视频编解码器 SDK 12.0 的 AV1 编码。 AV1 是最先进的视频编码格式,与 H.264 和 HEVC 相比,它支持更高的质量和更好的性能。在 Ada 上,多个 NVENC 与 AV1 相结合,可以以 60fps 编码 8k 视频,同时进行更多数量的并发会话。通过将完整编码(计算复杂)卸载到 NVENC,图形引擎和 CPU 可以自由用于其他操作。例如,在游戏录制和流媒体场景中,例如使用开放广播软件 (OBS)流媒体到Twitch.tv ,将编码完全卸载到 NVENC 使图形引擎带宽完全可用于游戏渲染。
NVENC 能够在不使用 CPU 的情况下实现高质量和超低延迟的流媒体应用程序,以非常高的质量进行编码以进行存档、OTT 流媒体、网络视频,并以每个流超低功耗(瓦/流)进行编码
官方主要站点:https://developer.nvidia.cn/video-codec-sdk
硬件编码的性能对比
延迟容忍下的编码表现
低延迟下的编码对比
NVDEC – 硬件加速视频解码
NVIDIA GPU 包含一个基于硬件的解码器(称为 NVDEC),它为多种流行的编解码器提供完全加速的基于硬件的视频解码。通过将完整解码卸载到 NVDEC,图形引擎和 CPU 可以自由用于其他操作。 NVDEC 支持比实时解码快得多的速度,这使得除了视频播放应用之外,它还适合用于转码应用。
NVDECODE API 使软件开发人员能够配置此专用硬件视频解码器。该专用加速器支持 Windows 和 Linux 平台上以下视频编解码器的硬件加速解码:MPEG-2、VC-1、H.264 (AVCHD)、H.265 (HEVC)、VP8、VP9 和 AV1
解码表现
官方地址
里面针对H264, 4K画质的码率大约在20M左右,这个数据和我们实际验证的结果差不多。
编码器、码率、分辨率和帧率
编码就是压缩图像。图像尺寸越小,我们需要压缩的越少,其保持的质量就越高。同样的情况也适用于帧率,观众很容易注意到 FPS 的降低,但分辨率则不明显,所以我们总是尝试以 60 FPS 进行串流。
GeForce RTX GPU 具有专用硬件编码器 (NVENC),可使您在不影响 GPU 或 CPU 性能的情况下录制内容或推流。 新一代 RTX GPU 支持更新版、更高效的编解码器。 可以通过以下两种方式之一来考虑更高效编解码器的好处:
- 以相同画面质量进行编码,使用更高效的编解码器将比效率较低的编解码器占用更少的磁盘空间和更低的带宽
- 在相同的文件大小或带宽下,使用更高效的编解码器编码的视频画面质量将高于效率较低的编解码器
编解码器的相对压缩效率
H.264 | HEVC | AV1 |
1.0x | 1.15x | 1.40x |
RTX GPU 系列 | H.264 | HEVC | AV1 |
RTX 20 系列 | 支持 | 支持 | 不支持 |
RTX 30 系列 | 支持 | 支持 | 不支持 |
RTX 40 系列 | 支持 | 支持 | 支持 |
直播平台可能不全部支持所有编解码器。 下表列出了主流直播服务的编解码器支持情况。
直播平台 | H.264 | HEVC | AV1 |
Facebook Gaming | 支持 | 不支持 | 不支持 |
Twitch | 支持 | 不支持 | 不支持 |
YouTube | 支持 | 测试版 | 测试版 |
如何确定您的比特率
首先,进行网速测试以确定您的上行带宽(如 SpeedTest)。我们希望使用约 75% 的上行带宽,因为游戏和其他程序(如 语音聊天工具Discord)也会抢占带宽。
然后,我们将确定可以用于这种码率的分辨率和 帧率。大多数直播网站都有建议的使用参数(Twitch, Youtube, Facebook Gaming)。以下是我们的建议:
带宽情况 | 分辨率 | |||
上行带宽 | 比特率 | H.264 | HEVC | AV1 |
4 Mbps | 3 Mbps | 576p | 720p | 720p |
5 Mbps | 4 Mbps | 720p | 720p | 1080p |
8 Mbps | 6 Mbps | 720p | 1080p | 1080p |
10 Mbps | 8 Mbps | 1080p | 1080p | 1440p |
12 Mbps | 10 Mbps | 1080p | 1440p | 1440p |
15 Mbps | 12 Mbps | 1080p | 1440p | 4K |
20 Mbps | 15 Mbps | 1080p | 4k | 4K |
25 Mbps | 20 Mbps | 4k | 4k | 4K |
50 Mbps | 40 Mbps | 4k | 4k | 4K |
- 高动态内容的重要注意事项。如果您要串流高动态场景(如赛车游戏、第一人称射击游戏等),我们强烈建议降低分辨率。高动态内容不能被压缩太多,并且可能产生更多伪影(编码错误),使您的视频流看起来呈“块状”。如果降低分辨率,就会减少编码的数据,从而得到更高的观看质量。例如,对于《堡垒之夜》,许多直播者采用 1280×720 60 FPS、6,000 Kbps 的码率进行串流,而不是 1920×1080。
RA/SD 衍生者AI训练营。发布者:chris,转载请注明出处:https://www.shxcj.com/archives/6585