Multimedia stream pushing method and device, electronic equipment and readable medium

By detecting and adjusting the network status parameters of the client set and dynamically adjusting the multimedia encoding parameters, the data congestion problem when multiple terminals share the network exit is solved, and the rendering effect and transmission efficiency of the multimedia stream are improved.

CN116614656BActive Publication Date: 2026-05-22TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
TENCENT TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2022-02-08
Publication Date
2026-05-22

AI Technical Summary

Technical Problem

When multiple terminals share the same network exit, the terminals with better network conditions have higher rendering parameters, which leads to data congestion at the network exit, affecting transmission efficiency and the operation of the rendering program.

Method used

The system detects the network status of the client set. When the network status parameters change beyond a threshold, it adjusts the multimedia encoding parameters of each client and renders and pushes the multimedia stream based on the adjusted parameters.

Benefits of technology

By dynamically adjusting multimedia encoding parameters, the network status of a single client can be avoided from affecting all clients, thereby improving the rendering effect and transmission efficiency of multimedia streams.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116614656B_ABST
    Figure CN116614656B_ABST
Patent Text Reader

Abstract

The application provides a multimedia stream pushing method and device, electronic equipment and readable medium. The method comprises the following steps: detecting network states of a client set, wherein the client set comprises at least two clients sharing one public network port; when it is detected that a network state parameter of the client changes by more than a state parameter threshold, adjusting multimedia encoding parameters of each client in the client set; sending the adjusted multimedia encoding parameters to each client, so that each client performs client configuration according to the received multimedia encoding parameters to receive a multimedia stream; and pushing the multimedia stream to each client, wherein the multimedia stream is obtained by rendering according to the adjusted multimedia encoding parameters. The method can avoid the influence of the network state of a single client on the effect of the multimedia stream of all clients in the client set sharing the same port, thereby improving the rendering effect of the multimedia stream.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a multimedia streaming method, apparatus, electronic device, and readable medium. Background Technology

[0002] With the acceleration of network communication speed, various cloud technologies that rely on high-speed communication have emerged. Among them, cloud rendering technology is an application form based on cloud computing.

[0003] In related technologies, the rendering program runs on a cloud server. The cloud sets the rendering parameters based on the network conditions of the terminal and transmits the rendered audio and video images to the terminal for playback.

[0004] However, in the above scheme, when the network conditions of multiple terminals under a network exit are relatively good, the rendering parameters of multiple terminals are high, causing network exit data congestion, affecting transmission efficiency and the operation of the rendering program. Summary of the Invention

[0005] To address the aforementioned technical issues, this application provides a multimedia stream push method, apparatus, electronic device, and readable medium, which can prevent the network status of a single client from affecting the multimedia stream performance of all clients in a client set sharing the same port, thereby improving the rendering effect of the multimedia stream.

[0006] Other features and advantages of this application will become apparent from the following detailed description, or may be learned in part from practice of this application.

[0007] According to one aspect of the embodiments of this application, a multimedia stream push method is provided, including:

[0008] Detect the network status of a set of clients, the set of clients including at least two clients sharing a public network port;

[0009] When a change in the network status parameters of a client is detected to exceed the status parameter threshold, the multimedia encoding parameters of each client in the client set are adjusted.

[0010] The adjusted multimedia encoding parameters are sent to each client so that each client can configure itself to receive the multimedia stream based on the received multimedia encoding parameters.

[0011] Multimedia streams are pushed to each of the clients, and the multimedia streams are rendered according to the adjusted multimedia encoding parameters.

[0012] According to one aspect of the embodiments of this application, a multimedia streaming device is provided, comprising:

[0013] A status detection module is used to detect the network status of a client set, which includes at least two clients sharing a public network port;

[0014] The parameter adjustment module is used to adjust the multimedia encoding parameters of each client in the client set when the network status parameter of the client is detected to change beyond the status parameter threshold.

[0015] The parameter sending module is used to send the adjusted multimedia encoding parameters to each client, so that each client can configure itself according to the received multimedia encoding parameters to receive the multimedia stream.

[0016] The streaming module is used to push multimedia streams to each client, the multimedia streams being rendered based on the adjusted multimedia encoding parameters.

[0017] In some embodiments of this application, based on the above technical solutions, the state detection module includes:

[0018] The network detection unit is used to perform network detection on each client in the client set and obtain the status data of each client;

[0019] A network load acquisition unit is used to acquire the network load of the public network port shared by the client set;

[0020] The status parameter determination unit is used to combine the client's status data and the network load as the client's network status parameters.

[0021] In some embodiments of this application, based on the above technical solutions, the multimedia encoding parameters include basic parameters and a floating ratio, and the parameter adjustment module includes:

[0022] A load threshold determination unit is used to determine the port load threshold corresponding to the public network port;

[0023] The first parameter adjustment unit is used to reduce the basic parameter according to the floating ratio of the client for each client if the network load of the public network port is greater than the port load threshold, so as to obtain the adjusted basic parameter.

[0024] In some embodiments of this application, based on the above technical solutions, the parameter adjustment module includes:

