A video stream transmission method, device and computer readable storage medium

CN116996641BActive Publication Date: 2026-10-23GUANGZHOU SHIZHEN INFORMATION TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210442505.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-25
Publication Date
2026-10-23
Estimated Expiration
2042-04-25

AI Technical Summary

Technical Problem

[0003]本申请主要解决的技术问题是提供一种视频流的传输方法、装置以及计算机可读存储介质,能够解决视频会议场景下发送端的编码质量参差不齐导致接收端接收到的多个视频之间画质差距很大的问题

Benefits of technology

[0021] Unlike existing technologies, this application provides a method, apparatus, and computer-readable storage medium for transmitting video streams. The method includes: acquiring multiple video streams transmitted by multiple transmitting ends; allocating corresponding transmission bitrates to the multiple video streams based on the video encoding capability parameters of the multiple transmitting ends and the transmission bandwidth between the server and the receiving end; and transmitting the multiple video streams to the receiving end according to the allocated transmission bitrates, so as to display the video images corresponding to the multiple video streams at the receiving end. Through this method, bitrate allocation is performed on the video streams corresponding to the transmitting ends based on their video encoding capabilities. This allocation method is more flexible and allows users to observe images with similar quality or resolution at the receiving end, avoiding excessive differences in image clarity due to different encoding capabilities of the transmitting ends, thus improving the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116996641B_ABST
    Figure CN116996641B_ABST
Patent Text Reader

Abstract

The application relates to the communication technical field, and discloses a video stream transmission method and device and a computer readable storage medium. The method comprises the following steps: acquiring multiple video streams corresponding to multiple sending ends; according to the video coding capacity parameters of the multiple sending ends and the transmission bandwidth between a server and a receiving end, allocating corresponding transmission code rates to the multiple video streams; and according to the allocated transmission code rates, transmitting the multiple video streams to the receiving end to display video pictures corresponding to the multiple video streams at the receiving end. Through the above method, the video streams corresponding to the sending ends are allocated code rates according to the video coding capacity of the sending ends, the allocation mode is more flexible, the user can observe pictures with similar quality or similar resolution at the receiving end, the difference in the definition of the pictures caused by the different coding capacities of the sending ends is avoided, and the user experience is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a method, apparatus, and computer-readable storage medium for transmitting video streams. Background Technology

[0002] In video conferencing scenarios, when the receiving end displays a multi-grid view, such as a 4-grid, 9-grid, 16-grid, or 25-grid view, the server allocates a bitrate evenly to each grid due to limited downlink bandwidth between the server and the receiving end. For example, if the downlink bandwidth is 4Mbps and the receiving end displays a 16-grid view, then the bitrate for each window is 4000 / 16 = 250kbps. The sending end encodes the image at a bitrate of 250kbps and transmits it to the receiving end for display. However, because there are many types of sending end devices and their encoders vary, the following situation occurs: some sending ends encode 250kbps 180p video with clear image quality, while others encode 250kbps 180p video with extremely poor image quality. Thus, the receiving end sees the same 250kbps image, but the clarity varies significantly. Summary of the Invention

[0003] The main technical problem addressed by this application is to provide a video stream transmission method, apparatus, and computer-readable storage medium that can solve the problem of inconsistent encoding quality at the sending end in video conferencing scenarios, resulting in significant differences in image quality between multiple videos received by the receiving end.

[0004] To solve the above-mentioned technical problems, one technical solution adopted in this application is: to provide a method for transmitting a video stream, the method comprising:

[0005] The system acquires multiple video streams sent by multiple sending ends; allocates corresponding transmission bitrates to the multiple video streams based on the video encoding capability parameters of the multiple sending ends and the transmission bandwidth between the server and the receiving end; and transmits the multiple video streams to the receiving end according to the allocated transmission bitrates so that the video images corresponding to the multiple video streams can be displayed on the receiving end.

[0006] Optionally, in the above method, according to the video encoding capability parameters of multiple sending ends and the transmission bandwidth between the server and the receiving end, a corresponding transmission bitrate is allocated to multiple video streams, including:

