前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

原创
作者头像
LiveVideoStack
修改2020-04-15 14:48:29
4.4K0
修改2020-04-15 14:48:29
举报

随着5G技术的发展,其高带宽、超低延时的特性为高分辨率全景视频的实现带来了更多的可能。本文来自Open WebRTC Toolkit (OWT)音视频架构师戴建辉在LiveVideoStackCon2019深圳大会的演讲,详细介绍了如何基于Open WebRTC Toolkit (OWT)方案,结合SVT-HEVC tile-based编码等技术实现低延时的8K全景直播系统。

文 / 戴建辉

整理 / LiveVideoStack

大家好,我来自英特尔的WebRTC团队,主要负责Open WebRTC Toolkit(OWT)开源项目中音视频相关的工作。本次分享的主要内容是基于WebRTC技术实现360全景视频直播的一些探索及实践。

2018年5G还处于一个商业试点的阶段。仅仅1年过去,5G手机就已经得到快速的普及。5G技术高带宽及超低延时的特性,为各行各业带来一些颠覆性的变革。

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

对于视频行业而言,以下几个方向值得关注:首先是360全景视频,也是本次讨论的主题;其次Cloud Gaming(云游戏),是目前高速发展的领域;VR和AR技术;最后,Smart City(智慧城市):包括无人驾驶技术、IoT技术。

360 Video ingredients

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

从内容采集来讲,首先是360全景摄像头以及360全景图像拼接技术,这方面目前已经有很多成功的公司。其次是360 projection, 目前比较通用的是EquiRectangular Projection (ERP)和CubeMap Projection (CMP)。行业巨头也纷纷提出各自的映射模型,比如Facebook采用金字塔模型;Google提出的Equi-Angular Cubemap。

8K UHD Video

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

上图是一个不同分辨率的对比。从到4K发展到8K,更大的分辨率会带来更广阔的视角、更多的细节以及更丰富的视觉体验,同时也带来对网络传输带宽更高的需求。

8K HEVC 30FPS视频流码率通常达到100Mbps。如此高的网络传输带宽即使对于5G网络,也是不小的压力。如果考虑到帧率进一步的提高,到达8K 60FPS;或者8K Stereo 360全景视频,对于网络带宽的需求还会成倍地增长。

Viewport dependent 360 video streaming

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

根据360全景视频特点,特定时刻的用户视角通常只占据全部图像中一小部分区域。如果对全景图像进行8K的网络传输和视频解码,会造成了极大的网络资源和计算资源的浪费。并且目前主流的VR设备还不具备8K视频解码能力,甚至4K也只是一些高端设备才能支持。

VR设备的视角通常在80~120度。以90度视角为例,用户在特定时刻可见的画面只占据全景图像的1/8左右。因此,仅对用户当前视角之内的图像进行网络传输,在客户端视频解码、渲染,理论上可以节省约70%网络传输带宽。即在一个2K的设备上,就可以具有8K全景视频同样的体验。

Multiple streams coding scheme

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

8K全景视频的编码方式有很多。Multiple streams的方式,是将8K原始图像划分成若干个独立区域,对每一片区域分别进行编码。客户端只需要根据用户当前视角,选取视角所覆盖区域的多路视频流进行传输。

这种方式特点是可扩展性强。不同时刻不同用户的视角各有不同,如果每一个的用户都采用一个单独的编码器,服务端没有如此多的计算资源实现的;而Multiple streams方式只需要采用固定数量的编码器就可以服务于海量用户。

但是这种方式的缺点也很明显。首先,实现起来比较复杂。在服务端,全景图像的每一个区域的视频流,都需要严格的帧级别时间戳同步;同样,客户端接收到多路视频流解码之后,也需要进行严格的同步渲染。

其次,如果对原始8K视频进行切分的粒度较小,会导致用户视角覆盖的区域比较多;客户端则需要同样多数目的解码器。而很多设备无法支持多个解码器。因此这种方式不太常用。

Tiles in HEVC

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