[0025] The second parameter adjustment unit is used to reduce the basic parameter according to the floating ratio for each client in the client set if the growth rate of the bandwidth occupied by any client in the client set is greater than the bandwidth growth rate threshold within a preset time period, so as to obtain the adjusted basic parameter.

[0026] In some embodiments of this application, based on the above technical solutions, the parameter adjustment module includes:

[0027] The third parameter adjustment unit is used to reduce the basic parameter according to the floating ratio for each client in the client set if the rate of change of the network load of the public network port within a preset time period is greater than the rate of change threshold, so as to obtain the adjusted basic parameter.

[0028] In some embodiments of this application, based on the above technical solutions, the parameter adjustment module includes:

[0029] The fourth parameter adjustment unit is used to reduce the basic parameters of a specific client according to the floating ratio of the specific client if the status data of a specific client in the client set drops below the status data threshold, so as to obtain the adjusted basic parameters of the specific client.

[0030] In some embodiments of this application, based on the above technical solutions, the parameter adjustment module includes:

[0031] The fifth parameter adjustment unit is used to increase the basic parameter according to the floating ratio for each client in the client set if the network load of the public network port is lower than the port load threshold and the peak change of the bandwidth occupied by each client within a preset time period is lower than the peak change threshold, so as to obtain the adjusted basic parameter.

[0032] In some embodiments of this application, based on the above technical solutions, the fifth parameter adjustment unit includes:

[0033] The client selection subunit is used to select the client to be optimized from the client set based on the status data of each client;

[0034] The ratio determination subunit is used to determine the increase ratio of the client to be optimized based on the difference between the network load of the public network port and the port load threshold and the bandwidth occupied by the client to be optimized, wherein the increase ratio is less than or equal to the floating ratio.

[0035] The parameter increase subunit is used to increase the basic parameters of the client to be optimized according to the increase ratio.

[0036] In some embodiments of this application, based on the above technical solutions, the streaming push module includes:

[0037] The parameter configuration unit is used to configure the encoder for each client according to the adjusted multimedia encoding parameters;

[0038] A rendering unit is used to render multimedia data through the encoder to obtain a multimedia stream;

[0039] A streaming unit is used to send the multimedia stream to the client.

[0040] In some embodiments of this application, based on the above technical solutions, the multimedia stream pushing device further includes:

[0041] The initial data detection module is used to detect the initial state data of each client in the client set;

[0042] An initial parameter determination module is used to determine multimedia encoding parameters based on the initial state data and the application type of the application running on the client if the initial state data is detected.

[0043] The initial parameter determination module is also used to determine the multimedia encoding parameters according to the preset configuration corresponding to the application type of the application running by the client if the detection of initial state data fails.

[0044] A streaming rendering module is used to configure the encoder according to the multimedia encoding parameters, and the encoder is used to render the multimedia stream;

[0045] The parameter sending module is also used to send the multimedia encoding parameters to each client so that the client can configure itself according to the basic parameters.

[0046] According to one aspect of the embodiments of this application, an electronic device is provided, the electronic device comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the multimedia streaming push method as described above by executing the executable instructions.

[0047] According to one aspect of the embodiments of this application, a computer-readable storage medium is provided, on which a computer program is stored, which, when executed by a processor, implements the multimedia stream push method as described above.

[0048] According to one aspect of the embodiments of this application, a computer program product or computer program is provided, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the multimedia streaming method provided in the various optional implementations described above.

[0049] In the embodiments of this application, when pushing a multimedia stream, the network status of the client set is detected. If the network status parameters of a client change beyond a threshold, the multimedia encoding parameters of each client in the client set are adjusted. The encoder and decoder are then configured based on the adjusted multimedia encoding parameters, and the multimedia stream is pushed to the client according to these parameters. This method avoids the network status of a single client from affecting the multimedia stream quality of all clients in a client set sharing the same port, thereby improving the rendering effect of the multimedia stream.

[0050] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and do not limit this application. Attached Figure Description

[0051] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application. It is obvious that the drawings described below are merely some embodiments of this application, and those skilled in the art can obtain other drawings based on these drawings without any inventive effort. In the drawings:

[0052] Figure 1 This is a schematic diagram illustrating the application scenario in the embodiments of this application;

[0053] Figure 2 This is an example flowchart of the cloud rendering process in the embodiments of this application;

[0054] Figure 3 A flowchart of a multimedia streaming push method according to an embodiment of this application is shown;

[0055] Figure 4 A schematic block diagram of the multimedia streaming device in an embodiment of this application is shown.

[0056] Figure 5 A schematic diagram of the structure of a computer system suitable for implementing the electronic device of the present application is shown. Detailed Implementation

[0057] Exemplary embodiments will now be described more fully with reference to the accompanying drawings. However, these exemplary embodiments can be implemented in many forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided to make this application more comprehensive and complete, and to fully convey the concept of the exemplary embodiments to those skilled in the art.

[0058] Furthermore, the described features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. Numerous specific details are provided in the following description to give a thorough understanding of embodiments of this application. However, those skilled in the art will recognize that the technical solutions of this application can be practiced without one or more of the specific details, or other methods, components, apparatuses, steps, etc., can be employed. In other instances, well-known methods, apparatuses, implementations, or operations are not shown or described in detail to avoid obscuring various aspects of this application.

