云游戏

作者: Sirus_32e0 | 来源:发表于2020-06-19 20:22 被阅读0次
image.png

视频音频+ 操作指令 TRTC实时音视频来实现

指令控制流的传输方式???

  • 华为云游戏的架构


    华为云的架构

云游戏的三种实现形式

  • 基于视频串流的云游戏
  • 基于文件串流的云游戏
  • 基于指令流实现方案概要及难点和解决方法
    实现方案概要:基于通用的3D API(OpenGL、Driect3D),截获游戏对API的调用信息及资源,进行针对性的压缩,在client使用这些信息调用API进行渲染。
    实现难点及解决方法:
    a)设备之间的兼容性:需要保证双向设备都渲染正常;设备支持的特性交b)性能与流量之间权衡:压缩与性能之间调整,保证整体效果最优;帧与帧之间存在强关联性;针对性的Diff算法及优化,Diff策略控制
    c)多线程渲染:区分不同的线程,在client进行合成
    d)声音的体验优化:同样的基于指令,但要实现多套API,声音缺乏统一的API
    端游指令流介绍
    基于指令流的端游,在原理、与架构上与终端游戏的指令流是一致,区别在于,API调用时产生的数所量级大,也视频流方案也大很多,因此需要针对数据做细分压缩;在服务器端,需要实现Virtual DirectX3D,摆脱对显卡、显示器的依赖。

视频串流中的具体实现

  • 控制流的传输 (重点)
    本次演讲主要内容将包括云游戏整体方案的架构介绍、使用开Open WebRTC ToolKit (OWT)实现流和控制命令的传输,以及为实现云游戏所需的超低延迟所做的优化。

WebRTC实时音视频和数据传输为云游戏提供了很好的技术支撑,用户不用下载任何插件,在浏览器里就可以玩高端游戏,所以用WebRTC进行视频和音频的传输。传输层会把音视和视频的数据发到客户端,客户端再进行解码和播放。因为玩游戏,用户是有输入的,所以客户端还需要采集用户的鼠标、键盘、手柄等信息,这些信息通过WebRTC的data channel,发到服务器上的WebRTC的传输层,然后传输层会把指令拆出后再传到事件的重播模块,重播模块相当于把用户在客户端的指令重新应用到游戏里面去。https://cloud.tencent.com/developer/article/1554806



游戏直播

上图部分我将对WebRTC的传输模块做一个更详细的解释,首先,在视频源外部进行编码器的优化,这是基于SDK做的一个编码好的视频数据,视频数据再把编码好的视频源送进WebRTC的模块,所以这里用到的是一个已经构造好的接口。其次,音频方面,目前我们是直接把GamingAnywhere抓到的音频的PCM数据直接输入,用WebRTC内置的音频编码器进行编码,最终将音频和视频全部发送到发送器,作为RTP打包后再发送出去。另一端通过客户端把鼠标、键盘等事件全部收集好,再传到datachannel的SCTP模块。通过ga-controller把客户端上JSON格式的鼠标、键盘事件转成SDL格式的事件送到SDL模块。
  • 事件传输 SCTP

腾讯云的解决方案

image.png

稳定低延时的音视频互动能力

  • 基于 Tencent-RTC 进行扩展,大幅度降低开发难度;
  • “腾讯明眸极速高清”智能动态编码技术,低码率高画质;
  • 基于优秀的网络调控算法和完善的差错恢复机制,有效提升播放效果;
  • 基于 UDP 的高效信令数据传输通道,方便实现操作信令交互。

精细化的资源调度能力

  • 基于镜像更新,无缝更新游戏内容版本;
  • 遍布全国的边缘计算节点,请求就近调度管理;
  • 支持 BGP、边缘网络接入,降低带宽使用成本;
  • 提供端游 X86 架构+手游 ARM 架构方案。

类似案例

相关文章

网友评论

      本文标题:云游戏

      本文链接:https://www.haomeiwen.com/subject/hbkhxktx.html