针对上述不足,OMAF标准提出了基于HEVC Tile来实现的全景视频。类似于H264 Slice,Tile是HEVC中引入的并行化编码工具。两者的区别在于Slice仅支持横向划分的,而Tile支持横向纵向的矩形的划分。那么Tile有什么优点呢?

第一, 与Slice相比,它保留了纵向像素点的关联度,比Slice压缩效率更高。第二, Tile header size在bitstream中比Slice header更小,进一步提升了编码效率。

在全景视频编码中,对原始图像的切分使用HEVC Tile来实现。

Motion-Constrained Tile Set (MCTS)

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

在编码端,对每一个HEVC Tile的预测编码进行一定约束。帧内预测只在当前Tile进行,禁止tile间预测编码; 同样,帧间预测也约束在同样空间位置,不同时间序列的Tile中。通过对预测编码的这些约束,就可以实现每一个Tile的序列,不依赖于其它位置Tiles的独立解码。

经过MCTS编码后,根据用户当前的视角,选择多个Tiles生成一个HEVC兼容的Bitstream。这种方式可以实现一次编码,根据不同Tiles的组合,产生多个不同视角的Bitstreams服务于不同的用户。极大的节省了服务端的视频编码计算资源。在客户端,也仅需要一路标准HEVC解码器。当用户视角改变导致Tiles的组合发生变化时,需要等到最近的IDR Frame即GOP边界,才能产生对应新的Bitstream。

HEVC MCTS-based coding scheme

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

上图是所采用的HEVC Tile编码的方式。对8K原始图像进行原始分辨率的HEVC Tile编码;同时,把原始图像缩放到一个较小分辨率,进行另一路低分辨率HEVC Tile的编码。

由于用户视角可以在任意时刻发生切换,然而HEVC Tile视频流只能在GOP的边界才能重新组合不同区域的Tiles。当用户切换到新的视角,而新区域的HEVC Tiles还来不及传输时,用户会体验到短时间的黑屏现象。为了避免视角快速切换中的黑屏,除了产生原始分辨率HEVC Tiles流之外,会额外传输覆盖全部区域的较低分辨率的流,作为原始分辨率HEVC Tiles的后备。

当用户快速转动视角时,如果客户端还没有接收到原始分辨率的HEVC Tiles,这部分缺失的区域会使用低分辨率的HEVC Tiles呈现给用户。用户会体验到一个短暂的图像从模糊到清晰的过渡,避免了黑屏的体验。

原始分辨率和低分辨率的两路HEVC Tile视频流,通过Bitstream Rewriter合成一路HEVC兼容Mix Resolution流。客户端只需要一个HEVC Decoder即可实现Mix Resolution的解码。

DASH vs WebRTC

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

目前的全景视频采用的OMAF协议是基于DASH的实现。在这里对DASH和WebRTC进行简单的比较。DASH是基于HTTP/TCP的可靠传输,而WebRTC是基于UDP的实时传输。DASH通过Segment的方式,通常以多个GOP为最小单元,进行传输。而较新的CMAF则是通过更小的Trunk来降低延迟。而WebRTC是通过Frame传输,降低了Frame Buffering产生的延时;根据不同的Segment/Trunk配置,DASH的延迟在3~60秒。WebRTC的延迟基本上在1秒以内,在Cloud Gaming中更是实现了100毫秒~500毫秒以内的延迟;DASH通过多路不同编码质量的流实现Adaptive Bitrate,而WebRTC则通过带宽预测调整Bitrate;DASH主要应用于CDN部署,WebRTC则服务于实时应用场景。

基于Open WebRTC Toolkit (OWT) 8K全景视频低延时直播系统

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

基于Open WebRTC Toolkit的8K全景视频低延时直播系统,通过采用英特尔开源的SVT-HEVC进行HEVC Tile编码,降低对网络传输带宽的要求,提高用户感知Resolution;并且结合英特尔5G技术中Edge Server的部署,进一步降低整体的延迟;8K HEVC Tile转码Media Server运行于Intel® Xeon® Platinum processor。

SVT-HEVC

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

