A multi-path video stream dynamic scheduling method, system, computer and storage medium
Patent Information
- Application Number
- CN202611477403.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-09-22
- Publication Date
- 2026-10-27
AI Technical Summary
本发明旨在解决现有技术中对于多路视频的调度存在浪费带宽及计算资源,缺乏动态灵活性的技术问题
[0016]与现有技术相比,本发明的有益效果在于:通过设置所述防抖条件,当用户对所述活动栏进行操作时,判断其是否在进行频繁操作,当用户操作稳定后触发检测,可有效防止用户多次不停滚动、收展所述活动栏等操作过程中频繁触发对所述视频容器的碰撞检测,显著减少对计算资源的占用;基于所述滚动容器的可视区域范围,对每一个存在于所述活动栏中参与滚动、收展的所述视频容器进行碰撞检测,判断其对用户是否可见,若可见,则拉取视频流,若不可见,则停止相应的视频流调度,大幅节省带宽,释放解码资源,对于收展所述活动栏,全量地对多路视频流进行调度,当参与实时音视频互动的成员发生变更,同样动态地进行碰撞测试并调度视频流,所述多路视频流动态调度方法不仅节省带宽及计算资源,还具有优良的动态灵活性、适应性。
Smart Images

Figure CN122994567A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of video software technology, and in particular to a method, system, computer, and storage medium for dynamic scheduling of multiple video streams. Background Technology
[0002] With the increasing prevalence of real-time audio and video applications involving multiple participants, such as online interactive classrooms and multi-party video conferencing, the ability to flexibly schedule and process multiple video streams is crucial.
[0003] Multi-person real-time audio and video applications typically place a scrollable video list in the interface, which displays the live feeds of all participants. For example, in a dual-teacher interactive class, one main classroom connects to multiple listening classrooms, and the video list displays small video windows from other listening classrooms. Due to limited screen space, the number of windows that can be placed on one screen is relatively small, so the remaining windows can only be seen by scrolling.
[0004] Existing multi-channel video stream scheduling typically employs full subscription and server-side mixing solutions. Whenever a new participant enters the room, their video stream will be pulled, decoded, and rendered. This approach wastes bandwidth and consumes a large amount of computing resources. Each video stream pulled increases network bandwidth usage, and the CPU needs to run additional decoders, which not only affects the smoothness of video in other classrooms but also increases CPU utilization, causing software lag. Summary of the Invention
[0005] To address the shortcomings of existing technologies, the present invention aims to provide a method, system, computer, and storage medium for dynamic scheduling of multiple video streams. This invention seeks to solve the technical problems of wasted bandwidth and computing resources, and lack of dynamic flexibility in the scheduling of multiple video streams in existing technologies.
[0006] To achieve the above objectives, the present invention is implemented through the following technical solution: A method for dynamic scheduling of multiple video streams includes the following steps: Acquire several member data, establish several video containers based on the several member data, and arrange the several video containers in a scrolling container to form an activity bar; Listen for user events occurring in the activity bar, obtain a preset stabilization time based on the type of the user event, and determine whether the user event meets the debouncing conditions based on the stabilization time; If the user event meets the anti-shake conditions, then it is determined whether to perform collision detection based on the type of the user event. If collision detection is performed, then based on the visible area of the scrolling container, collision detection is performed on several video containers to divide the several video containers into several visible containers and several hidden containers. Examine the data within several visible containers to select several selected containers from the several visible containers, and pull the video stream of several selected containers; Stop the video streams of several of the hidden containers, while maintaining audio stream connectivity and signaling channel connectivity.
[0007] Furthermore, the step of establishing several video containers based on several pieces of member data, and arranging the several video containers within a scrolling container to form an activity bar includes: Based on several of the aforementioned member data, several placeholder box data and several rendering element data are obtained; A two-layer DOM structure framework is established, and several placeholder box data and several rendering element data are filled into the two-layer DOM structure framework to create several initial containers, and several initial containers correspond one-to-one with several member data. Based on the member attributes in the member data, select a number of list member data from the member data, and establish the initial container corresponding to the list member data as the video container; Based on the interact field in several list member data, several video containers are arranged into a container list, a scrolling container is obtained, and the container list is wrapped in the scrolling container to form an activity bar.
[0008] Furthermore, the step of determining whether the user event meets the anti-shake conditions based on the stabilization time includes: The system identifies whether there is any user interaction within the stable time period. If no user interaction occurs, the user event meets the debouncing conditions.
[0009] Furthermore, the types of user events include activity bar scrolling, activity bar collapsing, activity bar expanding, and member changes. The step of determining whether to perform collision detection based on the type of user event includes: If the user event is of type scrolling, expanding, or member change, then collision detection is performed; If the user event type is "activity bar collapse", then stop the video stream of all video containers.
[0010] Furthermore, the step of performing collision detection on several video containers based on the visible area of the scrolling container to divide the several video containers into several visible containers and several hidden containers includes: The starting point boundary, rolling direction, and ending point boundary of the rolling container are determined to define the visible area of the rolling container. Based on the scrolling direction, determine the video start boundary and video end boundary of the video container; Determine whether the video start boundary or the video end boundary is within the visible area. If the video start boundary or the video end boundary is within the visible area, the video container is determined to be a visible container. If both the video start boundary and the video end boundary are outside the visible area, the video container is determined to be a hidden container.
[0011] Furthermore, the step of examining data within a plurality of the visible containers to select a plurality of selected containers from the plurality of visible containers includes: Check if a canvas element exists in the rendering element data of the visible container. If the rendering element data of the visible container does not contain a canvas element, then select the visible container as the selected container.
[0012] Furthermore, the step of stopping the video streams of several of the hidden containers includes: Stop receiving video data packets from several of the hidden containers, release the decoders of several of the hidden containers, and clear the canvas elements from the rendering element data of several of the hidden containers.
[0013] A multi-channel video stream dynamic scheduling system, employing the multi-channel video stream dynamic scheduling method described above, the system comprising: The acquisition module is used to acquire several member data, establish several video containers based on the several member data, and arrange the several video containers in a scrolling container to form an activity bar; The monitoring module is used to monitor user events occurring in the activity bar, obtain a preset stabilization time based on the type of the user event, and determine whether the user event meets the debouncing conditions based on the stabilization time. The detection module is used to determine whether to perform collision detection based on the type of the user event if the user event meets the anti-shake conditions. If collision detection is performed, collision detection is performed on several video containers based on the visible area of the scrolling container to divide the several video containers into several visible containers and several hidden containers. A pull module is used to examine the data within several visible containers, select several selected containers from the several visible containers, and pull the video stream of several selected containers; The stop module is used to stop the video streams of several of the hidden containers while maintaining the audio stream and signaling channel connectivity.
[0014] A computer includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the dynamic scheduling method for multiple video streams as described above.
[0015] A storage medium storing a computer program, which, when executed by a processor, implements the dynamic scheduling method for multiple video streams as described in the above technical solution.
[0016] Compared with the prior art, the beneficial effects of the present invention are as follows: By setting the anti-shake conditions, when the user operates the activity bar, it is determined whether the user is performing frequent operations. When the user's operation is stable, the detection is triggered, which can effectively prevent the user from frequently triggering collision detection on the video container during multiple continuous scrolling and expanding of the activity bar, significantly reducing the occupation of computing resources. Based on the visible area of the scrolling container, collision detection is performed on each video container that exists in the activity bar and participates in scrolling and expanding, and it is determined whether it is visible to the user. If it is visible, the video stream is pulled; if it is not visible, the corresponding video stream scheduling is stopped, which greatly saves bandwidth and releases decoding resources. For expanding and closing the activity bar, all multiple video streams are scheduled. When the members participating in real-time audio and video interaction change, collision testing is also dynamically performed and video streams are scheduled. The dynamic scheduling method of multiple video streams not only saves bandwidth and computing resources, but also has excellent dynamic flexibility and adaptability. Attached Figure Description
[0017] Figure 1 This is a flowchart of the dynamic scheduling method for multiple video streams in the first embodiment of the present invention; Figure 2 This is a structural block diagram of the multi-channel video stream dynamic scheduling system in the second embodiment of the present invention; The following detailed description, in conjunction with the accompanying drawings, will further illustrate the present invention. Detailed Implementation
[0018] To facilitate understanding of the present invention, a more complete description will be given below with reference to the accompanying drawings. Several embodiments of the invention are illustrated in the drawings. However, the invention can be implemented in many different forms and is not limited to the embodiments described herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete.
[0019] It should be noted that when a component is said to be "fixed to" another component, it can be directly on the other component or there may be an intervening component. When a component is said to be "connected to" another component, it can be directly connected to the other component or there may be an intervening component. The terms "vertical," "horizontal," "left," "right," and similar expressions used in this document are for illustrative purposes only.
[0020] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains. The terminology used herein in the description of the invention is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The term "and / or" as used herein includes any and all combinations of one or more of the associated listed items.
[0021] Please see Figure 1 The multi-channel video stream dynamic scheduling method in the first embodiment of the present invention includes the following steps: Step S10: Obtain several member data, establish several video containers based on the several member data, and arrange the several video containers in a scrolling container to form an activity bar; Preferably, the participants in the multiple real-time video streams are called members, and each video container is bound to a member by setting a member identifier.
[0022] Step S10 includes: S110: Based on several of the aforementioned member data, obtain several placeholder box data and several rendering element data; S120: Establish a two-layer DOM structure framework, fill the two-layer DOM structure framework with several placeholder box data and several rendering element data to establish several initial containers, and the several initial containers correspond one-to-one with the several member data; Preferably, the DOM is a document object model. In the two-layer DOM structure framework, the outer div contains a placeholder box of a fixed size, and the inner div contains the element that renders the video. The div is an element used to provide structure and background for large blocks of content in the HTML document.
[0023] S130: Based on the member attributes in the member data, select a number of list member data from the member data, and establish the initial container corresponding to the list member data as the video container; Preferably, for example, in the application scenario of online interactive classroom, multiple members are divided into lecture classrooms and listening classrooms. Based on the member data, the user of the current client is determined to be a teacher. Only by interacting with the listening classrooms can several listening classrooms be selected as list members. The videos of several listening classrooms need to be placed in an interactive sidebar, supporting interactive operations such as scrolling, collapsing, and displaying.
[0024] S140: Arrange the video containers into a container list according to the interact field in the list member data, obtain a scrolling container, and wrap the container list in the scrolling container to form an activity bar.
[0025] Preferably, the container list has a fixed size, the activity bar is presented in the form of a sidebar, and several video containers are arranged vertically in it. Specifically, the member data of several listening classrooms are arranged in descending order according to the interaction field, and the classrooms that are interacting are placed at the top.
[0026] Step S20: Listen to user events occurring in the activity bar, obtain a preset stabilization time based on the type of the user event, and determine whether the user event meets the debouncing conditions based on the stabilization time; Preferably, since users may accidentally touch or frequently operate on the interactive interface, it is understandable that by setting the anti-shake conditions, when the user operates on the activity bar, it is determined whether the user is performing frequent operations. When the user's operation is stable, the detection is triggered, which can effectively prevent the user from frequently triggering collision detection on the video container during multiple continuous scrolling, expanding and collapsing of the activity bar, etc., significantly reducing the occupation of computing resources and improving the efficiency and smoothness of detection and streaming.
[0027] Step S20 includes: S210: Identify whether there is any user operation behavior within the stable time period. If there is no user operation behavior, the user event meets the anti-shake condition.
[0028] Preferably, if the user event is scrolling the activity bar, the corresponding stabilization time is 500ms; if the user event is collapsing or displaying the activity bar, the corresponding stabilization time is 1s; and if the user event is a participant leaving or joining the live interactive video, the corresponding stabilization time is 2s.
[0029] Step S30: If the user event meets the anti-shake conditions, then determine whether to perform collision detection based on the type of the user event. If collision detection is performed, then based on the visible area of the scrolling container, perform collision detection on several video containers to divide the several video containers into several visible containers and several hidden containers. Understandably, based on the visible area of the scrolling container, collision detection is performed on each video container that exists in the activity bar and participates in scrolling and collapsing to determine whether it is visible to the user. If it is visible, the subsequent video stream is retrieved; if it is not visible, the corresponding video stream scheduling is stopped, which greatly saves bandwidth and releases decoding resources.
[0030] In step S30, the types of user events include activity bar scrolling, activity bar collapsing, activity bar expanding, and member changes. Step S30 includes: S310: If the type of the user event is activity bar scrolling, activity bar expansion, or member change, then perform collision detection; Preferably, if the type of the user event is a member change, then several video containers in the activity bar are updated and collision detection is performed. When a member is added or removed, the number of video containers also changes accordingly. The containers corresponding to the removed members are deleted, and new containers are created for the new members.
[0031] S320: If the type of the user event is "activity bar collapse", then stop the video stream of all video containers; Once the activity bar is collapsed, the scheduling of the video stream corresponding to the window in the activity bar is completely stopped, quickly releasing bandwidth and computing resources.
[0032] S330: Determine the starting point boundary, rolling direction, and ending point boundary of the rolling container to determine the visible area range of the rolling container; Preferably, the rolling direction is longitudinal, the rolling container is rectangular, the starting point boundary of the rolling is the top edge of the rectangle, and the ending point boundary of the rolling is the bottom edge of the rectangle.
[0033] S340: Based on the scrolling direction, determine the video start boundary and video end boundary of the video container; Preferably, the video container is rectangular, the starting boundary of the video is the top edge of the video container, and the ending boundary of the video is the bottom edge of the video container. Several video containers are arranged in a row in the scrolling container and scroll vertically. It is only necessary to determine whether the video container is visible to the user based on the top and bottom edges of the video container and the visible area of the scrolling container.
[0034] S350: Determine whether the video start boundary or the video end boundary is within the visible area. If the video start boundary or the video end boundary is within the visible area, the video container is established as a visible container. If both the video start boundary and the video end boundary are outside the visible area, the video container is established as a hidden container.
[0035] Preferably, the video container is considered as such as a rectangular window portion that is within the visible area.
[0036] Step S40: Examine the data within several visible containers to select several selected containers from the several visible containers, and pull the video stream of several selected containers; Preferably, the data within the visible container is checked to determine its historical streaming status. Based on the status, it is then determined whether the container currently needs to be processed to pull the video stream, thus avoiding the waste of computing power and network bandwidth caused by repeated or inaccurate streaming. The video stream is pulled by subscribing to the video stream through the inner div calling the "startRemoteView" method, and the video window is stretched and filled.
[0037] Step S40 includes: S360: Check whether there is a canvas element in the rendering element data of the visible container. If there is no canvas element in the rendering element data of the visible container, then select the visible container as the selected container.
[0038] Preferably, the canvas element is an element automatically created during video streaming and rendering. If a canvas element exists, it means that the video stream has been streamed. The visible container that does not contain a canvas element is taken as the current streaming container to be streamed, i.e., the selected container. It can be understood that by detecting the canvas element, duplicate streaming can be prevented when multiple scrolling events are detected and visible containers are determined.
[0039] Step S50: Stop the video streams of several of the hidden containers, while maintaining the audio stream and signaling channel connectivity.
[0040] Step S50 includes: S510: Stop receiving video data packets from the hidden containers, release the decoders of the hidden containers, and clear the canvas elements from the rendering element data of the hidden containers.
[0041] Preferably, the invisible container in the activity bar is the hidden container. The video stream is stopped by calling the "stopRemoteView" interface in the real-time audio and video SDK (Software Development Kit). By calling interfaces such as "stop" and "muteAudio", the reception of data packets is stopped, computing resources are released, and the canvas element used as the pull stream identifier is cleared. At the same time, the connection of the underlying WebRTC (Web Real-Time Communications) component is maintained to preserve the audio and signaling channels. When the hidden container becomes visible again when the activity bar is scrolled or expanded, the video screen can be quickly brought up, eliminating the need to rebuild the connection.
[0042] In this embodiment, for example, one main lecture classroom is connected to eight listening classrooms. The activity bar only contains the listening classroom windows, that is, it needs to hold eight small video windows. However, screen space is limited, and usually only three to four small video windows can be placed. The rest can be scrolled through by the user in the main lecture classroom. For traditional full-subscription multi-channel video scheduling methods, 8 video streams in a lecture hall, each occupying approximately 550Kbps in standard definition mode, would require a total downlink bandwidth of 4400Kbps. School network bandwidth is typically shared at 50Mbps~100Mbps, which would easily cause buffering for teachers in the main lecture hall and other lecture halls. Furthermore, school classrooms usually use low-configuration all-in-one machines, and decoding 8 video streams simultaneously would fully utilize CPU resources. For existing server-side mixing methods, multiple video streams are combined into one stream on the server side and pushed to the client. Although the client only needs to decode one video stream, the server's computing power consumption increases significantly, resulting in higher costs. Moreover, mixing reduces the video resolution, making it difficult to amplify any single video stream individually. For existing large / small stream switching methods, one high-definition video stream and one low-definition video stream are sent simultaneously, with the user pulling different stream sizes based on the screen size. While this reduces the bandwidth consumption of a single stream, it still cannot solve the problem of temporarily invisible video windows in the interactive interface still pulling streams and consuming bandwidth. Understandably, the proposed multi-channel video stream dynamic scheduling method significantly saves bandwidth and computing resources compared to existing solutions, and has excellent dynamic flexibility and adaptability.
[0043] Please see Figure 2 The second embodiment of the present invention provides a multi-channel video stream dynamic scheduling system that applies the multi-channel video stream dynamic scheduling method described in the first embodiment above. The system includes: The acquisition module 10 is used to acquire several member data, establish several video containers based on the several member data, and arrange the several video containers in a scrolling container to form an activity bar; The acquisition module 10 includes: The first unit is used to obtain several placeholder box data and several rendering element data based on several member data; The second unit is used to establish a two-layer DOM structure framework, and fills the two-layer DOM structure framework with several placeholder data and several rendering element data to establish several initial containers, and the several initial containers correspond one-to-one with several member data. The third unit is used to select a number of list member data from the number of member data according to the member attributes in the number of member data, and to establish the initial container corresponding to the list member data as a video container; The fourth unit is used to arrange several video containers into a container list based on the interact field in several list member data, obtain a scrolling container, and wrap the container list in the scrolling container to form an activity bar.
[0044] The monitoring module 20 is used to monitor user events occurring in the activity bar, obtain a preset stabilization time based on the type of the user event, and determine whether the user event meets the debouncing conditions based on the stabilization time. The monitoring module 20 includes: The fifth unit is used to identify whether there is any user operation behavior within the stable time period. If there is no user operation behavior, the user event meets the debouncing conditions.
[0045] The detection module 30 is used to determine whether to perform collision detection based on the type of the user event if the user event meets the anti-shake conditions. If collision detection is performed, collision detection is performed on several video containers based on the visible area of the scrolling container to divide the several video containers into several visible containers and several hidden containers. In the detection module 30, the types of user events include activity bar scrolling, activity bar collapsing, activity bar expanding, and member changes. The detection module 30 includes: The sixth unit is used to perform collision detection if the type of the user event is activity bar scrolling, activity bar expansion, or member change. The seventh unit is used to stop the video stream of all video containers if the type of the user event is "activity bar collapse". The eighth unit is used to determine the starting point boundary, the direction of rolling, and the ending point boundary of rolling based on the rolling container, so as to determine the visible area range of the rolling container; The ninth unit is used to determine the video start boundary and video end boundary of the video container based on the scrolling direction; The tenth unit is used to determine whether the video start-point boundary or the video end-point boundary is within the visible area. If the video start-point boundary or the video end-point boundary is within the visible area, the video container is established as a visible container. If both the video start-point boundary and the video end-point boundary are outside the visible area, the video container is established as a hidden container.
[0046] The pull module 40 is used to examine the data within several visible containers, select several selected containers from the several visible containers, and pull the video stream of several selected containers; The pull module 40 includes: The eleventh unit is used to check whether there is a canvas element in the rendering element data of the visible container. If there is no canvas element in the rendering element data of the visible container, the visible container is selected as the selected container.
[0047] The stop module 50 is used to stop the video streams of several of the hidden containers while maintaining the audio stream and signaling channel connectivity.
[0048] The stop module 50 includes: The twelfth unit is used to stop receiving video data packets from several of the hidden containers, release the decoders of several of the hidden containers, and clear the canvas elements in the rendering element data of several of the hidden containers.
[0049] The third embodiment of the present invention provides a computer, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the multi-channel video stream dynamic scheduling method as described in the first embodiment.
[0050] The fourth embodiment of the present invention provides a storage medium on which a computer program is stored. When the computer program is executed by a processor, it implements the dynamic scheduling method for multiple video streams as described in the first embodiment.
[0051] In the description of this specification, references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of the invention. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples.
[0052] The embodiments described above are merely illustrative of several implementations of the present invention, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of the present invention. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of the present invention, and these modifications and improvements all fall within the scope of protection of the present invention. Therefore, the scope of protection of this patent should be determined by the appended claims.
Claims
1. A method for dynamic scheduling of multiple video streams, characterized in that, Includes the following steps: Acquire several member data, establish several video containers based on the several member data, and arrange the several video containers in a scrolling container to form an activity bar; Listen for user events occurring in the activity bar, obtain a preset stabilization time based on the type of the user event, and determine whether the user event meets the debouncing conditions based on the stabilization time; If the user event meets the anti-shake conditions, then it is determined whether to perform collision detection based on the type of the user event. If collision detection is performed, then based on the visible area of the scrolling container, collision detection is performed on several video containers to divide the several video containers into several visible containers and several hidden containers. Examine the data within several visible containers to select several selected containers from the several visible containers, and pull the video stream of several selected containers; Stop the video streams of several of the hidden containers, while maintaining audio stream connectivity and signaling channel connectivity.
2. The method for dynamic scheduling of multiple video streams according to claim 1, characterized in that, The step of establishing several video containers based on several pieces of member data, and arranging the several video containers within a scrolling container to form an activity bar includes: Based on several of the aforementioned member data, several placeholder box data and several rendering element data are obtained; A two-layer DOM structure framework is established, and several placeholder box data and several rendering element data are filled into the two-layer DOM structure framework to create several initial containers, and several initial containers correspond one-to-one with several member data. Based on the member attributes in the member data, select a number of list member data from the member data, and establish the initial container corresponding to the list member data as the video container; Based on the interact field in several list member data, several video containers are arranged into a container list, a scrolling container is obtained, and the container list is wrapped in the scrolling container to form an activity bar.
3. The method for dynamic scheduling of multiple video streams according to claim 1, characterized in that, The step of determining whether the user event meets the anti-shake conditions based on the settling time includes: The system identifies whether there is any user interaction within the stable time period. If no user interaction occurs, the user event meets the debouncing conditions.
4. The method for dynamic scheduling of multiple video streams according to claim 1, characterized in that, The types of user events include activity bar scrolling, activity bar collapsing, activity bar expanding, and member changes. The step of determining whether to perform collision detection based on the type of user event includes: If the user event is of type scrolling, expanding, or member change, then collision detection is performed; If the user event type is "activity bar collapse", then stop the video stream of all video containers.
5. The method for dynamic scheduling of multiple video streams according to claim 1, characterized in that, The step of performing collision detection on several video containers based on the visible area of the scrolling container to divide the several video containers into several visible containers and several hidden containers includes: The starting point boundary, rolling direction, and ending point boundary of the rolling container are determined to define the visible area of the rolling container. Based on the scrolling direction, determine the video start boundary and video end boundary of the video container; Determine whether the video start boundary or the video end boundary is within the visible area. If the video start boundary or the video end boundary is within the visible area, the video container is determined to be a visible container. If both the video start boundary and the video end boundary are outside the visible area, the video container is determined to be a hidden container.
6. The method for dynamic scheduling of multiple video streams according to claim 2, characterized in that, The step of examining data within a plurality of the visible containers to select a plurality of selected containers from the plurality of visible containers includes: Check if a canvas element exists in the rendering element data of the visible container. If the rendering element data of the visible container does not contain a canvas element, then select the visible container as the selected container.
7. The method for dynamic scheduling of multiple video streams according to claim 2, characterized in that, The step of stopping the video stream of several of the hidden containers includes: Stop receiving video data packets from several of the hidden containers, release the decoders of several of the hidden containers, and clear the canvas elements from the rendering element data of several of the hidden containers.
8. A dynamic scheduling system for multiple video streams, employing the dynamic scheduling method for multiple video streams as described in any one of claims 1 to 7, characterized in that, The system includes: The acquisition module is used to acquire several member data, establish several video containers based on the several member data, and arrange the several video containers in a scrolling container to form an activity bar; The monitoring module is used to monitor user events occurring in the activity bar, obtain a preset stabilization time based on the type of the user event, and determine whether the user event meets the debouncing conditions based on the stabilization time. The detection module is used to determine whether to perform collision detection based on the type of the user event if the user event meets the anti-shake conditions. If collision detection is performed, collision detection is performed on several video containers based on the visible area of the scrolling container to divide the several video containers into several visible containers and several hidden containers. A pull module is used to examine the data within several visible containers, select several selected containers from the several visible containers, and pull the video stream of several selected containers; The stop module is used to stop the video streams of several of the hidden containers while maintaining the audio stream and signaling channel connectivity.
9. A computer comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the dynamic scheduling method for multiple video streams as described in any one of claims 1 to 7.
10. A storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the dynamic scheduling method for multiple video streams as described in any one of claims 1 to 7.