[0007] Obtain the encoding levels of multiple transmitters; the encoding level of the transmitter is determined by the video encoding capability parameters corresponding to the transmitter; allocate corresponding transmission bitrates to multiple video streams based on the encoding levels of the multiple transmitters and the transmission bandwidth between the server and the receiver.

[0008] Optionally, in the above method, obtaining the encoding levels of multiple senders includes:

[0009] Obtain the encoding level corresponding to the transmission of multiple sending ends; if the encoding level transmitted by the target sending end is not obtained, determine the encoding level corresponding to the target sending end using a preset method.

[0010] Optionally, in the above method, the coding level corresponding to the target sender is determined using a preset method, including:

[0011] Determine the average coding level of the remaining senders (excluding the target sender) among multiple senders; determine the coding level of the target sender based on the average coding level.

[0012] Optionally, in the above method, the transmission bitrate is allocated to multiple video streams based on the encoding levels corresponding to multiple sending ends and the transmission bandwidth between the server and the receiving end, including:

[0013] Based on the encoding levels corresponding to multiple transmitters, determine the allocation coefficients for multiple video streams; based on the allocation coefficients for multiple video streams, determine the allocation weights for multiple video streams; based on the allocation weights for multiple video streams and the transmission bandwidth between the server and the receiver, allocate the corresponding transmission bitrates to multiple video streams.

[0014] Optionally, in the above method, determining the allocation weights for the multiple video streams based on their allocation coefficients includes:

[0015] Based on the allocation coefficients corresponding to multiple video streams, determine the sum of coefficients for all video streams except the receiver; based on the ratio of the allocation coefficient for each video stream except the receiver to the sum of coefficients, determine the allocation weight for the corresponding video stream.

[0016] Optionally, in the above method, the encoding level of the transmitting end includes a first level, a second level, and a third level; wherein the video encoding capability corresponding to the first level, the second level, and the third level decreases in sequence; and the allocation coefficients corresponding to the first level, the second level, and the third level are 1:(1.1~1.3):(1.4~1.6).

[0017] Optionally, in the above method, the encoding level of the transmitting end is determined by the video encoding capability parameters of the encoder corresponding to the transmitting end; if the encoder corresponding to the transmitting end is a software encoder or a high-level hardware encoder, the encoding level of the transmitting end is determined to be the first level; if the encoder corresponding to the transmitting end is a mid-level hardware encoder, the encoding level of the transmitting end is determined to be the second level; if the encoder corresponding to the transmitting end is a low-level hardware encoder, the encoding level of the transmitting end is determined to be the third level; wherein, the video encoding capability corresponding to the high-level hardware encoder, mid-level hardware encoder, and low-level hardware encoder decreases in that order.

[0018] To solve the above-mentioned technical problems, another technical solution adopted in this application is to provide a video stream transmission device, which includes a processor and a memory.

[0019] Specifically, the memory is used to store program instructions, and the processor is used to execute the program instructions to implement the above-mentioned video stream transmission method.

[0020] To solve the above-mentioned technical problems, another technical solution adopted in this application is to provide a computer-readable storage medium that stores program instructions that can be executed to implement the above-mentioned video stream transmission method.

[0021] Unlike existing technologies, this application provides a method, apparatus, and computer-readable storage medium for transmitting video streams. The method includes: acquiring multiple video streams transmitted by multiple transmitting ends; allocating corresponding transmission bitrates to the multiple video streams based on the video encoding capability parameters of the multiple transmitting ends and the transmission bandwidth between the server and the receiving end; and transmitting the multiple video streams to the receiving end according to the allocated transmission bitrates, so as to display the video images corresponding to the multiple video streams at the receiving end. Through this method, bitrate allocation is performed on the video streams corresponding to the transmitting ends based on their video encoding capabilities. This allocation method is more flexible and allows users to observe images with similar quality or resolution at the receiving end, avoiding excessive differences in image clarity due to different encoding capabilities of the transmitting ends, thus improving the user experience. Attached Figure Description

[0022] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort. Wherein:

[0023] Figure 1 This is a flowchart illustrating an embodiment of the video stream transmission method provided in this application;

[0024] Figure 2 This is one embodiment of the present application Figure 1 A flowchart of the S12 process;

[0025] Figure 3 This is one embodiment of the present application Figure 2 A flowchart of S121 in China;

