ECS 云游戏实践项目部署

简介: 利用ECS部署云游戏推流端服务节点,实现对外推流。

(原创声明)

  • 表 1 开发环境及服务节点清单说明
云端:Centos 7.9 任务线(推流 + 流管理 + 交互连接管理)
stream_pusher_with_rtsp 抓取云端桌面 + 编码推流至rtsp_server.
rtsp_server 依循rtsp协议负责流分发管理。曾经尝试采用Nginx代理方式,但在该场景下测试rtsp_server时延更占优势。
cgi_server 基于socket、epoll、进程池实现高并发处理,以及与多客户端之间的操作指令交互与消息通信管理。
本地Ubuntu16.04 + Qt 任务线(拉流 + 交互)
stream_player_with_qt 拉取云端视频流,并解码显示;采集本地操作指令并上传云端实现交互。
  • 图 2 本方案各服务节点框架示意图

0-Overview.png

本方案最终实现效果:

  • 表2 客户端时延数据随机测试统计(约为70~100ms)

时延统计.jpg

整体方案设计说明

(1)云端·推流端设计

  • 图 3 推流端中抓屏输入端与输出端【初始化及参数配置】

1-Stream_Pusher-1.png

此处承接上一模块,至此,抓屏解码输入口、编码推流输出口两者均已进入准备就绪状态。

  • 图 4 推流端与流分发管理服务之间【逻辑交互细节流程】

2-Stream_Pusher-2.png

本案至此,已完成在云上推流端的编码推流以及交互接口设计。

此时,云端的码流则将推送至云上流分发及交互管理服务端:rtsp_server以及cgi_server

(2)云端·流分发及并发管理端设计

本节所述的设计内容,将负责本方案中的云上流分发以及与本地客户端之间的连接及交互管理cgi_server

另外,在云服务器上同时运行了一路rtsp_server中转服务。

  • 图 5 云上流分发及并发管理端设计细节流程

3-CGI_server.png

该服务中维护了一组进程池,在父子进程中各自分别维护了一组内核事件表。当有新的拉流请求到来时,主进程将通过典型的轮流选取算法来主动选择某一子进程来为之服务。当选好子进程之后,子进程中找到与父进程之间预先建立好的管道,并通过该管道来实现两者之间的通信。

(3)本地·拉流解码显示及指令交互管理端设计

当根据rtsp协议建立起拉流连接后,循环捕捉码流,并【解码】后触发QT信号通知UI界面作实时更新显示。

  • 图 6 客户端设计细节流程

4-Stream_Player.png

(4)最终方案效果展示
4-延时-40ms-.png

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
19天前
|
弹性计算 监控 负载均衡
|
1月前
|
监控 安全 Linux
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第18天】在RHEL环境下部署Subversion服务器需依次完成安装Subversion、创建版本库、配置服务器、启动服务、客户端连接及备份维护等步骤。确保遵循安全最佳实践,保障数据安全。
|
30天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
13天前
|
弹性计算 开发工具 git
2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我在部署托管于Github/Gitee的代码到阿里云ECS服务器时,经常遇到繁琐的手动配置问题。近期,阿里云ECS控制台推出了一键构建部署功能,简化了这一过程,支持Gitee和GitHub仓库,自动处理git、docker等安装配置,无需手动登录服务器执行命令,大大提升了部署效率。本文将详细介绍该功能的使用方法和适用场景。
2分钟在阿里云ECS控制台部署个人应用(图文示例)
|
1月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
125 60
|
1月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
220 62
|
20天前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
25天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
68 3
|
28天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
29天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感