JuLian1130 / CloudGamePlatform

云电脑云游戏平台整体解决方案,支持windows、Android、OSX/IOS平台

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

云游戏平台项目

第18届China joy在上海国博中心举行,除了Coser和showgirl外,最大的亮点就是云游戏展台。云游戏从14年的onlive拉开帷幕到19年谷歌的stadia平台发布,标志着进入到百家争鸣。
目前国内发行较早的有上海的达龙云电脑,腾讯旗下也有好几款云游戏平台。

1.目录结构:

bin---可以运行的文件 captureServer-----远程云游戏服务器 client----android平台,windows平台,ios平台的客户端代码

2.技术介绍:

a.虚拟化技术(我提供一种方案)

 1.采用citrix的技术方案,主要是vgpu能独立支持
 2.xenserver 做云主机的虚拟化
 3.采用maxwell架构,或者pascal架构的nvidia显卡来实现vgpu
 4.采用xencenter来管理vps

如果说就是一台主机对一个用户的话,就不需要使用虚拟化技术。

b.远程云主机端

1.流媒体服务器,提供点播功能,rtsp协议 2.流的源---桌面或者游戏主界面 3.抓屏技术(nvidia capture sdk 、DXGI),采用后者,前者需要付费。 4.视频编码技术 h264,h265 nvidia的 mediasdk 5.音频获取(mmdeviceapi) 6.音频编码 7.封装rtsp协议 8.push到网络 9.提供操控信令接收服务 10.hook技术,模拟外设指令操作游戏

c.用户端

1.流媒体流的接收 2.组包 3.解封装 4.解码 5.渲染视频 6.渲染音频 7.捕获用户IO操作指令传输到云平台

3.相关模块及用到的开源代码: a.远程桌面端:

 1.rtsp流媒体服务器:MediaServerLib  参考:https://github.com/PHZ76/RtspServer

2.desktop Capture 桌面抓屏:WinCaptureAndencodeLib 参考:https://github.com/diederickh/screen_capture

3.video encode 视频编码:NEncoderLib  参考:NVIDIA官方demo Video_Codec_SDK_8.2.15 https://developer.download.nvidia.com/designworks/video-codec-sdk/secure/8.2/Video_Codec_SDK_8.2.15.zip?30lk3BXfcLRLrr8rEzpJaICqxnI2-lm9MCVk2MgnNjb1cMjkso-WJ7c83Jp0z8CoIukaGHcuC_RHCHamT42dFy0wWk3SskYG8WqIegT8Y5FuI9kjgetC9JBDBqV-gZrzV4woGfamR3z9MPQjeP2Fva3vPHWqhaY1EOebN3-SS7o

4.日志:Log4cplus

5.base64编码:Base64Codec

6.音频采集和编码:mmdeviceapi 获取pcm ,  faac:pcm2aac(外加降采样)

7.udp信令服务器:主要用来接收鼠标键盘的命令

8.hook钩子:模拟鼠标键盘的操作

9.主进程:CaptureStreamServer

10.守护进程:CaptureServerManger

b.用户端:

1.收流  live555模块改进

2.解码  ffmpeg库

4.编译相关

1.远程服务:  编译 vs2015 
2.window客户端: vs2015
3.android: android studio
4.ios/mac: xcode

5.直接运行相关

我们的远程桌面服务器需要Nvidia显卡的支持,无论是gtx系列的或者是tesla系列的,首先管理员权限cmd运行\bin\remote-server\NvFBCHWEnableAPI -enable 打开nvidia卡的加速功能。运行环境需要安装vc2015x86,虚拟机需要安装虚拟声卡VirtualAudioCable4.14.0.6871。
其次远程桌面服务器需要关闭windows防火墙,允许客户端连接上来。如果是云服务器需要配置好策略,开放tcp和udp端口。
1.远程服务器:\bin\remote-server\CaptureStreamServer.exe :远程桌面服务器支持win8.1以上系统或者同版本的windows server系统
2.windows客户端:bin\windows-client\bin\RemoteDesktopClient.exe,输入远程桌面的IP,点连接。
3.android客户端:输入远程桌面IP,点击左下角按钮开始远程控制。
4.IOS和mac都是输入IP地址,点击连接。

6.我们的愿景

互联网产品不断更新发展,我们一定需要去拥抱新的产品,思考它的价值,发现它的商业模式,动手打造自己的产品。同时也需要去思索和发掘市场和用户的需求,探索商业模式,动手实现商业项目。
我们的名称是“IT奇兵”,我们在抖音、快手和B站里,会去详细讲解项目的历史背景,发展过程,技术框架,代码模块。
我们一起来分享自己的劳动果实,一起创造新的奇迹。如果你也有相同的想法,请在各个平台关注“IT奇兵”,并私信我们,一群人才是一个团队,我们一起做有意义的事情。
我们目前也发现了一些新的长尾市场的用户需求,商业模式也比较清晰,我们会逐步讲解和动手实践,欢迎你的参与!

7.开源协议

 无任何约束,想用就下载,但是对你的商业项目,本开源工程不会去承担任何法律责任,其中本工程用到的某些开源项目中的部分代码,请你仔细阅读它的相关开源协议。

Android代码、IOS和mac的代码正在整理中,后面会陆续上传,目前源码是服务端和windows client端。

About

云电脑云游戏平台整体解决方案,支持windows、Android、OSX/IOS平台


Languages

Language:C++ 53.9%Language:C 36.3%Language:Makefile 3.9%Language:Shell 3.3%Language:Assembly 0.8%Language:HTML 0.6%Language:M4 0.4%Language:Objective-C 0.3%Language:Cuda 0.2%Language:CMake 0.1%Language:CSS 0.1%Language:Roff 0.0%Language:Batchfile 0.0%Language:VBScript 0.0%Language:V 0.0%