巧用 G5g 畅游Android流媒体游戏

news2025/11/5 19:28:14

在这里插入图片描述

💗wei_shuo的个人主页

💫wei_shuo的学习社区

🌐Hello World !


巧用 G5g 畅游Android流媒体游戏

概览

Amazon EC2 G5g 实例由 AWS Graviton2 处理器提供支持,并配备 NVIDIA T4G Tensor Core GPU,可为 Android 游戏流媒体等图形工作负载提供 Amazon EC2 中最佳的性价比。它们是第一个具有 GPU 加速功能的基于 Arm 的实例。

借助 G5g 实例,游戏流媒体客户可以在基于 Arm 的实例上本地运行 Android 游戏,对渲染的图形进行编码,并通过网络将游戏流式传输到移动设备。

在这篇博客中,我们将在 G5g 实例上通过 Anbox Cloud Appliance 设置 Android 环境,通过 Anbox Cloud API 构建 Android 流媒体游戏应用程序,最后在我们的手机上通过 Firefox 浏览器玩游戏!

架构解析

在这里插入图片描述

从上图中,我们可以看到此博客中设置的演示示例架构。该架构可以简单分为两部分,左边是客户端:手机上支持WebRTC的任何浏览器,右边是基于G5g实例的服务器。让我们在服务器中了解更多细节,我们首先需要在 G5g 实例上通过 Anbox Cloud Appliance 设置 Android 环境,然后我们需要设置一个 Web 服务器处理来自客户端的请求,之后配置 Android 应用程序并通过 Anbox Cloud 启动应用程序接口。当Web服务器接受客户端的请求时,它会将请求转发给应用服务器,应用服务器将与Anbox流网关和Anbox Cloud API通信以启动Android容器,Android应用程序将托管在容器中并将游戏流传回给客户。

动手实践

Step 1

Step 1 在 G5g 实例上启动 Anbox Cloud Appliance

首先,您需要一个 Ubuntu SSO 帐户。如果您还没有,请在此处创建。

我们可以通过 AWS Marketplace 安装 Anbox Cloud Appliance。前往 AWS Marketplace 然后购买 Anbox Cloud Appliance 的订阅,因为我们计划将其安装在基于 Graviton 处理器的 G5g 实例上,请前往选择 Arm 变体。

在这里插入图片描述

在这篇博客中,我们在 Instance type 部分选择 G5g.8xlarge,选择密钥对,将网络设置保留为默认设置,如下添加存储,

  • 至少 50 GB 的根磁盘(必需)
  • 至少100GB的额外EBS卷(强烈推荐)

我们推荐至少 100 GB 的原因是我选择作为博客演示的游戏是 Genshin Impact,它有一个相当大的游戏包,几乎在 50GB 左右。

最后,启动实例并等待它变为运行状态,然后我们可以SSH到实例并配置Android环境。

Step 2

Step 2 在G5g上搭建Android环境

为了最好地确保我们的 RPM 和 Debian 软件包存储库的安全性和可靠性,我们首先更新了 CUDA Linux GPG 存储库密钥

$ sudo apt-key del 7fa2af80
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/sbsa/cuda-keyring_1.0-1_all.deb
$ sudo dpkg -i cuda-keyring_1.0-1_all.deb

由于Anbox Cloud中的Android环境运行在LXD容器环境中,因此在设置Android之前,将LXD刷新到最新版本。

$ sudo snap refresh --channel=5.0/stable lxd

通过输入以下命令调用 Anbox 云设备的初始化过程:\

$ sudo anbox-cloud-appliance init

只需保留几个问题作为默认答案,最后,您可以在 https://$(ec2_public_DNS_name) 查看状态网页以获取进度信息。\

在这里插入图片描述

等待初始化过程完成,然后注册之前创建的 Ubuntu SSO 帐户,输出将显示 Android 环境仪表板地址。

$ anbox-cloud-appliance dashboard register <your Ubuntu SSO email address>

Step 3

Step 3 通过 Anbox Cloud API 构建 Android 流媒体游戏应用程序