[0059] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities can be implemented in software, in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.

[0060] The flowcharts shown in the accompanying drawings are merely illustrative and do not necessarily include all content and operations / steps, nor do they necessarily have to be performed in the described order. For example, some operations / steps can be broken down, while others can be combined or partially combined; therefore, the actual execution order may change depending on the specific circumstances.

[0061] It should be understood that this application can be applied in the field of cloud computing, and specifically in the rendering scenarios of cloud gaming. Cloud computing is a computing model that distributes computing tasks across a resource pool composed of a large number of computers, enabling various application systems to obtain computing power, storage space, and information services as needed. The network providing these resources is called the "cloud." From the user's perspective, the resources in the "cloud" are infinitely scalable, readily available, on-demand, expandable, and pay-as-you-go. As a provider of fundamental cloud computing capabilities, a cloud resource pool (referred to as a cloud platform, generally called an IaaS (Infrastructure as a Service) platform) is established. Various types of virtual resources are deployed within this pool for external customers to choose from. The cloud resource pool mainly includes: computing devices (virtualized machines containing operating systems), storage devices, and network devices. Logically, a PaaS (Platform as a Service) layer can be deployed on top of the IaaS layer, and a SaaS (Software as a Service) layer can be deployed on top of the PaaS layer. Alternatively, SaaS can be directly deployed on top of IaaS. PaaS is a platform for running software, such as databases and web containers. SaaS refers to various types of business software, such as web portals and bulk SMS senders. Generally, SaaS and PaaS are upper layers compared to IaaS.

[0062] Cloud gaming, also known as gaming on demand, is an online gaming technology based on cloud computing. It enables thin clients with relatively limited graphics processing and data processing capabilities to run high-quality games. In cloud gaming, the game does not reside on the player's terminal but runs on a cloud server. The cloud server renders the game scene as a video and audio stream, which is then transmitted to the player's terminal via the network. The player's terminal does not need powerful graphics processing and data processing capabilities; it only needs basic streaming media playback capabilities and the ability to receive player input commands and send them to the cloud server.

[0063] Specifically, this application applies to the rendering process of cloud gaming. Please refer to [link / reference]. Figure 1 , Figure 1 This is a schematic diagram illustrating an application scenario in an embodiment of this application. For example... Figure 1As shown, this scenario includes a cloud server 110 and multiple terminals 120. The multiple terminals 120 share the same network exit, forming a client cluster. The terminals in the client cluster communicate with the cloud server 110 and can request cloud gaming services from it. The cloud server 110 runs the corresponding game application based on the requests from the terminals 120 and captures game footage from the application. A rendering program renders and encodes the captured footage into an audio-visual stream with a specific format, and then sends the audio-visual stream to the terminals 120. The terminals 120 configure a decoder based on the rendering information of the received audio-visual stream and play the received audio-visual stream. Users interact in real-time based on the played video, and these interactions are sent to the cloud server 110. The cloud server 110 determines the next response and screen in the game application based on the interaction. The screen is then rendered into an audio-visual stream by an encoder and sent to the terminals 120, thus realizing the game process.

[0064] In the aforementioned process, the cloud server 110 renders the audio and video streams each time it transmits them to the terminal 120. This process can be referred to as cloud rendering. This cloud rendering process can also be applied to other cloud technology scenarios, such as cloud communication, cloud desktops, and cloud video. The solution of this application can be applied to this cloud rendering scenario to push multimedia streams. Multimedia streams typically include audio streams, video streams, audio and video streams, or other multimedia presentation formats. Specifically, the application of the solution of this application to the cloud rendering process can be found in [reference needed]. Figure 2 . Figure 2 This is an example flowchart of the cloud rendering process in an embodiment of this application. Figure 2As shown, the cloud rendering software app, once installed, initiates an initialization request at the start of the process. Before initialization, the cloud service probes the network. Specific probing methods may include ping commands, large file download tests (e.g., 1-3 seconds), bandwidth testing, round-trip time testing, and retransmission timeout testing. Subsequently, the cloud service configures base bitrate, floating ratio, appropriate resolution, and frame rate multimedia stream parameters based on network probing, cloud application type, and network port traffic, and pushes the multimedia stream according to these parameters. During cloud service operation, the terminal's network status is monitored, and a comprehensive assessment is performed based on the user's network and the client cluster's outgoing network. Under normal circumstances, the bitrate can be dynamically adjusted based on the assessment results, and the encoded multimedia stream is sent to the terminal. If the user's network or the client cluster's outgoing network becomes abnormal, the multimedia stream parameters for the clients in the cluster can be appropriately reduced, including lowering the resolution, bitrate, and frame rate. The cloud will reconfigure the encoder and notify the client to reconfigure the decoder, thus handling abnormal situations and ensuring the smooth operation of the cloud rendering process.

[0065] The technical solution provided in this application will be described in detail below with reference to specific embodiments. Please refer to... Figure 3 , Figure 3 A flowchart of a multimedia streaming push method according to an embodiment of this application is shown, the method being applied to, for example... Figure 1 In the scenario shown, and executed by the cloud server within that scenario, specifically, refer to... Figure 3 As shown, the multimedia stream push method includes at least steps S310 to S340, which are described in detail below:

