前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >强者来袭:UE5像素流peer-stream Stars数量突破三位数

强者来袭:UE5像素流peer-stream Stars数量突破三位数

作者头像
Jean
发布2023-02-10 19:55:00
8490
发布2023-02-10 19:55:00
举报
文章被收录于专栏:Web行业观察Web行业观察

Part1前言

peer-stream是inveta团队开源的UE5像素流组件,与EpicGame为像素流设计的SDK相比,peer-stream.js是一个轻量级的WebRTC库,具有0依赖性,包含前端组件(使用WebComponents API)和信令服务器(使用NodeJS)。 peer-stream.js:用于播放器的浏览器SDK。 signal.js:node.js信令服务器。 .signal.js:带有env变量的signal.js。 test.html:浏览器网页。 开源地址 https://github.com/inveta/peer-stream

Part2stars

在大家的支持下,peer-stream的github的stars数量成功突破三位数。

和官方臃肿不堪的像素流SDK相比,我们开发出了轻量、零依赖、开箱即用的软件套装,前端的peer-stream.js基于WebComponentsAPI,后端signal.js基于NodeJS和npm/ws。

使用方法

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

# 启动信令服务器
PORT=88 node signal.js

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

# 打开测试网页
start http://localhost:88/test.html

signal.js在官方库的基础上做了大量优化

1、文件只有5KB,压缩后只有3KB。 2、提供http文件服务,和WebSocket共享端口号。 3、面向前端和面向UE5的端口号绑定,通过WebSocket子协议区分。 4、通过环境变量统一传参。 5、提供密码认证服务。 6、可以限制最大连接数。 7、支持多个UE5连接。 8、控制台实时打印UE5和前端的多对多映射关系。 9、对WebSocket连接做节流过滤,提高稳定性。 10、支持UE5和前端一一映射。 11、前端连入时,可以自动启动UE5进程。 12、多个UE5连入时,负载均衡。 13、支持stun公网穿透,在公网间互连。 14、控制台可输入调试代码,并打印计算结果。 15、定时发送心跳连接保活。 16、前端的端口号与ID绑定。

signal.js 既支持多个前端连接,也支持多个UE5连接,此时前端和UE5的多对多映射关系是均衡负载的:前端会被引向最空闲的UE5进程。若想要限制一一映射关系,开启one2one 环境变量。最好提供 UE5_* 自启动命令行,更多实例参考 .signal.js。流程图如下:

peer-stream.js 前端开发包

1、文件18KB,压缩后12KB。 2、基于 Web Components API 组件化video标签。 3、断线自动重连。 4、DOM生命周期绑定:挂载自动连接,卸载自动断开。 5、支持stun公网穿透。 6、全局挂载一份引用方便调试:window.ps。 7、支持5种键盘/鼠标/触屏输入模式。 8、支持3333端口重定向。 9、支持视频自动播放。 10、video标签的id即信令服务器地址,默认指向网页的域名。

Part3给epic提交建议被采纳

最近团队给UE5提交了一个关于像素流的建议,目前已经被官方采纳。

Part4总结

本文主要对inveta团队开源的UE5像素流组件进行了简单介绍。

Part5Inveta团队

Inveta团队由研发、美术设计、建模等组成。团队介绍: https://www.inveta.cn/about.html 团队开源项目: https://github.com/inveta

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Part1前言
  • Part2stars
  • Part3给epic提交建议被采纳
  • Part4总结
  • Part5Inveta团队
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档