[0026] Figure 4 This is one embodiment of the present application Figure 3 A flowchart of S1212 in China;

[0027] Figure 5 This is one embodiment of the present application Figure 2 A flowchart of S122 in China;

[0028] Figure 6 This is one embodiment of the present application Figure 5 A flowchart of S1222;

[0029] Figure 7 This is a schematic diagram of the structure of an embodiment of the video stream transmission device provided in this application;

[0030] Figure 8 This is a schematic diagram of an embodiment of the computer-readable storage medium provided in this application. Detailed Implementation

[0031] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. It is understood that the specific embodiments described herein are only for explaining this application and not for limiting it. Furthermore, it should be noted that, for ease of description, only the parts related to this application are shown in the accompanying drawings, not all structures. All other embodiments obtained by those skilled in the art based on the embodiments of this application without creative effort are within the scope of protection of this application.

[0032] In this document, the term "embodiment" means that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment mutually exclusive with other embodiments. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.

[0033] The steps in the embodiments of this application are not necessarily processed in the order described. The steps can be rearranged, deleted, or added as needed. The step descriptions in the embodiments of this application are only optional combinations of sequences and do not represent all possible combinations of steps in the embodiments of this application. The order of steps in the embodiments should not be considered as a limitation of this application.

[0034] The term "and / or" in the embodiments of this application refers to any and all possible combinations including one or more of the associated listed items. It should also be noted that, when used in this specification, "including / comprising" specifies the presence of the stated features, integers, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, and / or components and / or groups thereof.

[0035] The terms "first," "second," etc., used in this application are used to distinguish different objects, not to describe a specific order. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or apparatuses.

[0036] Video conferencing currently widely uses the H.264 encoding format. There are many types of H.264 encoding devices in the industry, including software encoders such as OpenH.264 and x264, as well as encoders developed and optimized by various manufacturers. Hardware encoders from different SOC manufacturers also have different encoding effects.

[0037] Based on this, this application proposes a video stream transmission method. This method allocates the bitrate of the corresponding video stream at the sending end according to the video encoding capability of the sending end. The allocation method is more flexible and enables users to observe images with similar picture quality or resolution at the receiving end. This avoids excessive differences in image clarity due to different encoding capabilities of the sending end, thereby improving the user experience.

[0038] See Figure 1 , Figure 1 This is a flowchart illustrating an embodiment of the video stream transmission method provided in this application. The method includes:

[0039] S11: Obtain multiple video streams sent by multiple sending ends.

[0040] Optionally, the sending end can be any terminal that accesses the video conference, such as a smartphone, tablet, or PC, without any specific limitations.

[0041] Optionally, the server obtains the number of video streams sent by the multiple sending ends that are accessing the video conference.

[0042] S12: Based on the video encoding capability parameters of the multiple sending ends and the transmission bandwidth between the server and the receiving end, allocate corresponding transmission bitrates to the multiple video streams.

[0043] Optionally, the type of device and the encoder used at the sending end may differ, as may the video encoding capabilities.

[0044] Optionally, the video encoding capability of the sending end can be tested by specialized video encoding capability evaluation software. For example, the software calculates the video encoding capability parameters of the current device based on the device type and the encoder used at the sending end. These video encoding capability parameters can be scores, etc., used to characterize the video encoding capability of the sending end. Then, the encoding level is determined based on the video encoding capability parameters, and the encoding level is sent to the server for recording.

[0045] Optionally, the correspondence between encoder type or model and encoding level can be preset, and the encoding level can be determined directly based on the type or model of the transmitter encoder without the need for special software.

[0046] Understandably, the transmission bandwidth between the server and the receiver is limited. Therefore, it is necessary to allocate transmission bitrates for the video streams sent by multiple sending ends to meet the transmission requirements of the video streams.

[0047] Optionally, after obtaining the transmission bandwidth between the server and the receiving end, the transmission bitrate to be allocated to each video stream is determined and allocated according to the video encoding capability parameters of multiple sending ends. Among them, the video streams corresponding to sending ends with strong video encoding capabilities are allocated relatively less transmission bitrate, while the video streams corresponding to sending ends with weak video encoding capabilities are allocated relatively more transmission bitrate.