[0066] Step S310: Detect the network status of the client set, which includes at least two clients sharing a public network port.

[0067] During client operation, the server continuously monitors the network status of the client set. A client set, or client cluster, consists of clients sharing the same public network port. The public network port is the network interface through which the client communicates with the public network; all network traffic from clients in the set passes through this port. A client set can consist of various client terminals from the same network environment communicating through the network egress of that environment, such as a router. In this case, the server can monitor the router's network status. Alternatively, the public network port can refer to the network port through which the server connects to the individual clients in the set, such as the network egress of a cloud server or cloud server cluster. In this case, the clients in the set come from different environments but connect to the server through the same public network port, thus forming the client set. The network status of the client set includes the current load status of the connected public network port. The server monitors the network status of all clients in the set. Network status is typically reflected through network status parameters, including client bandwidth usage, response time, and transmission speed—information that reflects network conditions.

[0068] In one embodiment of this application, the process of probing the network status of a client set may include the following steps: performing network probing on each client in the client set to obtain the status data of each client; then obtaining the network load of the public network port shared by the client set; and finally combining the client status data and network load as the client's network status parameter. Network load typically refers to the ratio between the network bandwidth currently occupied by the public network port and the total bandwidth redundancy of the port. The network status being probed can vary depending on the specific application running on the client set. For example, for applications such as gaming or video watching, each client in the client set typically has a large downlink bandwidth while its uplink bandwidth usage is relatively small. Therefore, the downlink bandwidth usage of the clients can be used as the network status parameter for probing the network status. For applications such as video editing, video recording, or live video streaming, the uplink bandwidth usage will also be large, so both uplink and downlink bandwidth can be probed simultaneously. Correspondingly, the total bandwidth redundancy can also be divided into total uplink bandwidth redundancy and total downlink bandwidth redundancy. When determining the network load, the ratio is calculated based on the total bandwidth and occupancy of the corresponding uplink and downlink channels. The process of obtaining the network load of the public port shared by a set of clients is usually performed by real-time monitoring of the network port.

[0069] Step S320: When the network state parameter change of the client is detected to exceed the state parameter threshold, the multimedia encoding parameters of each client in the client set are adjusted.

[0070] State parameter thresholds are indicators used to show that the cloud rendering process is in a normal state. When the network state parameters of a client change beyond the state parameter threshold, it indicates that an abnormality has occurred in the cloud rendering communication process. At this time, it is necessary to adjust the multimedia encoding parameters of each client in the client set. By adjusting the multimedia encoding parameters, the multimedia streams to be sent can be adjusted, thereby changing the overall network usage requirements of the client set to suit the current network state of the clients. Multimedia encoding parameters are used to configure the encoder of the server and the decoder of the client; the encoder and decoder are programs used to transmit and receive multimedia streams. Multimedia encoding parameters typically include base bitrate, floating ratio, resolution, and frame rate. Adjusting multimedia encoding parameters can include increasing or decreasing parameters, thereby increasing or decreasing the bandwidth required by the resulting multimedia stream. It is understood that adjusting multimedia encoding parameters can be done only on clients with concurrent instances in the client set. In one embodiment, the server can use a method of directly performing flow control on each client. Specifically, the server can maintain a list of information about currently connected clients. This list includes the set of currently connected clients and the configuration information of each client in that set, such as address information and bandwidth configuration. During transmission, the server sends traffic to each client according to the bandwidth configuration. When a client's network status changes and parameters need to be adjusted, the server directly adjusts the bandwidth configuration of each client in the client set to which that client belongs, thereby adjusting bandwidth usage.

[0071] In one embodiment of this application, the multimedia encoding parameters include base parameters and a floating ratio. When a change in a client's network state parameter is detected to exceed a state parameter threshold, the process of adjusting the multimedia encoding parameters for each client in the client set may include the following steps: determining a port load threshold corresponding to the public network port, and then comparing the current network load of the public network port with the port load threshold. If the network load of the public network port is greater than the port load threshold, then for each client, the base parameter is reduced according to the client's floating ratio to obtain the adjusted base parameters.

[0072] The port load threshold can be determined based on factors such as the number of clients in the client set, the type of application used in cloud rendering, and the maximum bandwidth achievable by the public network port. Each public network port can correspond to one or more client sets; therefore, when it corresponds to more than two client sets, the bandwidth of the public network port will be allocated to each client set. Specifically, the port load threshold refers to the port load threshold corresponding to that client set. When determining the port load threshold, the first step is to consider the client sets involved, and then further consider parameters such as the maximum bandwidth corresponding to each client set.

[0073] Specifically, if the network load on the public network port exceeds the port load threshold, it indicates that the egress bandwidth redundancy of the public network port is relatively low. For example, if the current network load exceeds 90% of the total egress bandwidth redundancy, it means that the current network load is too high. Therefore, it is necessary to adjust the acquisition encoding bitrate and frame rate downwards for all concurrent instances in the cluster to reduce the network load. In this way, the overall load of the client set can be adjusted in a timely manner when the network load is too high, thereby preventing congestion at the public network egress point from affecting the efficiency of multimedia streaming transmission.

