|
动手点关注干货不迷路1. 行业现状和技术挑战VR 眼镜的出现与快速发展让“赛博朋克”、“未来世界”不再遥远,通过手柄与音视频画面的互动,人们可以在娱乐、健身时体会到一种全面超越现有音视频的“沉浸式”体验。而在体验云游戏、大型全景赛事互动等应用时,如果想保持这种“身临其境”的“沉浸式”体验,还需要有超高清、高帧率的全景视频源、强劲的传输带宽和超低头动延时(MTP)。视频源方面,因 VR 眼镜独有的 FOV(Field of View,视场角,VR 设备的重要指标之一,反映视野广度),4K 全景视频在 VR 眼镜上看起来也就只相当于 540P,所以 8K 分辨率视频的分发也仅仅是超高清画质体验的“入门级需求”。另外,一些游戏、体育赛事等内容的视频对帧率也有很高的要求,达到 120fps 才会有较好的体验;传输方面,要实现对这类「富媒体」的超低延时传输则是个很大的挑战,带宽需达到 150Mbps 以上。VR 眼镜方面,最近两年 VR 一体机技术发展迅速,它 All-in-one 的设计脱离了外部设备的连线束缚,即开即用,受到了市场的广泛欢迎,有逐渐代替 VR 头显之势。不过,“便携”的优点也不可避免地会影响它在解码、渲染、带宽处理上的性能表现,在处理上述 8K@120fps / 150Mbps 的任务时需要进行特殊处理。当前行业使用的一些解决方案在视频质量/帧率/延时/带宽等各方面做了取舍,导致最终用户体验不太理想:要么是无法忍受的图像质量(低画质),或者是低帧率带来的眩晕(低帧率),又或是无法忍受的延时(高延时),以及巨额的带宽成本(最后一公里全景下发)等,像业内采用的「直播转码」+ 「CDN 分发链路」方案,一方面它的延时较高,无法适用于一些互动性较高的场景;另一方面,由于在云端进行了一次转码,对画质会产生一定的损伤,也会影响用户的“沉浸式”体验。利用 RTC 传输这类「富媒体」到 VR 一体机可以较好地解决高画质和低延时的问题,但也面临着一些难点。1.1 8K 和 120 fps 难以兼得上文已提到,在 VR 场景中,像云游戏、大型展会、赛事等内容的视频,「高分辨率」和「高帧率」缺一不可。然而我们发现,不管是 GPU 还是 VR 一体机的芯片,其编解码能力都无法兼顾到「8K」和「120 fps」性能体验。我们使用了 gpu-z 工具和 Nsight 工具分析了 Nvidia Tesla 硬件的编码能力,分析发现,当视频源达到 8K 分辨率时,单张 Nvidia Tesla 最高只能支持到 8K@60fps,且存在性能波动,一般单张显卡的性能稳定在 8K@50fps。以下为测试数据:从解码能力看,目前市场上主流的 VR 一体机(价位1500-2000元)基本都选用 高通 XR2 芯片,该芯片对外宣称的解码能力为 8K@60fps 或 4k@120fps,实测下来发现,8K@60fps 也是上限数值,实际难以稳定在 8K@60fps。以下为测试数据:因此,编解码的性能成为了支持 8K@120fps 最大的瓶颈。1.2 全解码方案引起带宽性能不足传输 8K@120fps 全景视频需要 150Mbps 的带宽,目前 5G 渗透率还不高,宽带下载网速无法满足这样的传输条件。以下为三大运营商2021年下行速度中值数据:数据来源:《2021年全国网络速度和质量报告》从合理性上看,VR 眼镜由于视角问题,观看端并不需要同时解码全场景的画面内容,全解码方案浪费了大部分的码流带宽占用,造成了很大的下行带宽,给最后一公里带来了巨大的压力,不利于互联网分发。1.3 头动延时高易引起眩晕MTP(Motion To Photons)是 VR 眼镜的另一个重要指标,指从头动到显示出相应画面的时间,MTP 时延太大容易引起眩晕,目前公认的是,当 MTP 时延低于 20ms 就能大幅减少晕动症的发生。2. 火山引擎 RTC 做了什么2.1 总体介绍为了解决上述难题,火山引擎 RTC 引入了 FoV 方案,即让接收端只接收视角区域内的高清码流来解决编解码性能不足和带宽不足的问题。另外,我们通过同时传输高清的 tile 码流和低清的全景背景码流,避免因快速头动导致视角切换而引起的黑屏。利用火山引擎覆盖全球的实时音视频网络边缘节点,最终可实现低清背景 MTP 转头 -> 控制信令(携带预测结果) -> RTC 边缘媒体服务器 -> 下发新的 tile -> 更新 FoV 内容。行业中已经有一些比较成熟的视角预测方案,当用户头部旋转时,可以根据旋转加速度进行预测未来旋转的角度位置,甚至可以根据用户的动作预测转动角度和方向,再根据预测进行拉取相应数据,可以达到很好的预判以及降低延时效果。首先,这里仅采用本用户自身的历史数据来预测其未来视角,其次,为了适应用户的较快速头动模式,选择了速度较快的 ML 算法来预测。3. 方案落地体验上述方案在实际落地中的表现如下:在 GOP=15 的情况下,8K 高清头动延时在 100ms,端到端延时为 130ms+,下行码率约 20Mbps,数据表现理想。实际体验效果如下:注:1、为了表现高清 FoV 视频和低清背景视频的区别,我们给低清视频添加了绿色滤镜2、视频来源:https://www.youtube.com/watchv=L_tqK4eqelA当头动速度较慢时,视场角范围内只能看到高清的图,看不到绿色的低清图。 已关注 关注 重播 分享 赞 关闭观看更多更多字节跳动技术团队已关注分享点赞在看已同步到看一看写下你的评论分享视频,时长00:090/000:00/00:09 切换到横屏模式 继续播放进度条,百分之0播放00:00/00:0900:09 倍速播放中 0.5倍 0.75倍 1.0倍 1.5倍 2.0倍 超清 流畅 您的浏览器不支持 video 标签 继续观看 基于 RTC 的全景 8K@120fps FoV 实践 观看更多转载,基于 RTC 的全景 8K@120fps FoV 实践字节跳动技术团队已关注分享点赞在看已同步到看一看写下你的评论 视频详情 已关注 关注 重播 分享 赞 关闭观看更多更多字节跳动技术团队已关注分享点赞在看已同步到看一看写下你的评论分享视频,时长00:090/000:00/00:09 切换到横屏模式 继续播放进度条,百分之0播放00:00/00:0900:09 倍速播放中 0.5倍 0.75倍 1.0倍 1.5倍 2.0倍 超清 流畅 您的浏览器不支持 video 标签 继续观看 基于 RTC 的全景 8K@120fps FoV 实践 观看更多转载,基于 RTC 的全景 8K@120fps FoV 实践字节跳动技术团队已关注分享点赞在看已同步到看一看写下你的评论 视频详情 当头动速到较快时,才会偶尔有绿色的低清 tile 块进入到视场角范围内(想象一下,如果没有低清视频流兜底,用户看到的将是缺失的画面)。 已关注 关注 重播 分享 赞 关闭观看更多更多字节跳动技术团队已关注分享点赞在看已同步到看一看写下你的评论分享视频,时长00:080/000:00/00:08 切换到横屏模式 继续播放进度条,百分之0播放00:00/00:0800:08 倍速播放中 0.5倍 0.75倍 1.0倍 1.5倍 2.0倍 超清 流畅 您的浏览器不支持 video 标签 继续观看 基于 RTC 的全景 8K@120fps FoV 实践 观看更多转载,基于 RTC 的全景 8K@120fps FoV 实践字节跳动技术团队已关注分享点赞在看已同步到看一看写下你的评论 视频详情 已关注 关注 重播 分享 赞 关闭观看更多更多字节跳动技术团队已关注分享点赞在看已同步到看一看写下你的评论分享视频,时长00:090/000:00/00:09 切换到横屏模式 继续播放进度条,百分之0播放00:00/00:0900:09 倍速播放中 0.5倍 0.75倍 1.0倍 1.5倍 2.0倍 超清 流畅 您的浏览器不支持 video 标签 继续观看 基于 RTC 的全景 8K@120fps FoV 实践 观看更多转载,基于 RTC 的全景 8K@120fps FoV 实践字节跳动技术团队已关注分享点赞在看已同步到看一看写下你的评论 视频详情 4. 总结与展望4.1 总结火山引擎 RTC FoV 方案通过如下的技术优化,实现了 8K@120fps 全景视频的实时传输:对 8k 高清视频进行分片,支持多 GPU 分布式并行编码;按需下发和解码视场角范围的视频分片,极大程度降低了下行带宽要求,并且实现基于 4K 解码器能力达到全景 8K 的画质体验;通过视角预测,极大地降低了高清视频的头动延时(MTP)
|
|