[0048] S13: According to the allocated transmission bitrate, the plurality of video streams are transmitted to the receiving end so as to display the video images corresponding to the plurality of video streams at the receiving end.

[0049] Optionally, the receiving end can be any terminal with display function that is connected to the video conference, such as a smartphone, tablet, or PC, etc., without any specific limitation.

[0050] Optionally, multiple video streams are transmitted to the receiving end according to the allocated transmission bitrate, so that the receiving end can display the video images corresponding to the multiple video streams.

[0051] Optionally, the receiving end can display multiple video frames on the same interface simultaneously. Since the transmission bitrate of multiple video streams is allocated according to the video encoding capability parameters of the sending end, the image quality of multiple video frames displayed on the same interface is more similar.

[0052] Optionally, the receiving end can display multiple video frames sequentially on different interfaces. Similarly, since the transmission bitrate of multiple video streams is allocated according to the video encoding capability parameters of the sending end, the video frames displayed on different interfaces are more similar in quality when switching between different interfaces to display multiple video frames sequentially.

[0053] Compared to existing technologies, this embodiment provides a video stream transmission method. The method includes: acquiring multiple video streams sent by multiple sending ends; allocating corresponding transmission bitrates to the multiple video streams based on the video encoding capability parameters of the multiple sending ends and the transmission bandwidth between the server and the receiving end; and transmitting the multiple video streams to the receiving end according to the allocated transmission bitrates, so as to display the video images corresponding to the multiple video streams on the receiving end. Through this method, bitrate allocation is performed on the video streams corresponding to the sending ends based on their video encoding capabilities. This allocation method is more flexible, enabling users to observe images with similar quality or resolution on the receiving end, avoiding excessive differences in image clarity due to different encoding capabilities of the sending ends, and improving the user experience.

[0054] See Figure 2 , Figure 2 yes Figure 1 The flowchart of S12 is shown in the figure. S12 may also include:

[0055] S121: Obtain the encoding level of the plurality of transmitters; wherein the encoding level of the transmitter is determined by the video encoding capability parameter corresponding to the transmitter.

[0056] Optionally, the video encoding capability of the sending end can be represented by an encoding level. The sending end can determine the corresponding encoding level by software based on the device's video encoding capability parameters. For example, the video encoding capability parameters output by the software are scores. Based on the mapping relationship between preset score ranges and encoding levels, the encoding level of the sending end is determined according to the score, and the encoding level is sent to the server.

[0057] Optionally, the encoding level of the transmitter can be determined by the video encoding capability parameters of the encoder corresponding to the transmitter. The encoding level of the transmitter can include the first level, the second level, the third level, ..., the Nth level, wherein the video encoding capability corresponding to the first level, the second level, the third level, ..., the Nth level decreases sequentially.

[0058] Understandably, converting the video encoding capability of the sending end into encoding levels can more intuitively represent the video encoding capability of the sending end. The encoding levels are pre-sent to the server for storage, and the server can quickly allocate the corresponding transmission bitrate to multiple video streams based on the encoding levels.

[0059] Optionally, in a specific embodiment, if the encoder corresponding to the transmitting end is a software encoder or an advanced hardware encoder, the encoding level of the transmitting end is determined to be a first level; if the encoder corresponding to the transmitting end is an intermediate hardware encoder, the encoding level of the transmitting end is determined to be a second level; if the encoder corresponding to the transmitting end is a low-level hardware encoder, the encoding level of the transmitting end is determined to be a third level; wherein, the video encoding capabilities corresponding to the advanced hardware encoder, intermediate hardware encoder, and low-level hardware encoder decrease sequentially.

[0060] Understandably, the above encoding level classification method covers commonly used software encoders, advanced hardware encoders, intermediate hardware encoders, and low-level hardware encoders, and therefore can be applied to most video conferencing scenarios.

[0061] S122: Assign corresponding transmission bitrates to the multiple video streams based on the encoding levels corresponding to the multiple sending ends and the transmission bandwidth between the server and the receiving end.