[0074] In one embodiment of this application, when a change in the network status parameters of a client is detected to exceed a status parameter threshold, the process of adjusting the multimedia encoding parameters of each client in the client set further includes the following steps: If the growth rate of bandwidth usage by any client in the client set is greater than the bandwidth growth rate threshold within a preset time period, then for each client in the client set, the base parameters are reduced according to a floating ratio to obtain the adjusted base parameters. Specifically, if the network condition of any client deteriorates, causing a sudden change in the client's bandwidth usage within a preset time period, such as a longer response time or increased communication traffic, then the multimedia encoding parameters corresponding to all clients in the client set will be adjusted according to that client, thereby reducing the bandwidth usage of all clients and reducing the bandwidth pressure on the public network port. In one embodiment, the client whose parameters need to be adjusted can be determined based on the client's network address. First, the currently running concurrent instances of the client are obtained from the client set. Based on the network address or location information of the client whose current network conditions have changed, other clients in the same network environment can be identified. For these clients, the same adjustment method as for the identified affected clients can be used, with a relatively large reduction in basic parameters. For other clients in the client set, a relatively small reduction can be made, thereby enabling targeted adjustment of client usage and reducing the impact between clients.

[0075] In one embodiment of this application, when the network status parameter change of a client is detected to exceed a status parameter threshold, the process of adjusting the multimedia encoding parameters of each client in the client set further includes the following steps: If the rate of change of the network load of the public network port within a preset time period is greater than the rate of change threshold, then for each client in the client set, the base parameter is reduced according to the floating ratio to obtain the adjusted base parameter. Here, the preset time period typically refers to a billing cycle. Specifically, if the rate of change of the network load of the public network port within the preset time period is greater than the rate of change threshold, it indicates that the network is currently unstable, meaning that the network environment where the client set is located is unstable or there is a network attack, i.e., a sudden traffic surge has occurred. In such cases, it is necessary to reduce the base parameters of all clients in the client set to reduce the overall bandwidth usage of the client set. Through the above method, the sudden traffic surge can be smoothed, making the overall traffic of the client set more stable and avoiding port congestion caused by sudden traffic surges. In one embodiment, the server also detects the number of clients connected to the public network port. If the increase in the number of clients understood by the public network port is greater than the increment threshold within a predetermined time period, or if the number of access requests received by the public network port from new clients is greater than the request threshold within a predetermined time period, the server can reduce the base parameters of all clients in the client set to prevent traffic surges caused by a large number of client connections.

[0076] In one embodiment of this application, when a change in the network state parameters of a client is detected to exceed a state parameter threshold, the process of adjusting the multimedia encoding parameters of each client in the client set further includes the following steps: if the state data of a specific client in the client set drops below a state data threshold, then the base parameters of the specific client are reduced according to the fluctuation ratio of the specific client to obtain the adjusted base parameters of the specific client. Specifically, if the state data of a specific client in the client set drops below a state data threshold, the network condition of a certain client in the client set deteriorates. In this case, instead of adjusting the parameters of all clients, the base parameters of that client can be directly reduced, thereby making the cloud rendering effect of that client smoother.

[0077] In one embodiment of this application, when a change in the network status parameters of a client is detected to exceed a status parameter threshold, the process of adjusting the multimedia encoding parameters of each client in the client set further includes the following steps: If the network load of the public network port is lower than the port load threshold, and the peak change in the bandwidth occupied by each client within a preset time period is lower than the peak change threshold, for each client in the client set, the base parameters are increased according to a floating ratio to obtain the adjusted base parameters. It should be emphasized that both situations that cause the client to not receive multimedia streams or that result in poor quality multimedia streams received by the client are considered abnormal conditions; that is, not fully utilizing network bandwidth to provide users with relatively high-quality multimedia streams is also considered an abnormal condition. Therefore, if the network load of the public network port is lower than the port load threshold, and the peak change in the bandwidth occupied by each client within a preset time period is lower than the peak change threshold, it indicates that the bandwidth redundancy of the public network port is relatively sufficient and the concurrent bandwidth peak is relatively stable within the billing cycle. The base parameters of the client can be increased to improve the quality of the audio and video streams received by the client. In one embodiment, before increasing the base parameters according to a floating ratio, the adjustment priority is first determined based on the client's network status and the current multimedia configuration parameters. By comparing the remaining bandwidth, maximum bandwidth, and current bitrate of each client, clients with more remaining bandwidth and lower bitrates are given a higher adjustment priority, while clients with less remaining bandwidth and higher bitrates are assigned a lower adjustment priority. Then, according to the adjustment priority, the adjusted bandwidth usage is predicted based on the client's historical traffic usage data and current multimedia parameter configuration. If the adjusted bandwidth usage is lower than the remaining load available on the public network port, the client's multimedia parameters can be adjusted; if the estimated bandwidth usage is higher than the remaining load, the process of increasing the client's multimedia encoding parameters is stopped. In this way, the quality of the multimedia stream received by the client can be improved in a timely manner when bandwidth and network conditions permit, thereby improving the rendering effect.

