当前位置:网站首页>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 .
边栏推荐
- Sizeof (function name) =?
- General makefile (I) single C language compilation template
- 亿学学堂给的证券账户安不安全?哪里可以开户
- Introduction of air gap, etc
- Talk about the function of magnetic beads in circuits
- FIO测试硬盘性能参数和实例详细总结(附源码)
- QEMU STM32 vscode debugging environment configuration
- Imx6ull bare metal development learning 1-assembly lit LED
- 实例005:三数排序 输入三个整数x,y,z,请把这三个数由小到大输出。
- Imx6ull bare metal development learning 2- use C language to light LED indicator
猜你喜欢
STM32 virtualization environment of QEMU
【三层架构及JDBC总结】
Negative pressure generation of buck-boost circuit
STM32 single chip microcomputer -- volatile keyword
[cloud native | learn kubernetes from scratch] III. kubernetes cluster management tool kubectl
[trio basic tutorial 18 from introduction to proficiency] trio motion controller UDP fast exchange data communication
Count the number of inputs (C language)
Measurement fitting based on Halcon learning [i] fuse Hdev routine
Shape template matching based on Halcon learning [VII] reuse_ model. Hdev routine
STM32---IIC
随机推荐
Take you to understand the working principle of lithium battery protection board
Management and use of DokuWiki
Class of color image processing based on Halcon learning_ ndim_ norm. hdev
[three tier architecture and JDBC summary]
My-basic application 2: my-basic installation and operation
Void* C is a carrier for realizing polymorphism
On boost circuit
Weidongshan Internet of things learning lesson 1
Negative pressure generation of buck-boost circuit
STM32---ADC
QEMU demo makefile analysis
Use indent to format code
[NAS1](2021CVPR)AttentiveNAS: Improving Neural Architecture Search via Attentive Sampling (未完)
Shape template matching based on Halcon learning [9] PM_ multiple_ dxf_ models. Hdev routine -- [read and write XLD from DXF file]
Several important parameters of LDO circuit design and type selection
Classic application of MOS transistor circuit design (1) -iic bidirectional level shift
More than 90% of hardware engineers will encounter problems when MOS tubes are burned out!
Volatile of C language
Sql Server的存储过程详解
【论文阅读】2022年最新迁移学习综述笔注(Transferability in Deep Learning: A Survey)