[0062] Optionally, after obtaining the transmission bandwidth between the server and the receiving end, the transmission bitrate allocated to each video stream is determined and allocated according to the encoding levels of multiple sending ends. Among them, the sending end with a higher encoding level has stronger video encoding capabilities and the corresponding video stream is allocated a relatively lower transmission bitrate, while the sending end with a lower encoding level has weaker video encoding capabilities and the corresponding video stream is allocated a relatively higher transmission bitrate.

[0063] See Figure 3 , Figure 3 yes Figure 2 The flowchart of S121 is shown in the figure. S121 may also include:

[0064] S1211: Obtain the encoding level corresponding to the transmission of the plurality of transmitting ends.

[0065] S1212: When the encoding level sent by the target sender is not obtained, the encoding level corresponding to the target sender is determined by a preset method.

[0066] Optionally, if the sending end of the video conferencing connection does not perform video encoding capability parameter evaluation, or if data is lost during the process of the sending end sending the encoding level to the server, the server will not be able to obtain the encoding level sent by the target sending end. In this case, the encoding level corresponding to the target sending end can be determined by a preset method. For example, a default encoding level can be set and used as the encoding level of the target sending end. Alternatively, for this video conferencing scenario, the corresponding encoding level of the target sending end can be determined based on the average level of the encoding levels of all other sending ends.

[0067] See Figure 4 , Figure 4 yes Figure 3 The flowchart of S1212 shows that S1212 may also include:

[0068] S12121: Determine the average coding level of the remaining transmitters among the plurality of transmitters, excluding the target transmitter.

[0069] S12122: Determine the coding level of the target transmitter based on the average coding level.

[0070] Optionally, the average encoding level of the remaining senders (excluding the target sender) is determined, and this average encoding level is set as the encoding level of the target sender. This ensures that the video stream corresponding to the target sender is allocated a transmission bitrate close to the average level, while also considering the other senders, thus guaranteeing that the video quality of the target sender is closer to that of the other senders. For example, in a video conference, if the server does not obtain the encoding level sent by sender A, but the average encoding level of the remaining senders (excluding sender A) is level two, then the encoding level of sender A is determined to be level two.

[0071] See Figure 5 , Figure 5 yes Figure 2 The flowchart of S122 shows that S122 may also include:

[0072] S1221: Determine the allocation coefficients corresponding to the multiple video streams based on the encoding levels corresponding to the multiple sending ends.

[0073] Optionally, the coding level and the allocation coefficient are in one-to-one correspondence. The allocation coefficients for the first level, the second level, and the third level are 1:(1.1~1.3):(1.4~1.6), respectively. The value of the allocation coefficient can be determined according to the actual situation and is not specifically limited here.

[0074] Optionally, the allocation coefficients corresponding to the video stream can be determined based on the encoding level of the sending end.

[0075] S1222: Determine the allocation weights of the multiple video streams based on the allocation coefficients corresponding to the multiple video streams.

[0076] S1223: Assign corresponding transmission bitrates to the multiple video streams according to the allocation weights corresponding to the multiple video streams and the transmission bandwidth between the server and the receiving end.

[0077] Optionally, the transmission bitrate allocated to each video stream can be obtained by multiplying the allocation weight of each video stream and the transmission bandwidth between the server and the receiver, based on the allocation weight of each video stream and the transmission bandwidth between the server and the receiver.

[0078] See Figure 6 , Figure 6 yes Figure 5 The flowchart of S1222 is shown in the figure. S1222 may also include:

[0079] S12221: Determine the sum of coefficients for all video streams except the receiving end based on the allocation coefficients corresponding to the multiple video streams.

[0080] Optionally, the allocation coefficients corresponding to all video streams other than the receiving end are added together to obtain the sum of coefficients for all video streams other than the receiving end.

[0081] S12222: Determine the allocation weight of the corresponding video stream based on the ratio of the allocation coefficient corresponding to each video stream other than the receiving end to the sum of the coefficients.

[0082] Optionally, the allocation weight of a video stream can be determined based on the ratio of the allocation coefficient to the sum of the coefficients for each video stream other than the receiving end.

