Video conference transmission scheduling method and device, equipment and storage medium
By obtaining server performance status information in the video conferencing system and re-encoding the video stream, the problem of video bit rate selection in video conferencing is solved, and video quality and bandwidth utilization efficiency are improved.
Patent Information
- Application Number
- CN202510013324.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-06
- Publication Date
- 2025-04-11
AI Technical Summary
When selecting video code rate, existing video conferencing technologies are difficult to take into account both server performance and receiving terminal bandwidth, resulting in unstable video quality and insufficient bandwidth utilization.
By obtaining the server performance status information, it is determined whether it is within the preset performance range. If so, an encoding instruction is sent to the target device, re-encode the video stream, and forward the re-encoded stream to the appropriate receiving terminal.
This method not only takes into account the performance of the server, but also adapts to the number of video streams of different bit rates, has a certain mobility, and improves the scheduling efficiency and video quality of video conferencing.
Smart Images

Figure CN119815028A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of video network transmission, and more specifically, to a video conference transmission scheduling method, device, equipment and storage medium. Background Art
[0002] With the development of video conferencing technology, multi-screen technology has emerged. In a video conference, each conference terminal can collect images and sounds. After each conference terminal connects to the server to join the conference, it encodes the collected images and sounds and sends the encoded data to the server. The server sends the images and sounds sent by each conference terminal to other terminals according to the conference requirements, thereby realizing audio and video calls for multiple participants. This is the situation of "one send, multiple receive" for conference terminals.
[0003] In current video conferences, for the same video content, the terminal itself or a dedicated transcoding server often generates at least two video streams with different preset bit rates to the forwarding server. The forwarding server provides these at least two video streams with different preset bit rates to each receiving terminal for selection. The receiving terminal pulls the corresponding video stream suitable for the bandwidth from the forwarding server according to its current bandwidth. In this way, the network bandwidth can be fully utilized to improve the video clarity while ensuring the video quality, and the phenomenon of video freeze and unsmoothness can be avoided when the bandwidth utilization reaches the instantaneous peak.
[0004] However, choosing the number of preset bit rates is a difficult problem. If too many are selected, the performance of the forwarding server will be overly consumed. If too few are selected, it will not be able to adapt well to the bandwidth of the receiving end and provide video with the best bit rate. Summary of the invention
[0005] In order to overcome at least one of the defects of the prior art described above, the present invention provides a video conference transmission scheduling method, device, equipment and storage medium. The technical solution adopted by the present invention is as follows.
[0006] In a first aspect, the present invention provides a video conference transmission scheduling method, comprising:
[0007] Get the performance status information of the server;
[0008] Determine whether the server is within a preset performance range according to the performance status information, wherein the performance range is a range less than a preset performance upper limit of the server;
[0009] When the server is within the preset performance interval, sending an encoding instruction to a target device connected to the server, wherein the encoding instruction is used to instruct the target device to re-encode the received first video at a preset bit rate to obtain a re-encoded stream of the first video, and send the re-encoded stream of the first video back to the server;
[0010] The server receives and forwards the re-encoded stream of the first video to a corresponding receiving terminal, wherein the corresponding receiving terminal is a terminal that needs to receive the first video and whose bandwidth meets a preset requirement for transmitting the re-encoded stream of the first video.
[0011] In one embodiment, it further includes:
[0012] selecting the first video;
[0013] The process of selecting the first video includes:
[0014] Obtaining bandwidth allocated to each single-channel video by each terminal, wherein each single-channel video includes video streams of at least two bit rates, and the terminal selects to receive a video stream of one bit rate;
[0015] Find out the poor terminal of each single-channel video according to the bandwidth allocated by each terminal to each single-channel video, wherein the poor terminal is a terminal whose bandwidth allocated to the single-channel video is insufficient to meet the requirement of transmitting the highest bit rate video stream in the single-channel video;
[0016] According to the number of difference terminals of each single-channel video and the total number of difference terminals of all single-channel videos, one video is selected from each single-channel video as the first video.
[0017] In one implementation, the process of selecting the first video further includes:
[0018] When the server is being used by multiple meetings, obtaining importance information of each meeting;
[0019] According to the number of difference terminals of each single-channel video, the total number of difference terminals of all single-channel videos and the importance information of each conference, one video is selected from each single-channel video as the first video.
[0020] In one embodiment, it further includes:
[0021] A process of determining the preset bit rate;
[0022] The process of determining the preset bit rate includes:
[0023] Obtaining bandwidth allocated to the first video by each terminal receiving the first video, wherein the first video includes video streams of at least two bit rates, and the terminal selects to receive the video stream of one bit rate;
[0024] Finding out a poor terminal of the first video according to the bandwidth allocated to the first video by each terminal receiving the first video, wherein the poor terminal of the first video is a terminal for which the bandwidth allocated to the first video is insufficient to meet the requirement of transmitting the highest bit rate in the first video;
[0025] The preset bit rate is determined according to the bandwidth allocated to the first video by the difference terminal of each first video.
[0026] In one embodiment, it further includes:
[0027] A process of determining the preset bit rate;
[0028] The process of determining the preset bit rate includes:
[0029] Obtaining bandwidth allocated to the first video by each terminal receiving the first video, wherein the first video includes video streams of at least two bit rates, and the terminal selects to receive the video stream of one bit rate;
[0030] Finding out a poor terminal of the first video according to the bandwidth allocated to the first video by each terminal receiving the first video, wherein the poor terminal of the first video is a terminal for which the bandwidth allocated to the first video is insufficient to meet the requirement of transmitting the highest bit rate in the first video;
[0031] Obtaining importance information of difference terminals of each first video;
[0032] The preset bit rate is determined according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video.
[0033] In one implementation, the process of determining the preset bit rate according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video includes:
[0034] When the importance of the difference terminals of the first videos is different, the weight of the difference terminals of the first videos is obtained according to the importance information of the difference terminals of the first videos;
[0035] Determine, according to the weight of the difference terminal of each first video and the bandwidth allocated to the first video, the median of the bandwidth allocated to the first video by the difference terminal of each first video, and determine the allowed bandwidth of the first video according to the median of the bandwidth allocated to the first video by the difference terminal of each first video;
[0036] The preset bit rate is determined according to an allowed bandwidth of the first video.
[0037] In one implementation, the process of determining the preset bit rate according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video further includes:
[0038] When the importance of the difference terminals of the first videos is the same, determining the allowed bandwidth of the first video according to the median of the bandwidth allocated to the first video by the difference terminals of the first videos;
[0039] The preset bit rate is determined according to an allowed bandwidth of the first video.
[0040] In one embodiment, before the process of sending the encoding instruction to a target device connected to the server, the process includes:
[0041] Obtaining the bandwidth allocated to the first video by each terminal and the preset bit rate;
[0042] Determine the number of receiving terminals that need to receive the first video and whose bandwidth satisfies the transmission setting of the preset bit rate according to the bandwidth allocated to the first video by each terminal and the preset bit rate;
[0043] When the number of the receiving terminals is within a preset number range, a coding instruction is sent to a target device connected to the server.
[0044] In a second aspect, the present invention provides a video conference transmission scheduling device, comprising:
[0045] An acquisition module is used to obtain the performance status information of the server;
[0046] A judgment module, used to judge whether the server is within a preset performance range according to the performance status information, wherein the performance range is a range less than a preset performance upper limit of the server;
[0047] a sending module, configured to send an encoding instruction to a target device connected to the server when the server is within the preset performance interval, wherein the encoding instruction is used to instruct the target device to re-encode the received first video at a preset bit rate to obtain a re-encoded stream of the first video, and send the re-encoded stream of the first video back to the server;
[0048] The multimedia management module is used to allow the server to receive and forward the re-encoded stream of the first video to the corresponding receiving terminal, wherein the corresponding receiving terminal is a terminal that needs to receive the first video and whose bandwidth meets the preset requirements for transmitting the re-encoded stream of the first video.
[0049] In a third aspect, the present invention provides a computer device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements any of the above-mentioned methods when executing the program.
[0050] In a fourth aspect, the present invention provides a computer-readable storage medium having a computer program stored thereon, wherein the program, when executed by a processor, implements the method of any of the above-mentioned embodiments.
[0051] In the present invention, it is first determined whether the server has the ability to forward one more bit stream, and if it has the ability, the target device is allowed to re-encode a video stream with a new bit rate and forward the stream to the corresponding terminal. The present invention takes into account both the performance of the server and the number of video streams with different bit rates, has a certain degree of mobility, and provides better scheduling for video conferencing. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] Figure 1 It is a schematic diagram of the overall process of an implementation method of Example 1 of the present invention.
[0053] Figure 2 It is a partial flow chart of an implementation method of Example 1 of the present invention.
[0054] Figure 3 It is a partial flow chart of another implementation method of the first embodiment of the present invention.
[0055] Figure 4 It is a schematic diagram of the overall structure of the second embodiment of the present invention. DETAILED DESCRIPTION
[0056] The exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the exemplary embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided to enable a more thorough understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art.
[0057] It should be noted that the terms "first\second\..." involved in the embodiments of the present invention are only used to distinguish similar objects, and do not represent a specific order for the objects. It is understandable that the specific order or sequence of "first\second\..." can be interchanged where permitted. It should be understood that the objects distinguished by "first\second\..." can be interchanged where appropriate, so that the embodiments of the present invention described herein can be implemented in an order other than those illustrated or described herein.
[0058] Embodiment 1
[0059] See also Figure 1, Figure 1 The flowchart of a video conference transmission scheduling method provided in the first embodiment of the present invention includes step S110, step S120, step S130 and step S140. It should be noted that step S110, step S120, step S130 and step S140 are only reference numerals for clarifying the embodiment and the appendix. Figure 1 The corresponding relationship does not limit the order of the steps in this embodiment.
[0060] Step S110, obtaining performance status information of the server;
[0061] Step S120, judging whether the server is within a preset performance range according to the performance status information, wherein the performance range is a range smaller than a preset performance upper limit of the server;
[0062] Step S130, when the server is within the preset performance range, sending an encoding instruction to a target device connected to the server, wherein the encoding instruction is used to instruct the target device to re-encode the received first video at a preset bit rate to obtain a re-encoded stream of the first video, and send the re-encoded stream of the first video back to the server;
[0063] Step S140: The server receives and forwards the re-encoded stream of the first video to a corresponding receiving terminal, wherein the corresponding receiving terminal is a terminal that needs to receive the first video and whose bandwidth meets a preset requirement for transmitting the re-encoded stream of the first video.
[0064] In a video conference, each conference terminal is connected to a server. This method is used to control the operation of the server and can be applied to the server itself or to a device for controlling the server. In step S110, the performance status information of the server is obtained.
[0065] It should be noted here that the server referred to in step S110 is a server with forwarding function, which performs stream forwarding function and a small amount of signaling interaction with the terminal (such as layout information). If audio and video re-encoding is required, a dedicated transcoding server or a terminal with transcoding function and capability can be used for collaborative transcoding.
[0066] Step S120 is used to determine whether the performance of the server has reached the upper limit and whether sufficient performance can be spared to execute subsequent work.
[0067] It should be noted here that, since the server has to take care of multiple tasks, in order to ensure that other tasks can also have sufficient resources to execute, a performance range is preset in step S120. This range can be obtained through experience or conclusions drawn after various data analyses. Within this performance range, even if the work to be executed later is added, it can be guaranteed that the server can execute other required tasks.
[0068] The subsequent work mentioned here is to forward one more video stream. Since the server forwards video streams with different bit rates, it consumes the server's performance. Therefore, after the judgment of step S120, when it is determined that there is sufficient performance to implement, step S130 sends an encoding instruction, through which the target device is asked to re-encode and generate one more video stream with a different bit rate from the previous one, which is about the first video.
[0069] It should be noted that the target device here can be a device dedicated to encoding, such as an encoding server, or a terminal that is capable of performing the task. Of course, the best device or apparatus that can perform the task can also be selected based on other network parameters such as bandwidth.
[0070] It should also be noted here that the device that sends the coded instruction can be the server itself, or other devices specifically used for control.
[0071] After completing the judgment of step S120 and the sending instruction of step S130, step S140 receives the re-encoded stream of the first video and forwards it to the corresponding terminal. The corresponding terminal here is mainly considered from two aspects. The first aspect is the terminal that needs to receive the first video. Because in the actual video conferencing scenario, it is possible that the server undertakes multiple video conferencing tasks at the same time. Even if there is only one video conferencing task, not all terminals necessarily receive the same video. Therefore, the first aspect is to send the first video to the terminal that needs to receive the first video; in addition, the second aspect is to consider the bandwidth problem of these terminals that need to receive the first video. Generally speaking, some corresponding bandwidth requirements can be preset according to different bit rates. When the receiving terminal meets these preset bandwidth requirements, it is considered that these terminals can receive the re-encoded bit stream.
[0072] In this method, it is first determined whether the server has the ability to forward one more bitstream. If it has the ability, the target device is allowed to re-encode a video stream with a new bitrate and forward the stream to the corresponding terminal. This method takes into account both the performance of the server and the number of video streams with different bitrates, has a certain degree of flexibility, and provides better scheduling for video conferencing.
[0073] In one implementation, the video conference transmission scheduling method further includes: step S150.
[0074] Step S150, a process of selecting the first video;
[0075] Among them, Figure 2 As shown, the process of selecting the first video includes: step S151, step S152 and step S153.
[0076] Step S151, obtaining the bandwidth allocated by each terminal to each single-channel video, wherein each single-channel video includes video streams of at least two bit rates, and the terminal selects to receive the video stream of one bit rate;
[0077] Step S152, according to the bandwidth allocated by each terminal to each single-channel video, finding out the poor terminal of each single-channel video, wherein the poor terminal is a terminal whose bandwidth allocated to the single-channel video is insufficient to meet the requirement of transmitting the highest bit rate video stream in the single-channel video;
[0078] Step S153: selecting one video from each single-channel video as the first video according to the number of difference terminals of each single-channel video and the total number of difference terminals of all single-channel videos.
[0079] In actual video conferencing scenarios, it is possible that the server undertakes multiple video conferencing tasks at the same time. Even if there is only one video conferencing task, not all terminals necessarily receive the same video, which results in different demands for each single-channel video, that is, different numbers of terminals that need the single-channel video. What is added in steps S130 and S140 is a bit rate selection for only one video, so in this embodiment, a selection is made to select a video that can meet the needs of the most terminals as the video with the bit rate to be added in steps S130 and S140.
[0080] For each terminal, bandwidth will be allocated for each single-channel video according to its own bandwidth situation. However, the bandwidth allocated to each terminal may not meet the requirement of transmitting the highest bit rate video stream in the single-channel video. For such terminals that cannot be allocated to meet the requirements, they are called poor terminals in step S152. Poor terminals have the need to obtain a bit rate video slightly lower than the highest bit rate. Steps S151 and S152 are to count the number of such poor terminals in each single-channel video.
[0081] In step S153, the relationship between the total number of difference terminals and the number of difference terminals of all single-channel videos is used to obtain the video that needs to be adjusted the most as the first video. Here, the relationship between the total number of difference terminals and the number of difference terminals of all single-channel videos can be obtained by using the proportion or other models representing the relationship.
[0082] In one implementation, the process of selecting the first video further includes: step S154 and step S155.
[0083] Step S154, when the server is being used by multiple meetings, obtaining importance information of each meeting;
[0084] Step S155 , selecting one video from each single-channel video as the first video according to the number of difference terminals of each single-channel video, the total number of difference terminals of all single-channel videos, and the importance information of each conference.
[0085] The previous embodiment can be used in the scenario where the server undertakes the task of a single or multiple video conferences at the same time, but the most suitable scenario is still the scenario of the task of a single video conference. For the scenario of multiple video conferences, since the importance of each video conference is different, when selecting the first video, in order to better meet the needs of the scenario, the importance of each conference itself needs to be considered.
[0086] In this implementation, the importance information of each meeting is also obtained, and when selecting the first video, the dimension of the importance of the meeting is added for selection.
[0087] For example, the total selection score = conference importance + poor terminal ratio, and the video with the highest total selection score is selected as the first video. The sum of the importance of all conferences can be set to 1, and then scores are assigned to each conference. For example, there are 3 conferences in total, the importance of conference 1 is 0.3, the importance of conference 2 is 0.5, and the importance of conference 3 is 0.2. The poor terminal ratio in conference 1 is Tran1, which is 0.6, the poor terminal ratio in conference 2 is Tran2, which is 0.3, and the poor terminal ratio in conference 3 is Tran3, which is 0.1. Then, the total selection scores of these three channels are Tran1: 0.3+0.6=0.9, Tran2: 0.5+0.3=0.8, and Tran3: 0.2+0.1=0.3. Tran1 is the highest, so Tran1 of conference 1 is selected as the first video.
[0088] In one implementation, the video conference transmission scheduling method further includes: step S160.
[0089] Step S160, a process of determining the preset bit rate.
[0090] Among them, Figure 3 As shown, the process of determining the preset bit rate includes:
[0091] Step S161, obtaining a bandwidth allocated to the first video by each terminal receiving the first video, wherein the first video includes video streams of at least two bit rates, and the terminal selects to receive a video stream of one bit rate;
[0092] Step S162, according to the bandwidth allocated to the first video by each terminal receiving the first video, finding out the poor terminal of the first video, wherein the poor terminal of the first video is a terminal for which the bandwidth allocated to the first video is insufficient to meet the requirement of transmitting the highest bit rate in the first video;
[0093] Step S163: Determine the preset bit rate according to the bandwidth allocated to the first video by the difference terminal of each first video.
[0094] This implementation manner determines the bit rate of the newly added first video according to the bandwidth that each difference terminal can provide, for example, by calculating the average value or median of these bandwidths to determine the preset bit rate.
[0095] In one implementation, the process of determining the preset bit rate further includes: step S164.
[0096] Step S164, obtaining importance information of the difference terminals of each first video;
[0097] In the process of step S163, the preset bit rate is also determined according to the importance information of the difference terminals of each first video.
[0098] Based on the previous embodiment, this embodiment takes into account the importance of each poor terminal, that is, the bit rate of the newly added first video should be adapted to more important poor terminals as much as possible, so that the newly added first video can be used by more high-importance terminals.
[0099] In one implementation, the process of determining the preset bit rate according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video includes: step S631 and step S632.
[0100] Step S631, when the importance of the difference terminals of the first videos is the same, determining the allowed bandwidth of the first videos according to the median of the bandwidths allocated to the first videos by the difference terminals of the first videos;
[0101] Step S632: Determine the preset bit rate according to the allowed bandwidth of the first video.
[0102] This is the case when the importance of the difference terminals of the first videos is the same. For example, the bandwidth values (in kbps) are 800, 600, 600, 400, and 300, respectively. Then the median is 600, and 600 is the allowed bandwidth of the first video. Based on the allowed bandwidth, the preset bit rate can be directly obtained by using the allowed bandwidth, or the allowed bandwidth can be processed in a certain way, such as multiplying it by a safety factor (such as 0.9) to obtain the preset bit rate.
[0103] In one implementation, the process of determining the preset bit rate according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video includes: step S633, step S634 and step S635.
[0104] Step S633, when the importance of the difference terminals of the first videos is different, deriving the weight of the difference terminals of the first videos according to the importance information of the difference terminals of the first videos;
[0105] Step S634, determining the median of the bandwidth allocated to the first video by the difference terminal of each first video according to the weight of the difference terminal of each first video and the bandwidth allocated to the first video, and determining the allowed bandwidth of the first video according to the median of the bandwidth allocated to the first video by the difference terminal of each first video;
[0106] Step S635: Determine the preset bit rate according to the allowed bandwidth of the first video.
[0107] This implementation scheme is for the case where the importance of difference terminals is different. Assume that there are 5 terminals T1-T5, and their bandwidth values are 1000, 800, 600, 400, and 200, respectively. Among them, the weight of T2 is 3, and the others are 1. Then, the ranking obtained according to their weights is 1000, 800, 800, 800, 600, 400, and 200, respectively. The median at this time is 800.
[0108] In one embodiment, before the process of sending the encoding instruction to a target device connected to the server, the process includes: step S231, step S232 and step S233.
[0109] Step S231, obtaining the bandwidth allocated to the first video by each terminal and the preset bit rate;
[0110] Step S232, determining the number of receiving terminals that need to receive the first video and whose bandwidth satisfies the transmission setting of the preset bit rate according to the bandwidth allocated to the first video by each terminal and the preset bit rate;
[0111] Step S233: When the number of the receiving terminals is within a preset range, a coding instruction is sent to a target device connected to the server.
[0112] This implementation method is to count the number of receiving terminals that can use the bit rate of the newly added first video. If the number of usable receiving terminals is within a preset range, the target device will be allowed to do re-encoding. If it is too small, no instructions will be sent and re-encoding will not be performed.
[0113] Embodiment 2
[0114] Corresponding to the method of embodiment 1, as Figure 4 As shown, the present invention further provides a video conference transmission scheduling device 4, including: an acquisition module 410, a judgment module 420, a sending module 430, and a multimedia management module 440.
[0115] The acquisition module 410 is used to acquire the performance status information of the server;
[0116] A determination module 420, configured to determine whether the server is within a preset performance range according to the performance status information, wherein the performance range is a range less than a preset performance upper limit of the server;
[0117] a sending module 430, configured to send an encoding instruction to a target device connected to the server when the server is within the preset performance interval, wherein the encoding instruction is used to instruct the target device to re-encode the received first video at a preset bit rate to obtain a re-encoded stream of the first video, and send the re-encoded stream of the first video back to the server;
[0118] The multimedia management module 440 is used to allow the server to receive and forward the re-encoded stream of the first video to the corresponding receiving terminal, wherein the corresponding receiving terminal is a terminal that needs to receive the first video and whose bandwidth meets the preset requirements for transmitting the re-encoded stream of the first video.
[0119] In one embodiment, it further includes: selecting a module;
[0120] The selection module is used to select the first video;
[0121] The process of the selecting module performing the selecting of the first video includes:
[0122] Obtaining bandwidth allocated to each single-channel video by each terminal, wherein each single-channel video includes video streams of at least two bit rates, and the terminal selects to receive a video stream of one bit rate;
[0123] Find out the poor terminal of each single-channel video according to the bandwidth allocated by each terminal to each single-channel video, wherein the poor terminal is a terminal whose bandwidth allocated to the single-channel video is insufficient to meet the requirement of transmitting the highest bit rate video stream in the single-channel video;
[0124] According to the number of difference terminals of each single-channel video and the total number of difference terminals of all single-channel videos, one video is selected from each single-channel video as the first video.
[0125] In one implementation, the process of selecting the first video by the selection module further includes:
[0126] When the server is being used by multiple meetings, obtaining importance information of each meeting;
[0127] According to the number of difference terminals of each single-channel video, the total number of difference terminals of all single-channel videos and the importance information of each conference, one video is selected from each single-channel video as the first video.
[0128] In one embodiment, it further includes: a determination module;
[0129] The determination module is further used to determine the preset bit rate;
[0130] The process of determining the preset bit rate performed by the determination module includes:
[0131] Obtaining bandwidth allocated to the first video by each terminal receiving the first video, wherein the first video includes video streams of at least two bit rates, and the terminal selects to receive the video stream of one bit rate;
[0132] Finding out a poor terminal of the first video according to the bandwidth allocated to the first video by each terminal receiving the first video, wherein the poor terminal of the first video is a terminal for which the bandwidth allocated to the first video is insufficient to meet the requirement of transmitting the highest bit rate in the first video;
[0133] The preset bit rate is determined according to the bandwidth allocated to the first video by the difference terminal of each first video.
[0134] In one embodiment, it further includes: a determination module;
[0135] The determination module is further used to determine the preset bit rate;
[0136] The process of determining the preset bit rate performed by the determination module includes:
[0137] Obtaining bandwidth allocated to the first video by each terminal receiving the first video, wherein the first video includes video streams of at least two bit rates, and the terminal selects to receive the video stream of one bit rate;
[0138] Finding out a poor terminal of the first video according to the bandwidth allocated to the first video by each terminal receiving the first video, wherein the poor terminal of the first video is a terminal for which the bandwidth allocated to the first video is insufficient to meet the requirement of transmitting the highest bit rate in the first video;
[0139] Obtaining importance information of difference terminals of each first video;
[0140] The preset bit rate is determined according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video.
[0141] In one implementation, the process of determining the preset bit rate according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video includes:
[0142] When the importance of the difference terminals of the first videos is different, the weight of the difference terminals of the first videos is obtained according to the importance information of the difference terminals of the first videos;
[0143] Determine, according to the weight of the difference terminal of each first video and the bandwidth allocated to the first video, the median of the bandwidth allocated to the first video by the difference terminal of each first video, and determine the allowed bandwidth of the first video according to the median of the bandwidth allocated to the first video by the difference terminal of each first video;
[0144] The preset bit rate is determined according to an allowed bandwidth of the first video.
[0145] In one implementation, the process of determining the preset bit rate according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video further includes:
[0146] When the importance of the difference terminals of the first videos is the same, determining the allowed bandwidth of the first video according to the median of the bandwidth allocated to the first video by the difference terminals of the first videos;
[0147] The preset bit rate is determined according to an allowed bandwidth of the first video.
[0148] In one embodiment, the sending module is also used to obtain the bandwidth allocated to the first video by each terminal and the preset bit rate before the process of sending the encoding instruction to a target device connected to the server, and determine the number of receiving terminals that need to receive the first video and whose bandwidth meets the transmission setting of the preset bit rate based on the bandwidth allocated to the first video by each terminal and the preset bit rate, and send the encoding instruction to a target device connected to the server when the number of receiving terminals is within a preset number range.
[0149] In this device, it is first determined whether the server has the ability to forward one more bitstream. If it has the ability, the target device is allowed to re-encode a video stream with a new bitrate and forward the stream to the corresponding terminal. This device takes into account both the performance of the server and the number of video streams with different bitrates, has a certain degree of mobility, and provides better scheduling for video conferencing.
[0150] Embodiment 3
[0151] An embodiment of the present invention further provides a storage medium on which computer instructions are stored. When the instructions are executed by a processor, the video conference transmission scheduling method of any of the above embodiments is implemented.
[0152] Those skilled in the art can understand that: all or part of the steps of implementing the above method embodiments can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above method embodiments; and the aforementioned storage medium includes: mobile storage devices, random access memories (RAM), read-only memories (ROM), magnetic disks or optical disks, etc., various media that can store program codes.
[0153] Alternatively, if the above-mentioned integrated unit of the present invention is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present invention can be essentially or partly reflected in the form of a software product that contributes to the relevant technology. The computer software product is stored in a storage medium, including a number of instructions for a computer device (which can be a personal computer, terminal, or network device, etc.) to execute all or part of the methods of each embodiment of the present invention. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, RAM, ROM, magnetic disks or optical disks.
[0154] Corresponding to the above-mentioned computer storage medium, in one embodiment, a computer device is also provided, which includes a memory, an encoder, and a computer program stored in the memory and executable on the encoder, wherein when the encoder executes the program, it implements any one of the video conference transmission scheduling methods in the above-mentioned embodiments.
[0155] The computer device first determines whether the server has the ability to forward one more bitstream, and if so, allows the target device to re-encode a video stream with a new bitrate and forward the stream to the corresponding terminal. The computer device takes into account both the performance of the server and the number of video streams with different bitrates, has a certain degree of mobility, and provides better scheduling for video conferencing.
[0156] The technical features of the above-described embodiments may be arbitrarily combined. To make the description concise, not all possible combinations of the technical features in the above-described embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0157] Obviously, the above embodiments of the present invention are merely examples for clearly illustrating the present invention, and are not intended to limit the embodiments of the present invention. For those skilled in the art, other different forms of changes or modifications can be made based on the above description. It is not necessary and impossible to list all the embodiments here. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in the protection scope of the claims of the present invention.
Claims
1. A video conference transmission scheduling method, characterized in that: include: Get the performance status information of the server; Determine whether the server is within a preset performance range according to the performance status information, wherein the performance range is a range less than a preset performance upper limit of the server; When the server is within the preset performance interval, sending an encoding instruction to a target device connected to the server, wherein the encoding instruction is used to instruct the target device to re-encode the received first video at a preset bit rate to obtain a re-encoded stream of the first video, and send the re-encoded stream of the first video back to the server; The server receives and forwards the re-encoded stream of the first video to a corresponding receiving terminal, wherein the corresponding receiving terminal is a terminal that needs to receive the first video and whose bandwidth meets a preset requirement for transmitting the re-encoded stream of the first video.
2. The video conference transmission scheduling method according to claim 1, characterized in that: Also includes: selecting the first video; The process of selecting the first video includes: Obtaining bandwidth allocated to each single-channel video by each terminal, wherein each single-channel video includes video streams of at least two bit rates, and the terminal selects to receive a video stream of one bit rate; Find out the poor terminal of each single-channel video according to the bandwidth allocated by each terminal to each single-channel video, wherein the poor terminal is a terminal whose bandwidth allocated to the single-channel video is insufficient to meet the requirement of transmitting the highest bit rate video stream in the single-channel video; According to the number of difference terminals of each single-channel video and the total number of difference terminals of all single-channel videos, one video is selected from each single-channel video as the first video.
3. The video conference transmission scheduling method according to claim 2, characterized in that: The process of selecting the first video further includes: When the server is being used by multiple meetings, obtaining importance information of each meeting; According to the number of difference terminals of each single-channel video, the total number of difference terminals of all single-channel videos and the importance information of each conference, one video is selected from each single-channel video as the first video.
4. The video conference transmission scheduling method according to claim 1, characterized in that: Also includes: A process of determining the preset bit rate; The process of determining the preset bit rate includes: Obtaining bandwidth allocated to the first video by each terminal receiving the first video, wherein the first video includes video streams of at least two bit rates, and the terminal selects to receive the video stream of one bit rate; Finding out a poor terminal of the first video according to the bandwidth allocated to the first video by each terminal receiving the first video, wherein the poor terminal of the first video is a terminal for which the bandwidth allocated to the first video is insufficient to meet the requirement of transmitting the highest bit rate in the first video; The preset bit rate is determined according to the bandwidth allocated to the first video by the difference terminal of each first video.
5. The video conference transmission scheduling method according to claim 1, characterized in that: Also includes: A process of determining the preset bit rate; The process of determining the preset bit rate includes: Obtaining bandwidth allocated to the first video by each terminal receiving the first video, wherein the first video includes video streams of at least two bit rates, and the terminal selects to receive the video stream of one bit rate; Finding out a poor terminal of the first video according to the bandwidth allocated to the first video by each terminal receiving the first video, wherein the poor terminal of the first video is a terminal for which the bandwidth allocated to the first video is insufficient to meet the requirement of transmitting the highest bit rate in the first video; Obtaining importance information of difference terminals of each first video; The preset bit rate is determined according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video.
6. The video conference transmission scheduling method according to claim 5, characterized in that: The process of determining the preset bit rate according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video includes: When the importance of the difference terminals of the first videos is different, the weight of the difference terminals of the first videos is obtained according to the importance information of the difference terminals of the first videos; Determine, according to the weight of the difference terminal of each first video and the bandwidth allocated to the first video, the median of the bandwidth allocated to the first video by the difference terminal of each first video, and determine the allowed bandwidth of the first video according to the median of the bandwidth allocated to the first video by the difference terminal of each first video; The preset bit rate is determined according to an allowed bandwidth of the first video.
7. The video conference transmission scheduling method according to claim 5 or 6, characterized in that: The process of determining the preset bit rate according to the importance information of the difference terminals of each first video and the bandwidth allocated to the first video by the difference terminals of each first video further includes: When the importance of the difference terminals of the first videos is the same, determining the allowed bandwidth of the first video according to the median of the bandwidth allocated to the first video by the difference terminals of the first videos; The preset bit rate is determined according to an allowed bandwidth of the first video.
8. The video conference transmission scheduling method according to claim 1, characterized in that: Before the process of sending the encoding instruction to a target device connected to the server, the process includes: Obtaining the bandwidth allocated to the first video by each terminal and the preset bit rate; Determine the number of receiving terminals that need to receive the first video and whose bandwidth satisfies the transmission setting of the preset bit rate according to the bandwidth allocated to the first video by each terminal and the preset bit rate; When the number of the receiving terminals is within a preset number range, a coding instruction is sent to a target device connected to the server.
9. A video conference transmission scheduling device, characterized in that: include: An acquisition module is used to obtain the performance status information of the server; A judgment module, used to judge whether the server is within a preset performance range according to the performance status information, wherein the performance range is a range less than a preset performance upper limit of the server; a sending module, configured to send an encoding instruction to a target device connected to the server when the server is within the preset performance interval, wherein the encoding instruction is used to instruct the target device to re-encode the received first video at a preset bit rate to obtain a re-encoded stream of the first video, and send the re-encoded stream of the first video back to the server; The multimedia management module is used to allow the server to receive and forward the re-encoded stream of the first video to the corresponding receiving terminal, wherein the corresponding receiving terminal is a terminal that needs to receive the first video and whose bandwidth meets the preset requirements for transmitting the re-encoded stream of the first video.
10. A computer device 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 program, the method according to any one of claims 1 to 8 is implemented.
11. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.