[0078] In one embodiment of this application, the process of increasing the base parameters of each client in the client set according to a floating ratio to obtain the adjusted base parameters includes the following steps: Based on the status data of each client, select the client to be optimized from the client set; then, based on the difference between the network load and the port load threshold of the public network port and the bandwidth occupied by the client to be optimized, determine the increase ratio of the client to be optimized, where the increase ratio is less than or equal to the floating ratio; finally, increase the base parameters of the client to be optimized according to the increase ratio. Clients to be optimized are typically selected from those with good network conditions; such clients can be screened as clients to be optimized based on the client's status data. The available bandwidth can be determined based on the difference between the network load and the port load threshold of the public network port and the bandwidth occupied by the client to be optimized. The increase ratio of the bitrate is calculated based on the available bandwidth and the existing occupied bandwidth, thereby increasing the base parameters of the client to be optimized according to the increase ratio. Specifically, the increase ratio of the base parameters typically does not exceed the base bitrate * (1 + floating ratio).

[0079] Step S330: The adjusted multimedia encoding parameters are sent to each client so that each client can configure itself to receive the multimedia stream according to the received multimedia encoding parameters.

[0080] Specifically, the server sends the adjusted multimedia encoding parameters to each client. The client then configures its decoder based on the received multimedia encoding parameters to decode the received multimedia stream for playback.

[0081] In one embodiment, the process of adjusting multimedia encoding parameters described above can be performed by the client. When the server determines that adjustments to the multimedia encoding parameters are needed based on the client's network status and the network load of the public network port, it can directly send adjustment instructions to each client in the client set. The client then determines the adjusted parameters and configures the decoder based on the received adjustment instructions and the current status of the multimedia encoding parameters. For example, if the adjustment instruction indicates a reduction in parameters, the client can reduce the bitrate based on the base bitrate, the floating ratio, and the current parameter status, and send the reduced parameters to the server. The server then updates the corresponding encoder configuration based on the parameter information returned by the client, thereby enabling subsequent multimedia stream delivery.

[0082] Step S340: Push the multimedia stream to each client. The multimedia stream is rendered according to the adjusted multimedia encoding parameters.

[0083] Specifically, the server will push the multimedia stream rendered according to the adjusted multimedia encoding parameters to each client.

[0084] In one embodiment of this application, the process of pushing multimedia streams to various clients may include: configuring an encoder for each client according to the adjusted multimedia encoding parameters; rendering multimedia data through the encoder to obtain a multimedia stream; and sending the multimedia stream to the client.

[0085] In one embodiment of this application, before probing the network status of the client set, the method further includes: probing the initial state data of each client in the client set; if the initial state data is detected, determining multimedia encoding parameters based on the initial state data and the application type of the application running on the client; if probing the initial state data fails, determining the multimedia encoding parameters based on the preset configuration corresponding to the application type of the application running on the client; configuring an encoder based on the multimedia encoding parameters, the encoder being used to render the multimedia stream; and sending the multimedia encoding parameters to each client so that the client can configure itself based on the basic parameters.

[0086] It should be noted that although the steps of the method in this application are described in a specific order in the accompanying drawings, this does not require or imply that the steps must be performed in that specific order, or that all the steps shown must be performed to achieve the desired result. Additional or alternative steps may be omitted, multiple steps may be combined into one step, and / or one step may be broken down into multiple steps.

[0087] The following describes the implementation of the apparatus of this application, which can be used to execute the multimedia stream push method in the above embodiments of this application. Figure 4 A schematic block diagram illustrating the components of a multimedia streaming device according to an embodiment of this application is shown. Figure 4 As shown, the multimedia streaming device 400 mainly includes:

[0088] The status detection module 410 is used to detect the network status of a client set, which includes at least two clients sharing a public network port;

[0089] The parameter adjustment module 420 is used to adjust the multimedia encoding parameters of each client in the client set when the network status parameter of the client is detected to change beyond the status parameter threshold.

[0090] The parameter sending module 430 is used to send the adjusted multimedia encoding parameters to each client, so that each client can perform client configuration according to the received multimedia encoding parameters to receive the multimedia stream.

[0091] The streaming module 440 is used to push multimedia streams to each client, the multimedia streams being rendered according to the adjusted multimedia encoding parameters.

[0092] In some embodiments of this application, based on the above technical solutions, the state detection module 410 includes:

[0093] The network detection unit is used to perform network detection on each client in the client set and obtain the status data of each client;

[0094] A network load acquisition unit is used to acquire the network load of the public network port shared by the client set;

[0095] The status parameter determination unit is used to combine the client's status data and the network load as the client's network status parameters.

[0096] In some embodiments of this application, based on the above technical solutions, the multimedia encoding parameters include basic parameters and a floating ratio, and the parameter adjustment module 420 includes:

[0097] A load threshold determination unit is used to determine the port load threshold corresponding to the public network port;

[0098] The first parameter adjustment unit is used to reduce the basic parameter according to the floating ratio of the client for each client if the network load of the public network port is greater than the port load threshold, so as to obtain the adjusted basic parameter.

[0099] In some embodiments of this application, based on the above technical solutions, the parameter adjustment module 420 includes:

[0100] The second parameter adjustment unit is used to reduce the basic parameter according to the floating ratio for each client in the client set if the growth rate of the bandwidth occupied by any client in the client set is greater than the bandwidth growth rate threshold within a preset time period, so as to obtain the adjusted basic parameter.