[0083] Optionally, in one specific embodiment, the encoding level is divided into three levels, with allocation coefficients of 1:1.2:1.5 corresponding to the first, second, and third levels, respectively. The transmission bandwidth between the server and the receiver is 4M, and the receiver uses a 16-grid view, where one grid displays itself, five grids display the video stream sent by the first-level sender, five grids display the video stream sent by the second-level sender, and five grids display the video stream sent by the third-level sender.

[0084] Therefore, the sum of the coefficients can be calculated as: 1×5 + 1.2×5 + 1.5×5 = 18.5. Thus, the weight assigned to the video stream sent by the first-level transmitter is: The weighting of the video stream sent by the second-level sender is as follows: The assigned weights for the video streams sent by the third-level senders are:

[0085] Further calculations reveal that the transmission bitrate allocated to the video stream transmitted by the first-level transmitter is: The transmission bitrate allocated to the video stream sent by the second-level transmitter is: The transmission bitrate allocated to the video stream sent by the third-level sender is:

[0086] See Figure 7 , Figure 7 This is a schematic diagram of an embodiment of the video stream transmission device provided in this application. The video stream transmission device 200 includes a processor 201 and a memory 202.

[0087] Specifically, memory 202 is used to store program instructions, and processor 201 is used to execute the program instructions to implement the methods provided by any one or any non-conflicting combination of the above embodiments.

[0088] Optionally, processor 201 is a central processing unit (CPU), one of the main devices in an electronic computer and a core component of the computer. Its main functions are interpreting computer instructions and processing data in computer software. The CPU is the core component in a computer responsible for reading, decoding, and executing instructions. The central processing unit mainly consists of two parts: the control unit and the arithmetic logic unit (ALU), which also includes high-speed cache memory and the data and control buses that connect them. The main functions of the central processing unit are processing instructions, executing operations, controlling timing, and processing data. In computer architecture, the CPU is the core hardware unit that controls and allocates all hardware resources (such as memory and input / output units) of the computer and performs general-purpose calculations. The CPU is the core of the computer's arithmetic and control. All software layer operations in a computer system are ultimately mapped to CPU operations through the instruction set.

[0089] Optionally, the memory 202 is a read-only memory (ROM) or random access memory (RAM), which is a memory device in a computer system, mainly used to store programs and data. All information in the computer, including raw input data, computer programs, intermediate running results, and final running results, is stored in the memory. It stores and retrieves information according to the location specified by the controller.

[0090] In an optional embodiment, the video stream transmission device 200 can be a backend server of video conferencing software, used to acquire the video stream sent by the sending end, allocate a transmission bitrate to the video stream corresponding to the sending end according to the video encoding capability parameters of the sending end, and transmit the video stream to the receiving end according to the allocated transmission bitrate, so that the picture quality of multiple video frames displayed by the receiving end is more similar, thereby improving the user experience.

[0091] See Figure 8 , Figure 8 This is a schematic diagram of an embodiment of a computer-readable storage medium 300 provided in this application. The computer-readable storage medium 300 includes program instructions 301, which can be executed to implement the methods provided in any one or any non-conflicting combination of the above embodiments. The capacity of the computer-readable storage medium 300 is sufficient to store the program instructions 301.

[0092] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-readable storage media 300 (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0093] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by a computer-readable storage medium 300. These computer-readable storage media 300 can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that program instructions 301, executable by the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0094] These computer-readable storage media 300 may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to function in a particular manner, such that program instructions 301 stored in the computer-readable storage media 300 produce an article of manufacture including instruction means implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0095] These computer-readable storage media 300 can also be loaded onto a computer or other programmable data processing apparatus, causing a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, thereby providing program instructions 301 that execute on the computer or other programmable apparatus for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0096] The above description is merely an embodiment of this application and does not limit the patent scope of this application. Any equivalent structural or procedural changes made based on the description and drawings of this application, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of this application.

Claims

