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

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8月前
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
2041 5
|
8月前
|
Java Linux Apache
在CentOS服务器上编译并部署NiFi源码
部署Apache NiFi在CentOS上是一个涉及细节的过程,需要注意Java环境、源码编译、配置调整等多个方面。遵循上述步骤,可以在CentOS服务器上成功部署和配置Apache NiFi,从而高效地处理和分发数据。
299 17
|
9月前
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
1141 13
|
9月前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
795 0
监控 安全 Linux
535 0
|
10月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1725 1
|
10月前
|
监控 Java Linux
Apache NiFi项目的编译与部署于CentOS服务器
总而言之,Apache NiFi的编译和部署虽然涉及多个步骤,但这些操作步骤简明扼要,即使是不太熟悉Java或Maven的用户也能跟随指南完成。通过遵循上述步骤,您将能够在CentOS服务器上成功部署Apache NiFi,为您的数据流处理任务建立一个功能强大的平台。
571 16
|
10月前
|
资源调度 负载均衡 JavaScript
使用PM2工具部署Vue.js应用于服务器
以上步骤完成之后,你就成功利⽤ PM⼆工具将 Vuejs 应⽰程序部署至服 务 器,并且配合反向代理实现了高效稳定访问及负载均衡功能。
562 0

热门文章

最新文章