[0101] In some embodiments of this application, based on the above technical solutions, the parameter adjustment module 420 includes:

[0102] The third parameter adjustment unit is used to reduce the basic parameter according to the floating ratio for each client in the client set if the rate of change of the network load of the public network port within a preset time period is greater than the rate of change threshold, so as to obtain the adjusted basic parameter.

[0103] In some embodiments of this application, based on the above technical solutions, the parameter adjustment module 420 includes:

[0104] The fourth parameter adjustment unit is used to reduce the basic parameters of a specific client according to the floating ratio of the specific client if the status data of a specific client in the client set drops below the status data threshold, so as to obtain the adjusted basic parameters of the specific client.

[0105] In some embodiments of this application, based on the above technical solutions, the parameter adjustment module 420 includes:

[0106] The fifth parameter adjustment unit is used to increase the basic parameter according to the floating ratio for each client in the client set if the network load of the public network port is lower than the port load threshold and the peak change in the bandwidth occupied by each client within a preset time period is lower than the peak change threshold, so as to obtain the adjusted basic parameter.

[0107] In some embodiments of this application, based on the above technical solutions, the fifth parameter adjustment unit includes:

[0108] The client selection subunit is used to select the client to be optimized from the client set based on the status data of each client;

[0109] The ratio determination subunit is used to determine the increase ratio of the client to be optimized based on the difference between the network load of the public network port and the port load threshold and the bandwidth occupied by the client to be optimized, wherein the increase ratio is less than or equal to the floating ratio.

[0110] The parameter increase subunit is used to increase the basic parameters of the client to be optimized according to the increase ratio.

[0111] In some embodiments of this application, based on the above technical solutions, the streaming push module 440 includes:

[0112] The parameter configuration unit is used to configure the encoder for each client according to the adjusted multimedia encoding parameters.

[0113] A rendering unit is used to render multimedia data through the encoder to obtain a multimedia stream;

[0114] A streaming unit is used to send the multimedia stream to the client.

[0115] In some embodiments of this application, based on the above technical solutions, the multimedia stream push device further includes:

[0116] The initial data detection module is used to detect the initial state data of each client in the client set;

[0117] An initial parameter determination module is used to determine multimedia encoding parameters based on the initial state data and the application type of the application running on the client if the initial state data is detected.

[0118] The initial parameter determination module is also used to determine the multimedia encoding parameters according to the preset configuration corresponding to the application type of the application running by the client if the detection of initial state data fails.

[0119] A streaming rendering module is used to configure the encoder according to the multimedia encoding parameters, and the encoder is used to render the multimedia stream;

[0120] The parameter sending module is also used to send the multimedia encoding parameters to each client so that the client can configure itself according to the basic parameters.

[0121] It should be noted that the apparatus provided in the above embodiments and the method provided in the above embodiments belong to the same concept, and the specific way in which each module performs the operation has been described in detail in the method embodiments, and will not be repeated here.

[0122] Figure 5 A schematic diagram of the structure of a computer system suitable for implementing the electronic device of the present application is shown.

[0123] It should be noted that, Figure 5 The computer system 500 of the electronic device shown is merely an example and should not impose any limitation on the functionality and scope of use of the embodiments of this application.

[0124] like Figure 5 As shown, the computer system 500 includes a Central Processing Unit (CPU) 501, which can perform various appropriate actions and processes based on programs stored in Read-Only Memory (ROM) 502 or programs loaded from Storage Unit 508 into Random Access Memory (RAM) 503. The RAM 503 also stores various programs and data required for system operation. The CPU 501, ROM 502, and RAM 503 are interconnected via a bus 504. An Input / Output (I / O) interface 505 is also connected to the bus 504.

[0125] The following components are connected to I / O interface 505: an input section 506 including a keyboard, mouse, etc.; an output section 507 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 508 including a hard disk, etc.; and a communication section 509 including a network interface card such as a LAN (Local Area Network) card, modem, etc. The communication section 509 performs communication processing via a network such as the Internet. A drive 510 is also connected to I / O interface 505 as needed. Removable media 511, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., are installed on drive 510 as needed so that computer programs read from them can be installed into storage section 508 as needed.

[0126] Specifically, according to embodiments of this application, the processes described in the various method flowcharts can be implemented as computer software programs. For example, embodiments of this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication section 509, and / or installed from removable medium 511. When the computer program is executed by central processing unit (CPU) 501, it performs various functions defined in the system of this application.

[0127] It should be noted that the computer-readable medium shown in the embodiments of this application can be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, optical fiber, portable compact disc read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this application, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In this application, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such transmitted data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. The computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to wireless, wired, etc., or any suitable combination thereof.

[0128] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0129] It should be noted that although several modules or units for the device used to perform actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to the embodiments of this application, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.

[0130] Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, touch terminal, or network device, etc.) to execute the method according to the embodiments of this application.

[0131] Other embodiments of this application will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this application that follow the general principles of this application and include common knowledge or customary techniques in the art not disclosed herein.

[0132] It should be understood that this application is not limited to the precise structure described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this application is limited only by the appended claims.

Claims

