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



「」基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
本文插图
photo from Ready Player One
随着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全景视频低延时直播系统
本文插图
对于视频行业而言 , 以下几个方向值得关注:首先是360全景视频 , 也是本次讨论的主题;其次Cloud Gaming(云游戏) , 是目前高速发展的领域;VR和AR技术;最后 , Smart City(智慧城市):包括无人驾驶技术、IoT技术 。
360 Video ingredients

「」基于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全景视频低延时直播系统
本文插图
上图是一个不同分辨率的对比 。 从到4K发展到8K , 更大的分辨率会带来更广阔的视角、更多的细节以及更丰富的视觉体验 , 同时也带来对网络传输带宽更高的需求 。
8K HEVC 30FPS视频流码率通常达到100Mbps 。 如此高的网络传输带宽即使对于5G网络 , 也是不小的压力 。 如果考虑到帧率进一步的提高 , 到达8K 60FPS;或者8K Stereo 360全景视频 , 对于网络带宽的需求还会成倍地增长 。
Viewport dependent 360 video streaming

「」基于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全景视频低延时直播系统
本文插图
8K全景视频的编码方式有很多 。 Multiple streams的方式 , 是将8K原始图像划分成若干个独立区域 , 对每一片区域分别进行编码 。 客户端只需要根据用户当前视角 , 选取视角所覆盖区域的多路视频流进行传输 。分页标题
这种方式特点是可扩展性强 。 不同时刻不同用户的视角各有不同 , 如果每一个的用户都采用一个单独的编码器 , 服务端没有如此多的计算资源实现的;而Multiple streams方式只需要采用固定数量的编码器就可以服务于海量用户 。
但是这种方式的缺点也很明显 。 首先 , 实现起来比较复杂 。 在服务端 , 全景图像的每一个区域的视频流 , 都需要严格的帧级别时间戳同步;同样 , 客户端接收到多路视频流解码之后 , 也需要进行严格的同步渲染 。
其次 , 如果对原始8K视频进行切分的粒度较小 , 会导致用户视角覆盖的区域比较多;客户端则需要同样多数目的解码器 。 而很多设备无法支持多个解码器 。 因此这种方式不太常用 。
Tiles in HEVC

「」基于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全景视频低延时直播系统
本文插图
在编码端 , 对每一个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全景视频低延时直播系统
本文插图
上图是所采用的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全景视频低延时直播系统分页标题
本文插图
目前的全景视频采用的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的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全景视频低延时直播系统
本文插图
英特尔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是英特尔在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全景视频低延时直播系统
本文插图
上图是大型体育赛事直播应用场景的部署图 。 在体育场的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全景视频低延时直播系统
本文插图
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全景视频低延时直播系统
本文插图
目前方案中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等技术的深度融合 。