当前位置:网站首页>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 .
边栏推荐
- 动力电池UL2580测试项目包括哪些
- Cinq détails de conception du régulateur de tension linéaire
- STM32---ADC
- QEMU STM32 vscode debugging environment configuration
- OC and OD gate circuit
- 亿学学堂给的证券账户安不安全?哪里可以开户
- Several important parameters of LDO circuit design and type selection
- 实例004:这天第几天 输入某年某月某日,判断这一天是这一年的第几天?
- Void* C is a carrier for realizing polymorphism
- Stm32--- systick timer
猜你喜欢
Charge pump boost principle - this article will give you a simple understanding
NTC thermistor application - temperature measurement
Semiconductor devices (I) PN junction
Class of color image processing based on Halcon learning_ ndim_ norm. hdev
实例003:完全平方数 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
Array integration initialization (C language)
Circleq of linked list
Several implementation schemes of anti reverse connection protection of positive and negative poles of power supply!
Measurement fitting based on Halcon learning [II] meaure_ pin. Hdev routine
List of linked lists
随机推荐
How to write cover letter?
C WinForm [view status bar -- statusstrip] - Practice 2
MHA High available Cluster for MySQL
[cloud native | learn kubernetes from scratch] III. kubernetes cluster management tool kubectl
【三层架构及JDBC总结】
Imx6ull bare metal development learning 2- use C language to light LED indicator
Semiconductor devices (I) PN junction
Several important parameters of LDO circuit design and type selection
Stm32--- systick timer
实例001:数字组合 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
General makefile (I) single C language compilation template
Stablq of linked list
实例007:copy 将一个列表的数据复制到另一个列表中。
Management and use of DokuWiki
Soem EtherCAT source code analysis II (list of known configuration information)
Synchronization of QT multithreading
Cinq détails de conception du régulateur de tension linéaire
STM32 --- serial port communication
[paper reading] the latest transfer ability in deep learning: a survey in 2022
Detailed summary of FIO test hard disk performance parameters and examples (with source code)