我们参考 Anbox Cloud 存储库来构建游戏。首先,下载源代码:

$ git clone https://github.com/anbox-cloud/cloud-gaming-demo.git

构建游戏门户的Web UI,Web UI是用Flutter构建的,所以我们需要安装Flutter然后部署它。

$ sudo snap install flutter --classic
$ cd ui && flutter build web
$ mkdir -p backend/service/static
$ cp -av ui/build/web/* backend/service/static

接下来是构建后端服务,用于服务 Web UI 请求并与 Anbox Stream Gateway 交互以通过 Anbox Cloud API 创建游戏应用程序。从安装依赖项开始:

$ sudo apt-get install python3-pip
$ sudo pip3 install virtualenv
$ cd backend && virtualenv venv

然后我们需要准备后端服务访问Anbox Stream Gateway的配置文件,配置文件中有两个参数,gateway-URL和gateway-token。可以从以下命令获取网关令牌:

$ anbox-cloud-appliance gateway account create <account-name>

创建一个名为 config.yaml 的文件,其中包含这两个配置项:

gateway-url: https:// <EC2 public DNS name>
gateway-token: <gateway_token>

然后将以下行添加到 backend/venv/bin/ 目录中的 activate hook,以便后端服务可以在其启动时读取 config.yaml:

$ export CONFIG_PATH=<path_to_config_yaml>

现在我们可以启动将在 TCP 端口 8002 提供服务的后端服务:

$ cd backend && ./run.sh

在接下来的步骤中,我们将从互联网上下载一个免费的游戏来演示,并通过 Anbox Cloud API 构建它,我们需要一个可用的 Android APK 和一个配置文件。

在HOME目录下创建文件夹,并在文件夹中创建manifest.yaml文件。在本博客中,我们选择将以下内容添加到文件中,您可以参考此链接了解更多详细信息.

name: genshin
instance-type: g10.3
resources:
  cpus: 10
  memory: 25GB
  disk-size: 50GB
  gpu-slots: 15
features: ["enable_virtual_keyboard"]

我们还需要准备一个Android APK,记得选择Graviton原生支持的arm64-v8a架构的APK。在这篇博客中,我们从网上下载了一款免费的安卓游戏,名为《原神》,一款由米哈游开发发行的动作角色扮演游戏。将 APK 下载到文件夹中并将其重命名为 app.apk。总体而言,游戏文件夹的最终布局应如下所示:

.
├── app.apk
└── manifest.yaml

从文件夹中运行以下命令以创建应用程序

$ amc application create  .

通过使用以下命令监视应用程序创建的状态,等待应用程序更改为就绪状态:

$ amc application ls

然后我们可以继续编辑和重建 web UI 以显示游戏如下:

  • 更新 ui/lib/homepage.dart 文件中定义的 gameids 变量以包含游戏名称(如清单文件中所声明)。
  • 向lib/api/application.dart文件中定义的静态appNameMap和appDesMap变量插入新的key/value对
  • 提供游戏截图(jpeg格式),重命名为.jpeg,放入ui/lib/assets目录。

现在您可以重建网页界面,将 ui/build/web 文件夹中的内容复制到 backend/service/static 目录,然后刷新网页即可获得您的游戏!

Step 4

Step 4 启动游戏

拿出你的手机,打开Firefox浏览器或任何支持webRTC的浏览器,输入G5g实例的8002端口的公共DNS名称,然后你会看到游戏入口是这样的:

在这里插入图片描述

点击立即开始游戏按钮,稍等片刻在服务器端进行应用程序设置,然后开始游戏吧!

在这里插入图片描述

结论

G5g 是首个在大型云端采用 GPU 加速的基于 Arm 的实例,在 Amazon EC2 中为 Android 游戏流式传输提供最佳性价比。利用 G5g 实例,Android 游戏开发人员可以原生运行基于 Arm 的 GPU 实例,编码渲染的图形,通过网络将游戏流式传输到移动设备。这样可以帮助简化开发工作,降低每个流每小时成本高达 30%。在这篇博客中,我们在原生支持 Arm64 架构的 G5g 实例上构建了一个Android 游戏的演示,借助GPU加速功能,我们可以尝试更多需要大规模图形渲染需求的游戏,让 Android 流媒体游戏的普及成为可能。

详细体验:

亚马逊云科技:https://aws.amazon.com/cn/free/?sc_channel=seo&sc_campaign=blog1157


🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——点赞👍收藏⭐️评论📝


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1370905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP SMARTFORMS 打印表换行

表单打印自动换行&#xff0c;值的拼接 cl_abap_char_utilities>cr_lfSMARTFORMS 设置 程序传值处理 TYPES: BEGIN OF ty_c, zm_zd TYPE char25, END OF ty_c. DATA: lt_ty1 TYPE TABLE OF ty_c, lt_ty2 TYPE TABLE OF ty_c, ls_t…

重新认识canvas,掌握必要的联结密码

查看专栏目录 canvas示例教程100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

极智AI | 谈谈通义舞王背后的技术Animate Anyone 让任何人动起来

欢迎关注我的公众号 [极智视界],获取我的更多技术分享 大家好,我是极智视界,本文分享了 谈谈通义舞王背后的技术Animate Anyone 让任何人动起来。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq 来吧,让我们…

云平台API服务

问题 云平台API服务 详细问题 笔者今天需要使用病虫害图像识别API&#xff0c;游览器搜索后&#xff0c;结果如下&#xff1a; 点击第一个搜索结果&#xff1a;RMB50000&#xff0c;虽然提供1000000次病虫害识别&#xff0c;但是笔者没有这般大地需求&#xff0c;有没有可能…

vue-vben-admin 与.net core 结合实例 【自学与教学 小白教程】---第3节

ue-vben-admin 与.net core 结合实例 这里计划使用.net core 作为后端 。目标&#xff1a;打造好看 易用 开箱即用 的netcore一体化框架。Vue Vben Admin For NetCore 取命 hcrain-vvadmin 我不是前端人员 但有时开发还是要写一些界面。 之前使用layui是时候 狠心升级下了。 …

Linux入门攻坚——12、Linux网络属性配置相关知识2

CentOS 7网络属性配置&#xff1a; 传统命名机制&#xff1a;以太网eth[0,1,2,...]&#xff0c;wlan[0,1,2...] 可预测功能的命名机制&#xff1a; udev支持多种不同的命名方案&#xff1a; Firmware &#xff0c;拓扑结构 在对待设备文件这块&#xff0c;Linux改…

从无到有:AI绘画API在插画与游戏设计中的应用

引言 随着人工智能技术的快速发展&#xff0c;AI绘画API已经逐渐成为插画和游戏设计领域的新宠。这些API能够将创意与技术完美结合&#xff0c;帮助设计师快速生成高质量的图像&#xff0c;为插画和游戏产业带来了巨大的变革。 AI绘画API的工作原理 AI绘画API基于深度学习和…

CentOS忘记root密码重置方法

1.开机进入引导界面&#xff0c;按键盘e 2.找到linux16开头的最后一行&#xff0c;添加rd.break&#xff0c;按下Ctrlx进入救援模式 3.执行命令&#xff08;注意空格&#xff09; 1&#xff09;mount -o rw,remount /sysroot 2&#xff09;chroot /sysroot 3&#xff09;pas…

基于模块自定义扩展字段的后端逻辑实现(一)

目录 一&#xff1a;背景介绍 二&#xff1a;实现过程 三&#xff1a;字段标准化 四&#xff1a;数据存储 五&#xff1a;数据扩展 六&#xff1a;表的设计 一&#xff1a;背景介绍 最近要做一个系统&#xff0c;里面涉及一个模块是使用拖拉拽的形式配置模块使用的字段表…

sympy质点模型

文章目录 质点动能和动能势能角动量 质点 粒子&#xff0c;或者说质点&#xff0c;堪称经典物理中的核心模型了&#xff0c;其所具备的重要物理量&#xff0c;包括质量、能量、动量、角动量之类&#xff0c;也早已从经典力学蔓延出去&#xff0c;成为内涵更加深刻的物理概念。…

Linux系统操作——tcping安装与使用

目录 .一、安装 1、安装依赖 tcptraceroute和bc 2、安装tcping 3、赋予tcping执行权限 4、测试 5、tcping返回结果说明 二、使用说明&#xff08;参数&#xff09; 一、安装 1、安装依赖 tcptraceroute和bc 【 CentOS 或 RHEL】 sudo yum install -y tcptraceroute bc…

Open CASCADE学习|创建拓朴

目录 1、创建点gp_Pnt 2、创建向量gp_Vec 3、创建边TopoDS_Edge 4、线网络TopoDS_Wire 5、面TopoDS_Face 6、体TopoDS_Shape OpenCascade中的拓朴实体如下图所示&#xff0c;其中Compound可以包含很多Solid&#xff1b;Solid由Shell包围而成&#xff1b;Shell由相连的Fac…

通信用磷酸铁锂电池做YD/T2344.1招标报告

通信用磷酸铁锂电池做YD/T2344.1标准报告 YD/T 2344.1标准范国&#xff1a; YD/T 2344.1规定了通信用磷酸铁鲤电池组的定义、要求、试验方法、检验规则及标志、包装、运输和贮存本部分适用于电池模块与电池管理系统集成为一体的通信用磷酸铁电池组。 YD/T 2344.1测试要求&…

linux异常情况,排查处理中

登录客户环境后&#xff0c;发现一个奇怪情况如下图&#xff0c;之前也遇到过&#xff0c;直接fuser -ck /backup操作的话&#xff0c;主机将会重启&#xff0c;因数据库运行中&#xff0c;等待停机维护时间&#xff0c;同时也在想办法不重启的情况下解决该问题 [rootdb ~]# f…

哪个品牌的超声波清洗机最好?超声波清洗机是如何工作的呢?

作为一个经常佩戴眼镜&#xff0c;却又经常因为眼镜脏了而头疼的人来说&#xff0c;又是对这些智能家居一窍不通的&#xff0c;我曾经非常苦恼于到底如何选购超声波清洗机&#xff0c;经过一番做功课以及实践&#xff0c;我精选出几款适合清洗眼镜超声波清洗机&#xff0c;来以…

004集 try-except 语句应用实例—python基础入门实例

try-except 该语句用来处理异常情况。 try块中包含可能抛出异常的语句&#xff0c;而except块则用来处理异常。如果try块中出现了异常&#xff0c;那么程序将跳过try块中剩余的语句&#xff0c;转而执行except块的语句。 try: 可能产生异常的代码块 except [ (Error1, E…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -投票创建后端实现

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

【39 Pandas+Pyecharts | 第七次人口普查数据分析可视化】

文章目录 &#x1f3f3;️‍&#x1f308; 1. 导入模块&#x1f3f3;️‍&#x1f308; 2. Pandas数据处理2.1 读取数据2.2 数据预览 &#x1f3f3;️‍&#x1f308; 3. Pyecharts数据可视化3.1 全国各省人口统计三维地图3.2 全国各地区人口数量分布地图3.3 全国人口性别比例3…

Make自动化构建程序工具介绍

Makefile是一种用来自动化构建程序的工具于&#xff0c;主要在UNIX和类UNIX系统上使用。它使用一种简单的语法来定义目标和依赖关系&#xff0c;从而实现自动化构建和管理项目的过程。 一个Makefile由一系列规则组成&#xff0c;每个规则包含一个目标和一组依赖文件。目标是要…

数十位大咖共话AI大模型落地,2024 AI 科技峰会前瞻 | 光锥智能

在ChatGPT带起的AI浪潮中&#xff0c;我们进入了一个科技狂奔的时代。 2023年&#xff0c;风云变幻中&#xff0c;我们见证了中国数百个大模型如雨后春笋般冒出&#xff0c;在多个重要版本的优化下&#xff0c;我们见证了大模型以光速迭代&#xff0c;在参数量、长文本、多模态…