1. A method for transmitting a video stream, characterized in that, The method includes: Retrieve multiple video streams sent by multiple sending ends; Based on the video encoding capability parameters of the multiple sending ends and the transmission bandwidth between the server and the receiving end, a corresponding transmission bitrate is allocated to the multiple video streams; According to the allocated transmission bitrate, the multiple video streams are transmitted to the receiving end so as to display the video images corresponding to the multiple video streams at the receiving end; The step of allocating corresponding transmission bitrates to the multiple video streams based on the video encoding capability parameters of the multiple sending ends and the transmission bandwidth between the server and the receiving end includes: The transmission bitrate allocated to each video stream is determined and distributed based on the encoding levels of multiple transmitters. Transmitters with higher encoding levels have stronger video encoding capabilities, and their corresponding video streams are allocated relatively lower transmission bitrates. Transmitters with lower encoding levels have weaker video encoding capabilities, and their corresponding video streams are allocated relatively higher transmission bitrates.

2. The method according to claim 1, characterized in that, The step of allocating corresponding transmission bitrates to the multiple video streams based on the video encoding capability parameters of the multiple sending ends and the transmission bandwidth between the server and the receiving end includes: Obtain the encoding level of the plurality of transmitting ends; wherein, the encoding level of the transmitting end is determined by the video encoding capability parameter corresponding to the transmitting end; Based on the encoding levels corresponding to the multiple sending ends and the transmission bandwidth between the server and the receiving end, a corresponding transmission bitrate is allocated to the multiple video streams.

3. The method according to claim 2, characterized in that, Obtaining the encoding levels of the plurality of sending ends includes: Obtain the encoding level corresponding to the transmission from the plurality of transmitting ends; When the encoding level sent by the target sender is not obtained, the encoding level corresponding to the target sender is determined by a preset method.

4. The method according to claim 3, characterized in that, The step of determining the encoding level corresponding to the target transmitter using a preset method includes: Determine the average coding level of the remaining transmitters among the plurality of transmitters, excluding the target transmitter; The coding level of the target transmitter is determined based on the average coding level.

5. The method according to claim 2, characterized in that, The step of allocating corresponding transmission bitrates to the multiple video streams based on the encoding levels corresponding to the multiple sending ends and the transmission bandwidth between the server and the receiving end includes: The allocation coefficients for the multiple video streams are determined based on the encoding levels corresponding to the multiple sending ends. The allocation weights of the multiple video streams are determined based on the allocation coefficients corresponding to the multiple video streams. Based on the allocation weights corresponding to the multiple video streams and the transmission bandwidth between the server and the receiving end, a corresponding transmission bitrate is allocated to the multiple video streams.

6. The method according to claim 5, characterized in that, The step of determining the allocation weights corresponding to the multiple video streams based on the allocation coefficients corresponding to the multiple video streams includes: Based on the allocation coefficients corresponding to the multiple video streams, determine the sum of coefficients for all video streams except the receiving end; The allocation weight of the corresponding video stream is determined based on the ratio of the allocation coefficient corresponding to each video stream other than the receiving end to the sum of the coefficients.

7. The method according to claim 5, characterized in that, The encoding levels of the transmitting end include a first level, a second level, and a third level; wherein the video encoding capabilities corresponding to the first level, the second level, and the third level decrease sequentially. The allocation coefficients corresponding to the first level, the second level, and the third level are respectively 1:(1.1~1.3):(1.4~1.6).

8. The method according to claim 7, characterized in that, The encoding level of the transmitting end is determined by the video encoding capability parameters of the encoder corresponding to the transmitting end; If the encoder corresponding to the transmitting end is a software encoder or an advanced hardware encoder, the encoding level of the transmitting end is determined to be the first level; If the encoder corresponding to the transmitting end is a mid-level hardware encoder, the encoding level of the transmitting end is determined to be the second level; If the encoder corresponding to the transmitting end is a low-level hardware encoder, the encoding level of the transmitting end is determined to be the third level; The video encoding capabilities of the advanced hardware encoder, the intermediate hardware encoder, and the low-level hardware encoder decrease sequentially.

9. A video stream transmission device, characterized in that, The video stream transmission device includes a processor and a memory, the memory being used to store program instructions, and the processor being used to execute the program instructions to implement the method as described in any one of claims 1 to 8.

10. A computer-readable storage medium, characterized in that, The system stores program instructions that can be executed to implement the method as claimed in any one of claims 1 to 8.

Citation Information

Patent Citations

  • Bandwidth control method and system for video conference system

    CN103024342A

  • Video coding method, transmission method, system, device and medium

    CN114125452A