1. A multimedia stream push method, characterized in that, include: Detect the network status of a set of clients, the set of clients including at least two clients sharing a public network port; When a change in the network status parameters of a client is detected to exceed the status parameter threshold, the multimedia encoding parameters of each client in the client set are adjusted. The adjusted multimedia encoding parameters are sent to each client so that each client can configure itself to receive the multimedia stream based on the received multimedia encoding parameters. Multimedia streams are pushed to each of the clients, and the multimedia streams are rendered according to the adjusted multimedia encoding parameters.

2. The method according to claim 1, characterized in that, The network status of the probe client set includes: Network probing is performed on each client in the client set to obtain the status data of each client; Obtain the network load of the public port shared by the client set; The client's status data and the network load are combined to form the client's network status parameters.

3. The method according to claim 2, characterized in that, The multimedia encoding parameters include basic parameters and a floating ratio. When a change in a client's network state parameter is detected to exceed a state parameter threshold, the multimedia encoding parameters of each client in the client set are adjusted, including: Determine the port load threshold corresponding to the public network port; If the network load of the public network port is greater than the port load threshold, then for each client, the basic parameter is reduced according to the client's floating ratio to obtain the adjusted basic parameter.

4. The method according to claim 3, characterized in that, The step of adjusting the multimedia encoding parameters of each client in the client set when a change in the client's network state parameters is detected to exceed a state parameter threshold also includes: If the bandwidth usage growth rate of any client in the client set exceeds the bandwidth growth rate threshold within a preset time period, then for each client in the client set, the base parameter is reduced according to the floating ratio to obtain the adjusted base parameter.

5. The method according to claim 3, characterized in that, The step of adjusting the multimedia encoding parameters of each client in the client set when a change in the client's network state parameters is detected to exceed a state parameter threshold also includes: If the rate of change of the network load of the public network port within a preset time period is greater than the rate of change threshold, then for each client in the client set, the basic parameter is reduced according to the floating ratio to obtain the adjusted basic parameter.

6. The method according to claim 3, characterized in that, When a change in the network state parameters of a client is detected to exceed a state parameter threshold, the multimedia encoding parameters of each client in the client set are adjusted, including: If the state data of a specific client in the client set drops below the state data threshold, then the base parameters of that specific client are reduced according to the fluctuation ratio of that specific client to obtain the adjusted base parameters of that specific client.

7. The method according to claim 3, characterized in that, The step of adjusting the multimedia encoding parameters of each client in the client set when a change in the client's network state parameters is detected to exceed a state parameter threshold also includes: If the network load of the public network port is lower than the port load threshold, and the peak change in bandwidth occupied by each client within a preset time period is lower than the peak change threshold, for each client in the client set, the basic parameter is increased according to the floating ratio to obtain the adjusted basic parameter.

8. The method according to claim 7, characterized in that, For each client in the client set, the adjusted base parameters are obtained by increasing the base parameters according to the floating ratio, including: Based on the status data of each client, select the clients to be optimized from the client set; Based on the difference between the network load of the public network port and the port load threshold, and the bandwidth occupied by the client to be optimized, the increase ratio of the client to be optimized is determined, wherein the increase ratio is less than or equal to the floating ratio; Based on the stated increase ratio, the base parameters of the client to be optimized are increased.

9. The method according to claim 1, characterized in that, The process of pushing multimedia streams to each client includes: For each client, configure the encoder according to the adjusted multimedia encoding parameters; The multimedia data is rendered using the encoder to obtain a multimedia stream; The multimedia stream is sent to the client.

10. The method according to claim 9, characterized in that, Before probing the network status of the client set, the method further includes: Probe the initial state data of each client in the client set; If the initial state data is detected, the multimedia encoding parameters are determined based on the initial state data and the application type of the application running on the client. If the initial state data detection fails, the multimedia encoding parameters are determined according to the preset configuration corresponding to the application type of the application running by the client. The encoder is configured according to the multimedia encoding parameters, and the encoder is used to render the multimedia stream; The multimedia encoding parameters are sent to each client so that the client can configure itself based on the basic parameters contained in the multimedia encoding parameters.

11. A multimedia streaming device, characterized in that, include: A status detection module is used to detect the network status of a client set, which includes at least two clients sharing a public network port; The parameter adjustment module is used to adjust the multimedia encoding parameters of each client in the client set when the network status parameter of the client is detected to change beyond the status parameter threshold. The parameter sending module is used to send the adjusted multimedia encoding parameters to each client, so that each client can configure itself according to the received multimedia encoding parameters to receive the multimedia stream. The streaming module is used to push multimedia streams to each client, the multimedia streams being rendered based on the adjusted multimedia encoding parameters.

12. An electronic device, characterized in that, include: processor; Memory for storing the executable instructions of the processor; The processor is configured to execute the multimedia streaming push method according to any one of claims 1 to 10 by executing the executable instructions.

13. A computer-readable medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the multimedia streaming push method as described in any one of claims 1 to 10.

14. A computer program product, characterized in that, The computer program product includes computer instructions stored in a computer-readable storage medium, and a processor of a computer device reads and executes the computer instructions from the computer-readable storage medium, causing the computer device to perform the multimedia streaming push method as described in any one of claims 1 to 10.