当前位置:网站首页>UE pixel stream, come to a "diet pill"!

UE pixel stream, come to a "diet pill"!

2022-07-05 08:22:00 xosg

Part1 Preface

Pixel streams are illusory engines UE5 The front and rear end separation frames provided : Server running UE5, Front end rendering UI, Intermediate transmission video stream . such , Even low-end computers or mobile phones without graphics cards can access and run UE5 Server for .
however UE The official pixel stream code base is very bloated , Lack of documentation , Difficult to use directly , We transformed it into a lightweight version , Out of the box pixel stream front-end library and signaling server , Address :
https://github.com/inveta/peer-stream.
besides , We have also developed a tool chain matching it , Automatically monitor the life cycle of pixel streams , Even if the server is unattended, it can work normally .

Part2UE5 Self starting : Fast startup speed

Worship UE5 Of HLOD technology (Nanite as well as WorldPartition) Bestowed ,UE5 The start time of the packaging program is basically 5s within ( Even oversized models ), therefore UE5 There is no need to drive on the server all the time to consume resources , When you visit the web page, you can temporarily start , Anyway, it won't take a few seconds . In our open source library ,UE5 The self starting program is written in the signaling server : When WebSocket When there is a new connection from the front end , It starts UE5, When there is no access, it will automatically close after a period of time UE5.

Part3 The singleton pattern : Thread safe file lock

UE5 Thread safety should be considered in self startup : If the front end has high concurrency connections , It is likely to start multiple UE5 process , That will bring great pressure to the server . besides , If the operation and maintenance personnel do not operate in a standard way , You may also accidentally open multiple UE5, Causing the system to crash . In order to avoid this problem at its root , We're open source UE5 Singleton mode plug-in : It strictly limits that at most one computer can be turned on at the same time UE5 example , Realize atomic operation through file lock , Very stable .
Plug-in address :https://github.com/inveta/SingleTon.

Part4UE5 Automatically quit : Save system resources

When no one is looking ,UE5 Automatic shutdown is natural , But the timeout of idle shutdown needs to be set within a reasonable range , The time setting cannot be too short or too long : If the time is too short, it is prone to frequent startup and shutdown , Increase the risk of crash ; If it takes too long, it will be useless , Waste system resources . Therefore, within a reasonable range , After many attempts , Our pixel stream plug-in passes the following 3 Time out to control UE5 Life cycle of ,

● After the signaling server is disconnected 10s To withdraw from UE5: Even the signaling server is down ,UE5 There is no need to exist , But to prevent short interruptions ,10s Internal reconnection can be done without exiting .
● After the front end is disconnected ,30 Exit in minutes UE5: After the user closes the web page , leave 30 Minute observation period , During this period, if there is a new web page connected , Then stop the timer .
● UE5 Start over 24 Hours later, , sign out UE5: Sometimes people are not in front of the computer , But the browser remains connected , Lead to UE5 Continuous operation for too long , It will also consume a lot of power , So set UE5 The maximum running time is 24 Hours .

Part5 Throttle and prevent shaking : Prevent collapse to the greatest extent

Time control is the most important detail in the pixel flow ecological chain , Because the whole system needs various timers to maintain the life cycle , Handling exception States , The time units of different timers range from milliseconds to seconds to minutes to hours , Except as mentioned in the previous section 3 Kind of UE5 Automatically exit timing , For throttling and anti shake , The following settings are also set in the whole system 8 A timer to deal with possible network attacks .

● WebSocket After disconnection 3s Internal automatic reconnection : No need to reconnect manually , Don't reconnect immediately .
● initialization DataChannel Request delay 500ms: Prevent web pages from being refreshed crazily .
● Dom After the element is disconnected 1s Internal continuous opening : Prevent front end JS Nonstandard code leads to high-frequency cutover of elements .
● Signaling server 500ms At most 1 Time WS Connect : prevent WebSocket collapse .● Every time 50s Launch once WS heartbeat connection : Avoid proxy server downtime .
● Signaling server and UE5 Send each other every minute ping-pong Keep alive request .
● UE5 Pass per second WebRTC Forward send QP Parameters , Monitor network status and video quality .
● On initialization ,UE5 Send to signaling server every second 10 Time WebSocket Connection request .

原网站

版权声明
本文为[xosg]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050813259170.html