当前位置:网站首页>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 .
边栏推荐
- STM32---ADC
- Stablq of linked list
- Imx6ull bare metal development learning 2- use C language to light LED indicator
- Naming rules for FreeRTOS
- Bootloader implementation of PIC MCU
- 關於線性穩壓器的五個設計細節
- Live555 push RTSP audio and video stream summary (I) cross compilation
- Shape template matching based on Halcon learning [viii] PM_ multiple_ models. Hdev routine
- go依赖注入--google开源库wire
- Circleq of linked list
猜你喜欢
实例009:暂停一秒输出
[trio basic tutorial 17 from getting started to mastering] set up and connect the trio motion controller and input the activation code
Design a clock frequency division circuit that can be switched arbitrarily
Soem EtherCAT source code analysis attachment 1 (establishment of communication operation environment)
Summary of SIM card circuit knowledge
STM32 tutorial triple ADC interleaved sampling
MHA High available Cluster for MySQL
The firmware of the connected j-link does not support the following memory access
Briefly talk about the identification protocol of mobile port -bc1.2
Carrier period, electrical speed, carrier period variation
随机推荐
实例007:copy 将一个列表的数据复制到另一个列表中。
Cinq détails de conception du régulateur de tension linéaire
Several important parameters of LDO circuit design and type selection
实例006:斐波那契数列
[NAS1](2021CVPR)AttentiveNAS: Improving Neural Architecture Search via Attentive Sampling (未完)
Shell script realizes the reading of serial port and the parsing of message
Shape template matching based on Halcon learning [viii] PM_ multiple_ models. Hdev routine
Various types of questions judged by prime numbers within 100 (C language)
Volatile of C language
Soem EtherCAT source code analysis II (list of known configuration information)
Use indent to format code
Sword finger offer 09 Implementing queues with two stacks
Weidongshan Internet of things learning lesson 1
How to copy formatted notepad++ text?
【三层架构及JDBC总结】
Zero length array in GNU C
More than 90% of hardware engineers will encounter problems when MOS tubes are burned out!
DokuWiki deployment notes
STM32 single chip microcomputer - external interrupt
Hardware 1 -- relationship between gain and magnification