前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >INVETA peer-stream 自述文件

INVETA peer-stream 自述文件

作者头像
Jean
发布2022-11-25 19:33:41
6100
发布2022-11-25 19:33:41
举报
文章被收录于专栏:Web行业观察Web行业观察

UE5 像素流式 SDK

与 EpicGame 为 Pixel Streaming 精心设计的 SDK 相比,peer-stream.js 是一个 0 依赖的轻量级 WebRTC 库,包含一个前端组件(使用 WebComponents API)和一个信号服务器(使用 NodeJS)。

  • peer-stream.js:播放器的浏览器 SDK。
  • signal.js:node.js 信号服务器。
  • .signal.js:带有环境变量的signal.js。
  • test.html:浏览器网页。

演示

代码语言:javascript
复制
# install WebSocket
npm install ws@8.5.0

# start Signaling Server
PORT=88 node signal.js

# start packaged UE5
start path/to/UE5.exe -PixelStreamingURL="ws://localhost:88"

# visit webpage
start http://localhost:88/test.html

signal.js 的环境变量

环境

类型

默认

用法

PORT

数字

88

播放器和 UE5 的 WebSocket/HTTP 端口

UE5_*

string[]

[]

播放器连接时运行命令(UE5 自动启动)

one2one

布尔

false

播放器和 UE5 的一对一映射

token

string

''

WebSocket 密码

limit

数字

+Infinity

限制最大连接玩家数

throttle

布尔

false

WebSocket 油门,防止频繁重连

负载均衡

signal.js接受多个 UE5 和播放器连接,其中每个 UE5 映射到具有负载平衡的多个播放器。打开one2one以保持一对一映射。提供UE5_*自动启动 UE5。中更详细的示例.signal.js

虚幻引擎

启用插件:

代码语言:javascript
复制
Plugins > Built-In > Graphics > Pixel Streaming > Enabled
Editor Preferences > Level Editor > Play > Additional Launch Parameters
start path/to/UE5.exe -{key}={value}

常见的启动选项:

代码语言:javascript
复制
 -PixelStreamingURL="ws://localhost:88"
 -RenderOffScreen
 -Unattended
 -GraphicsAdapter=0
 -ForceRes
 -Windowed
 -ResX=1280
 -ResY=720
 -AudioMixer
 -AllowPixelStreamingCommands
 -PixelStreamingEncoderRateControl=VBR

对等流.js

HTML:

代码语言:javascript
复制
<script src="peer-stream.js"></script>
<video is="peer-stream" id="ws://127.0.0.1:88/"></video>

或 JavaScript:

代码语言:javascript
复制
<script type="module">
import "peer-stream.js";
const ps = document.createElement("video", { is: "peer-stream" });
ps.id = "ws://127.0.0.1:88/";
document.body.append(ps);
</script>

留言

发送消息:

代码语言:javascript
复制
// object will be JSON.stringify()
ps.emitMessage(msg: string | object);

接收消息:

代码语言:javascript
复制
ps.addEventListener("message", e => {
    e.detail;   // string
});

要求

  • 谷歌浏览器 90+
  • 虚幻引擎 5.0.0+
  • 14+
  • npm/ws 8.0+

© 麻省理工学院许可证

版权所有 (c) 2020-2022 XOSG

特此免费授予任何人获得本软件和相关文档文件(“软件”)的副本,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或出售本软件的副本,并允许向其提供本软件的人这样做,但须符合以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。

本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和非侵权保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担任何责任,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他交易引起或与之相关。软件。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WebHub 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • UE5 像素流式 SDK
    • 演示
      • signal.js 的环境变量
        • 负载均衡
      • 虚幻引擎
        • 对等流.js
          • 留言
        • 要求
          • © 麻省理工学院许可证
          相关产品与服务
          负载均衡
          负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档