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
特此免费授予任何人获得本软件和相关文档文件(“软件”)的副本,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或出售本软件的副本,并允许向其提供本软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。
本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和非侵权保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担任何责任,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他交易引起或与之相关。软件。