背景
在刚提出4K视频的时候,大多数人都觉得没有必要,4K的出现,意味着更高的硬件规格和传输要求,1080P看的很爽、很清晰,完全满足了日常的需求。随着电视的尺寸越来越大,原本1080P成像已经无法满足人们对于细节的极致追求,4K视频不仅成像更细腻,在细节处理上优势也非常明显,颜色也更亮丽、饱满,逼真,给人身临其境的感觉。4K视频具有高分辨率、宽色域、高动态范围等优势,随着5G技术和H.265(HEVC)编码标准的出炉,4K视频直播迎来了曙光。
一张图解释4K VS 1080P
1080p
Often, 1080p is referred to as “Full HD.” In a 1080p television, there are 1,920 columns multiplied by 1,080 rows for a total of 2,073,600 pixels — more than twice as many pixels as you’ll find in a 720p screen. For a while now, 1080p has been the industry standard for high-definition displays, and most content (that is, television broadcasts, shows, and movies) is produced and distributed in 1080p.
4K Ultra HD
The next level of HD is 4K — often called “Ultra HD” or UHD. Technically, the name is a bit of a misnomer, because there are 3,840 columns and 2,160 rows of pixels, which is why you’ll occasionally see this resolution referred to as 2160p. That’s a total of 8,294,400 pixels, which is four times as many pixels as a Full HD 1080p display and nine times as many pixels as a 720p display.
Windows平台真实时4K直播解决方案
先来解释下什么是实时视频,实时视频就是视频图像从产生到消费完成整个过程人感觉不到延迟,只要符合这个要求的视频业务都可以称为实时视频。关于视频的实时性归纳为三个等级:
- 伪实时:视频消费延迟超过 3 秒,单向观看实时;
- 准实时: 视频消费延迟 1~3 秒,能进行双方互动但互动有障碍;
- 真实时:视频消费延迟 < 1秒,平均 500 毫秒。
基于英伟达显卡硬编码(NVIDIA NVENC)的RTMP、RTSP低延迟技术方案:
4K相当于4个1080P,Windows平台软编码有些困难,特别是h265,姑且不说4K软编,4K软解在一些配置一般的机器都比较吃力,基于此,大牛直播SDK(Github)实现了Windows平台特定机型硬编、硬解码低延迟解决方案。
- 针对编码这块,我们实现了基于英伟达显卡硬编码(NVIDIA NVENC)的RTMP、RTSP低延迟技术解决方案,无论是H265还是H264 4K 30fps都能编的动(以下测试截图,基于GeForce RTX 2060显卡);
- 针对解码播放,特别是Windows平台多路播放诉求下,我们实现了Windows平台特定机型硬解码。
通过特定机型硬编码、解码整体技术方案下,我们把4K下的RTMP的整体延时控制在180-300毫秒,实现了真实时技术解决方案,无图无真相:
RTMP扩展H265直播
摄像头采用“海康威视监控摄像头 800万4K超清USB直播摄像头 网络课程远程视频会议 台式机电脑摄像机 2CS54U0B-SD”。
RTMP推送端H265 4K硬编码配置(对应 SmartPublisherDemo.exe):
RTMP播放端 H265 4K硬解码效果(对应 SmartPlayer.exe):
RTMP H265 4K编码和解码GPU, CPU占用情况:
RTMP H265 4K延时效果:
从图上可以看出延时也就100多毫秒。
RTMP H264 直播
RTMP推送端H264 4K硬编码配置(对应 SmartPublisherDemo.exe):
RTMP播放端H264 4K硬解码效果(对应 SmartPlayer.exe):
RTMP H264 4K 硬编解码GPU, CPU占用情况:
RTMP H264 4K直播低延时效果:
总结:
从整体测试来看,英伟达硬编码(NVENC)能达到期望的效果,可以满足毫秒级低延时大分辨率需求,同时NVENC也提供了灵活的码率控制策略来满足不同的编码需求。