英特尔SVT-HEVC是Open Visual Cloud开源项目中的一部分,目前实时编码可以达到8K 60FPS。另外它是一个可扩展的技术方案,针对英特尔至强系列处理器的多核架构进行优化。在同一框架下除SVT-HEVC外,还实现了SVT-VP9,SVT-AV1以及SVT-AVS3。图中是SVT-HEVC和X265编码性能的对比。

Open WebRTC Toolkit (OWT)

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

Open WebRTC Toolkit是英特尔在Github上开源的流媒体发布平台。基于WebRTC技术,并兼容目前主流的HLS,RTP,RTMP,DASH。项目主要是分成服务端和客户端两部分,客户端支持所有主流的浏览器,包括Chrome、Firefox 、Edge Browser等;移动端支持Android,iOS;以及对于Windows和Linux的Native SDK支持。

服务端具有分布式部署、高可用性等特点,可以实现各种流协议的接入接出,包括音视频的转码,混流和服务端推流的功能。基于至强处理器和英特尔Graphics视频编解码的软件和硬件的优化。

为了增加对360全景视频的支持,扩展了原生WebRTC Stack并加入了HEVC Codec和HEVC Tile的支持,以及HEVC RTP的Packetizer和De-packetizer;第二,Media Server对8K的转码进行了优化。第三,实现了基于FoV(Field of View)反馈的HEVC Bitstream Rewriter的功能;第四,基于RTC本身实时低延时的传输效果,实施了用户FoV到Server的低延时反馈通道。最后整个Server是分布式部署的(Media Server和Edge Server),并且支持Android、iOS、Window等不同客户端。

Distributed deployment

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

上图是大型体育赛事直播应用场景的部署图。在体育场的360全景摄像机,通过5G网络把360全景视频,接入到体育场边缘的Media Server。Media Server进行HEVC Tile转码,产生原始分辨率和低分辨率的两路HEVC Tile流。两路HEVC Tile流由核心网络传送到各个Edge Server。Edge Server根据用户反馈的不同视角,通过Bitstream Rewriter产生Mix Resolution的HEVC Tile流,通过5G网络发送到各个客户端。

End-to-end workflow

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

360全景摄像头可以通过RTSP或者RTMP协议来接入到Media Server,接入的原始8K视频码率是100Mbps。靠近内容产生端的Media Server进行HEVC Tile转码后,产生的原始分辨率和低分辨率两路流,通过内部节点间的QUIC或者TCP协议传输各个Edge节点。Edge Server会根据每一个用户的FoV反馈,对原始分辨率和低分辨率流进行拼接,产生Mix Resolution流。新产生的Mix Resolution流通过WebRTC协议连接对应的客户端。客户端通过单路HEVC解码,还原为符合用户当前视角的360全景视频。

Future Work

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

目前方案中Media Server在体育场边缘主要做HEVC Tile转码,并没有包括360全景图像拼接(360 Image Stitching)。需要在360全景摄像头和Media Server之间,部署额外的图像拼接服务器,这引入了拼接图像的转发延时。未来通过集成360全景图像拼接算法到Media Server,可以进一步降低端到端延时以及服务器部署成本。

其次,目前的方案中采用的原始分辨率和低分辨率两路流的方式中,不能很好的做的FoV的快速切换和Adaptive Bitrate。未来可以通过实现高、中、低多种分辨率和不同GOP的组合,优化FoV切换延时和Network Adaption。

基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

多数浏览器对于HEVC编码标准兼容性存在缺陷。随着AV1编码器的逐渐成熟,可以通过基于AV1的360全景视频实现达到与浏览器、WebRTC以及WebXR等技术的深度融合。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 360 Video ingredients
  • 8K UHD Video
  • Viewport dependent 360 video streaming
  • Multiple streams coding scheme
  • Tiles in HEVC
  • Motion-Constrained Tile Set (MCTS)
  • HEVC MCTS-based coding scheme
  • DASH vs WebRTC
  • 基于Open WebRTC Toolkit (OWT) 8K全景视频低延时直播系统
  • SVT-HEVC
  • Open WebRTC Toolkit (OWT)
  • Distributed deployment
  • End-to-end workflow
  • Future Work
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档