云游戏

作者: 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