Method and apparatus for video pushing, device, and storage medium

By acquiring video data and determining the second bitrate based on the first bitrate, the video push compatibility issues of different device models and live content types were resolved, achieving more efficient image quality and cost control.

WO2026026734A1PCT designated stage Publication Date: 2026-02-05BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/110995
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-29
Filing Date
2025-07-28
Publication Date
2026-02-05

AI Technical Summary

Technical Problem

Different device models have different screen resolutions and the complexity of live streaming content, resulting in poor compatibility when pushing videos in a fixed bitrate mode. This leads to unsatisfactory image quality, stuttering during push, and increased costs.

Method used

After acquiring video data, a second bitrate suitable for the target client device and live content type is determined based on the first bitrate. The bitrate is then adjusted by the server or client device to adapt to the live streaming needs of different device models and content types.

Benefits of technology

It improves the adaptability of video push notifications, reduces push lag and lowers costs, while enhancing the viewer experience while ensuring picture quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025110995_05022026_PF_FP_ABST
    Figure CN2025110995_05022026_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a method and apparatus for video pushing, a device, and a storage medium. The method comprises: acquiring video data, the video data comprising live streaming content of a target client device at a predetermined resolution, and the predetermined resolution corresponding to a first bit rate; in response to acquiring the video data, determining a second bit rate for the video data on the basis of the first bit rate; and pushing the video data to at least one client device at the second bit rate. Therefore, on the basis of the first bit rate corresponding to the predetermined resolution, a second bit rate suitable for or matching different models of client devices at the predetermined resolution for pushing different types of live streaming content during live streaming can be obtained, thereby reducing stuttering when pushing live streaming content and the cost of pushing live streaming content while ensuring image quality.
Need to check novelty before this filing date? Find Prior Art

Description

Methods, apparatus, devices, and storage media for video push

[0001] This application claims priority to Chinese Patent Application No. 202411026506.X, filed on July 29, 2024, entitled "Method, Apparatus, Device and Storage Medium for Video Push", the entire contents of which are incorporated herein by reference. Technical Field

[0002] The exemplary embodiments disclosed herein generally relate to the field of computers, and more particularly to methods, apparatuses, electronic devices, and computer-readable storage media for video streaming. Background Technology

[0003] In live streaming scenarios, different resolutions correspond to different bitrates. After a user selects a resolution, the device pushes the live stream content at the bitrate corresponding to the selected resolution. However, due to differences in screen resolution and aspect ratio among different device models, and the varying complexity of different types of live stream content, pushing content using a fixed bitrate mode has poor compatibility. Summary of the Invention

[0004] In a first aspect of this disclosure, a method for video push is provided. The method includes: acquiring video data, the video data including live content of a target client device at a predetermined resolution, the predetermined resolution corresponding to a first bitrate; in response to acquiring the video data, determining a second bitrate for the video data based on the first bitrate; and pushing the video data to at least one client device at the second bitrate.

[0005] In a second aspect of this disclosure, an apparatus for video push is provided. The apparatus includes: an acquisition module configured to acquire video data, the video data including live content from a target client device at a predetermined resolution, the predetermined resolution corresponding to a first bitrate; a determination module configured to, in response to acquiring the video data, determine a second bitrate for the video data based on the first bitrate; and a push module configured to push the video data to at least one client device at the second bitrate.

[0006] In a third aspect of this disclosure, an electronic device is provided. The electronic device includes at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit. When executed by the at least one processing unit, the instructions cause the electronic device to perform the method of the first aspect.

[0007] In a fourth aspect of this disclosure, a computer-readable storage medium is provided. The computer-readable storage medium stores a computer program that can be executed by a processor to implement the method of the first aspect.

[0008] In a fifth aspect of this disclosure, a computer program product is provided, including computer-executable instructions, wherein the computer-executable instructions, when executed by a processor, implement the method according to the first aspect.

[0009] It should be understood that the content described in this content section is not intended to limit the key or essential features of the embodiments of this disclosure, nor is it intended to restrict the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description

[0010] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. In the drawings, the same or similar reference numerals denote the same or similar elements, wherein:

[0011] Figure 1 shows a schematic diagram of an example environment in which embodiments of the present disclosure can be implemented;

[0012] Figure 2 shows a flowchart of a video push process according to some embodiments of the present disclosure;

[0013] Figure 3 illustrates a signaling interaction diagram of a process for acquiring video content according to some embodiments of the present disclosure;

[0014] Figure 4 illustrates a schematic diagram showing how the viewer's visual experience changes with video quality according to some embodiments of the present disclosure;

[0015] Figure 5 illustrates a flowchart of an image quality decision-making process according to some embodiments of the present disclosure;

[0016] Figure 6 shows a block diagram of an apparatus for video streaming according to some embodiments of the present disclosure; and

[0017] Figure 7 shows a block diagram of an electronic device in which one or more embodiments of the present disclosure may be implemented. Detailed Implementation

[0018] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.

[0019] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this disclosed technical solution, based on the prompt message.

[0020] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device.

[0021] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.

[0022] It is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) shall comply with the requirements of relevant laws, regulations and related provisions.

[0023] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0024] It should be noted that the headings of any section / subsection provided herein are not limiting. Various embodiments are described throughout this document, and embodiments of any type may be included under any section / subsection. Furthermore, embodiments described in any section / subsection may be combined in any way with any other embodiments described in the same section / subsection and / or different sections / subsections.

[0025] In this document, unless explicitly stated otherwise, performing a step in response to A does not mean that the step is performed immediately after A, but may include one or more intermediate steps.

[0026] In the description of embodiments of this disclosure, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may also be included below.

[0027] As briefly mentioned earlier, different resolutions are offered to the broadcaster during live streaming, each corresponding to a different bitrate. Higher resolutions correspond to higher bitrates, and vice versa. For example, "Smooth" resolution corresponds to a bitrate of 1Mbps, "Standard Definition" to 2Mbps, "High Definition" to 3Mbps, and "Blu-ray 4Mbps" to 4Mbps. After the broadcaster selects the appropriate resolution, the live stream content on the client device will be pushed at the bitrate corresponding to the selected resolution.

[0028] Different device models have different screen resolutions and aspect ratios. When pushing live content with a fixed bitrate, the following problems may occur: If the difference in screen width and height between devices is small, a bitrate that is too high will result in a small improvement in image quality that benefits the viewer experience, but will lead to push stuttering and increased costs; if the difference in screen width and height between devices is large, a bitrate that is too low will result in the viewer's image clarity not meeting the requirements.

[0029] Different types of live streaming content have varying levels of visual complexity. When pushing live streaming content at a fixed bitrate, the following problems may arise: If the live streaming content has low visual complexity, a high bitrate will lead to push stuttering and increased costs; if the live streaming content has high visual complexity, a low bitrate will result in insufficient image clarity for viewers.

[0030] This disclosure provides a scheme for video push. According to various embodiments of this disclosure, video data is acquired, including live content from a target client device at a predetermined resolution, where the predetermined resolution corresponds to a first bitrate. In response to acquiring the video data, a second bitrate is determined based on the first bitrate. The video data is then pushed to at least one client device at the second bitrate. In this manner, a second bitrate for live streaming this type of content on a target client device of a specific model can be obtained from the first bitrate, thereby enhancing the adaptability of the push bitrate to different device models and different types of live content, reducing stuttering and lowering costs while maintaining image quality.

[0031] Figure 1 illustrates an example environment 100 in which embodiments of the present disclosure can be implemented.

[0032] As shown in Figure 1, environment 100 may include client devices 110-1, 110-2, ..., 110-N, server device 120, and content distribution service node 130. For ease of discussion, client devices 110-1, 110-2, ..., 110-N may be collectively referred to as client device 110 or individually.

[0033] In environment 100, at least some of the client devices 110 have different models. Each client device 110 may have installed applications capable of providing live streaming services and various applications capable of providing live streaming content. The types of applications capable of providing live streaming services and the types of applications capable of providing live streaming content can be arbitrary, and the embodiments of this disclosure do not impose any limitations on this.

[0034] In environment 100, client device 110 is communicatively connected to server device 120 and content distribution service node 130, respectively, and server device 120 and content distribution service node 130 are communicatively connected.

[0035] In some embodiments, the client device 110 may be any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, handheld computers, portable gaming terminals, VR / AR devices, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. In some embodiments, the client device may also support any type of user-facing interface (such as "wearable" circuitry).

[0036] In some embodiments, the server device 120 or content delivery service node 130 may be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks, and basic cloud computing services. The server device 120 or content delivery service node 130 may, for example, include computing systems / servers, such as mainframes, edge computing nodes, computing devices in a cloud environment, etc.

[0037] The communication connection between the client device 110, the server device 120, and the content delivery service node 130 can be established via wired or wireless means. The communication connection may include, but is not limited to, Bluetooth, mobile network, Universal Serial Bus (USB), and Wireless Fidelity (WiFi) connections; the embodiments disclosed herein are not limited in this respect.

[0038] It should be understood that the structure and function of environment 100 are described for illustrative purposes only and do not imply any limitation on the scope of this disclosure.

[0039] The following description will continue with reference to the accompanying drawings, which will provide some exemplary embodiments of this disclosure.

[0040] Figure 2 illustrates a flowchart of a video push process 200 according to some embodiments of the present disclosure. In Figure 2, the video push process 200 can be implemented in a server device or a client device. For ease of description, the following explanation will use the example of a server device executing a process to determine the push bitrate of a client device. It should be understood that a similar process can also be executed locally by the client device. The scheme for determining the bitrate provided by the present disclosure will now be described in detail with reference to Figure 1.

[0041] In frame 210, server device 120 acquires video data.

[0042] The video data may include the live content of the client device 110 at a predetermined resolution. For example, the video data may include the live content of the client device 110 from the start to the end of the live broadcast, or it may include the live content of a certain period of the live broadcast. This disclosure embodiment does not impose any limitations.

[0043] In some embodiments, client device 110 can perform screen recording live streaming, and the live streaming content includes the screen content of the client device. In the case of screen recording live streaming, the live streaming content of client device 110 includes the images displayed on the screen of client device 110 during the live streaming, such as the screen of a running application. The presentation of the live streaming content can be user-authorized, and the user can select the screen content to be presented.

[0044] In some embodiments, the client device 110 may perform non-screen recording live streaming, and the live streaming content may include content captured by a camera.

[0045] In some embodiments, the user can manually set the resolution or use a recommended resolution before the live stream begins. For example, a lower resolution can be selected in poor network conditions, and a higher resolution can be selected in good network conditions. The resolution selected by the user or the recommended resolution can be determined as the predetermined resolution.

[0046] Before the server device 120 acquires video data, the client device 110 needs to broadcast the predetermined type of live content at a predetermined resolution to generate video data. This process can be implemented by the server device 120 controlling the client device 110, or it can be implemented by the user operating the client device 110.

[0047] Taking the example of server device 120 controlling client device 110 to broadcast live content of a predetermined type at a predetermined resolution, server device 120 can obtain configuration information for video data. The configuration information may include the model of client device 110, the type of live content, and the predetermined resolution. For example, the type of live content can be determined based on the application providing the displayed content on the client device's screen, or it can be determined by classifying the live content. For example, the live content may be game content displayed by a game application, or content presented by other applications; this embodiment is not limited. Based on the configuration information, server device 120 can control the corresponding model of client device 110 to broadcast live content of the corresponding type at a predetermined resolution.

[0048] Client device 110 can push live content during the live broadcast to content distribution service node 130. Server device 120 can obtain video data from content distribution service node 130, or server device 120 can directly obtain video data from client device 110. Of course, server device 120 can also use other appropriate methods to obtain video data, and the embodiments disclosed herein are not limited thereto.

[0049] For example, server device 120 is configured with a script control center, and client device 110 is configured with a user interface (UI) automation framework. Server device 120 can establish a communication connection with the corresponding client device 110 model through the script control center, based on the client device 110 model specified in the configuration information. After establishing the communication connection, server device 120 controls the UI automation framework in client device 110 based on the predetermined resolution and live content type specified in the configuration information. This enables client device 110 to launch applications capable of providing live streaming services and begin broadcasting at the predetermined resolution. Furthermore, it enables client device 110 to launch applications of the corresponding live content type, allowing client device 110 to acquire the relevant live content.

[0050] Figure 3 illustrates a signaling interaction diagram of a process 300 for acquiring video content according to some embodiments of the present disclosure. Process 300 involves a script control center 301, a UI automation framework 302, a live streaming application 303, and a content distribution service node 130. The script control center 301 is configured in the server device 120, and the UI automation framework 302 and the live streaming application 303 are configured in the client device 110.

[0051] In box 310, script control center 301 connects to target client device 110. Script control center 301 can connect to the corresponding model of client device based on the client device model in the configuration information. The client device corresponding to the client device model in the configuration information can be referred to as the target client device.

[0052] In box 311, the script control center 301 sends a broadcast request to the UI automation framework 302. In some embodiments, the broadcast request may include a predetermined resolution in the configuration information.

[0053] In box 312, the UI automation framework 302 responds to receiving the broadcast request and controls the live streaming application 330 to start broadcasting at a predetermined resolution.

[0054] In box 313, after controlling the live streaming application 303 to start broadcasting at a predetermined resolution, the UI automation framework 302 returns a first message to the script control center 301. In some embodiments, the first message indicates that the broadcasting at the predetermined resolution was successful.

[0055] In box 314, the script control center 301 sends a request to the UI automation framework 302 to launch the target application. In some embodiments, the target application may be an application running on the client device 110, such as a game application or other types of applications. In some embodiments, the content presented by the target application will be used by the live streaming application for live streaming.

[0056] In box 315, UI automation framework 302 responds to receiving a request to launch the target application and launches the target application.

[0057] In box 316, after the UI automation framework 302 launches the target application, a second message is returned to the script control center 301. In some embodiments, the second message indicates that the target application has opened successfully.

[0058] In box 317, the script control center 301 sends a shutdown request to the UI automation framework 302 to request the closure of the live stream. In some embodiments, the script control center 301 may send the shutdown request to the UI automation framework 302 after a predetermined time period, or it may send the shutdown request to the UI automation framework 302 in response to receiving an instruction from the user corresponding to the client device 110.

[0059] In box 318, the UI automation framework 302 responds to the received shutdown request by closing the live streaming application.

[0060] In box 319, after the UI automation framework 302 closes the live streaming application, a third message is returned to the script control center 301. In some embodiments, the third message indicates that the live streaming application was closed successfully.

[0061] In frame 320, the script control center 301 sends a request to the content distribution service node 130 to obtain video data.

[0062] In box 321, the content delivery service node 130 responds to the request to obtain video data by returning video data to the server device 120.

[0063] In some embodiments, if process 200 is implemented at client device 110, client device 110 may be configured with a script control center, and client device 110 itself will push live content based on configuration information.

[0064] Returning to Figure 2, in box 220, the server device 120, in response to acquiring video data, determines a second bitrate for the video data based on the first bitrate.

[0065] In some embodiments, the server device 120 may determine a plurality of candidate bitrates for video data based on a first bitrate, and determine a second bitrate based on the plurality of candidate bitrates.

[0066] In this embodiment of the disclosure, the first bitrate is the bitrate corresponding to a predetermined resolution, that is, the default bitrate at which the client device 110 pushes screen content during live streaming of a predetermined type of live content at a predetermined resolution. The second bitrate can be the push bitrate that is more suitable for the client device 110 of this model to stream this type of live content at a predetermined resolution, and can also be called the optimal streaming bitrate.

[0067] In some embodiments, the server device 120 can obtain the image quality value of the video data and determine at least one candidate bitrate among a plurality of candidate bitrates based on the image quality value and a first bitrate.

[0068] For example, the server device 120 can be configured with various video quality scoring tools, or the server device 120 can call various external video quality scoring tools to score the video data and obtain the video data's image quality value. The image quality value of the video data is used to measure the picture quality of the video data. For example, a higher image quality value means that the picture quality of the video data is higher.

[0069] It should be noted that the methods for determining each candidate bitrate are largely the same; the difference lies in the video quality scoring tools used to evaluate the video data. For ease of description, the following example illustrates how server device 120 determines a candidate bitrate for the video data.

[0070] For example, server device 120 can score the video data using any of a variety of video quality scoring tools to obtain a video quality value. After obtaining the video quality value, server device 120 can determine one of a number of candidate bitrates based on the video quality value and a video quality value threshold.

[0071] It should be understood that, as shown in Figure 4, generally, as image quality improves, the image quality value also increases accordingly, resulting in a better viewing experience for the audience. However, once the image quality value exceeds a certain threshold, further increases in video image quality do not significantly alter the viewer's experience. This image quality value is sometimes referred to as the "sweet spot" in image quality. Therefore, the value corresponding to the "sweet spot" can be used as the image quality threshold. Alternatively, the image quality threshold can be set as needed, and this embodiment does not impose any limitations.

[0072] In some embodiments, the server device 120 determines a first bitrate as a candidate bitrate in response to determining that the image quality value is greater than or equal to an image quality value threshold. The server device 120 also determines a candidate bitrate based on the first bitrate and the bitrate threshold in response to determining that the image quality value is less than the image quality value threshold.

[0073] The bitrate threshold can be determined based on the bitrate limit range when the client device 110 pushes live content. For example, the upper limit of the bitrate limit range can be used as the bitrate threshold, or it can be set as needed. This disclosure embodiment does not impose any restrictions.

[0074] In some embodiments, when determining a candidate bitrate based on a first bitrate and a bitrate threshold, the server device 120 may adjust the first bitrate to a third bitrate. In response to determining that the third bitrate is greater than or equal to the bitrate threshold, the bitrate threshold is determined as a candidate bitrate. In this case, the third bitrate is greater than the first bitrate. For example, the server device 120 may increase the first bitrate in predetermined steps (e.g., 50K) to obtain the third bitrate.

[0075] In some embodiments, in response to determining that the third bitrate is less than a bitrate threshold, the server device 120 replaces the first bitrate corresponding to the predetermined resolution with the third bitrate. That is, the server device 120 controls the client device 110 to perform live streaming again with the bitrate corresponding to the predetermined resolution as the third bitrate, and repeats the above process for the regenerated video data until a candidate bitrate is finally determined.

[0076] In some embodiments, after determining multiple candidate bitrates in the manner described above, the server device 120 can determine a second bitrate based on the multiple candidate bitrates and their respective weight values.

[0077] Taking the determination of the second code rate using two candidate code rates as an example, if the weight value corresponding to one candidate code rate is X, and the weight value corresponding to the other candidate code rate is 1-X, then the second code rate = one candidate code rate × X + the other candidate code rate × (1-X). It should be understood that the weight values ​​can be set by those skilled in the art as needed, and the embodiments disclosed herein do not impose any limitations.

[0078] The process by which the server device 120 determines the second bitrate for video data will be further illustrated below with a specific example. Figure 5 shows a flowchart of a quality decision process 500 according to some embodiments of this disclosure. Process 500 can be implemented in either the server device 120 or the client device 110. For ease of description, the following description will use the server device performing the quality decision process as an example.

[0079] Client device 110 pushes a live stream of a specified type at a first bitrate to generate video data. Client device 110 then sends the generated video content to server device 120.

[0080] In box 511, server device 120 obtains video data and calls the first video quality scoring tool to score the video data in order to determine the image quality value of the video data.

[0081] In box 512, server device 120 determines whether the image quality value is greater than or equal to the image quality value threshold.

[0082] In box 513, when the image quality value is greater than or equal to the image quality value threshold, the server device 120 determines the first bitrate as the candidate bitrate 1.

[0083] In box 514, when the image quality value is less than the image quality value threshold, the server device 120 adjusts the first bitrate to the third bitrate.

[0084] In box 515, server device 120 determines whether the third bitrate is greater than or equal to a bitrate threshold. If the third bitrate is greater than or equal to the bitrate threshold, server device 120 determines the bitrate threshold as candidate bitrate 1; if the third bitrate is less than the bitrate threshold, server device 120 sends the third bitrate to client device 110, causing client device 110 to push the live stream of the client device at the third bitrate, and repeats the above process until candidate bitrate 1 is determined.

[0085] In box 521, server device 120 acquires video data and calls the second video quality scoring tool to score the video data in order to determine the video quality value.

[0086] In box 522, server device 120 determines whether the image quality value is greater than or equal to the image quality value threshold.

[0087] In box 523, when the image quality value is greater than or equal to the image quality value threshold, the server device 120 determines the first bitrate as the candidate bitrate 2.

[0088] In box 524, when the image quality value is less than the image quality value threshold, the server device 120 adjusts the first bitrate to the third bitrate.

[0089] In box 525, server device 120 determines whether the third bitrate is greater than or equal to a bitrate threshold. If the third bitrate is greater than or equal to the bitrate threshold, server device 120 determines the bitrate threshold as candidate bitrate 1; if the third bitrate is less than the bitrate threshold, server device 120 sends the third bitrate to client device 110, causing client device 110 to push the live stream of the client device at the third bitrate, and repeats the above process until candidate bitrate 2 is determined.

[0090] In box 530, server device 120 determines the optimal streaming bitrate for client device 110 to stream this type of live content based on candidate streaming bitrate 1 and candidate streaming bitrate 2.

[0091] Returning to Figure 2, in box 230, server device 120 causes video data to be pushed to at least one client device at a second bitrate.

[0092] After obtaining the second bitrate, it can be determined as the push bitrate that is more suitable for the client device 120 of this model to push this type of live content during the same resolution.

[0093] In some embodiments, when the server device 120 determines a second bitrate for the client device 110, the server device 120 may send the second bitrate to the client device 110 for use by the client device 110. In some embodiments, if the process 200 is implemented at the client device 110, the client device 110 itself will determine the second bitrate and may use the second bitrate to push live content.

[0094] According to embodiments of this disclosure, the image quality value of video data can be used to determine a second bitrate suitable for or matching different types of client devices to push different types of live content during the live broadcast, based on a first bitrate corresponding to a predetermined resolution. This reduces stuttering and the cost of pushing live content while ensuring image quality.

[0095] Figure 6 shows a block diagram of an apparatus 600 for determining a bit rate according to some embodiments of the present disclosure. The apparatus 600 may be implemented as or included in server device 120 or client device 110. The various modules / components in the apparatus 600 may be implemented by hardware, software, firmware, or any combination thereof.

[0096] As shown in the figure, device 600 includes an acquisition module 610 configured to acquire video data, the video data including live content from a target client device at a predetermined resolution, the predetermined resolution corresponding to a first bitrate. Device 600 also includes a determination module 620 configured to, in response to acquiring the video data, determine a second bitrate for the video data based on the first bitrate. Device 600 further includes a push module 630 configured to push the video data to at least one client device at the second bitrate.

[0097] In some embodiments, the determining module 620 is further configured to determine a plurality of candidate bitrates for the video data based on the first bitrate; and to determine the second bitrate based on the plurality of candidate bitrates.

[0098] In some embodiments, the determining module 620 is further configured to acquire the image quality value of the video data; and to determine at least one candidate bitrate among the plurality of candidate bitrates based on the image quality value and the first bitrate.

[0099] In some embodiments, the determining module 620 is further configured to determine the first bitrate as a candidate bitrate in response to determining that the image quality value is greater than or equal to an image quality value threshold; and to determine a candidate bitrate based on the first bitrate and the bitrate threshold in response to determining that the image quality value is less than the image quality value threshold.

[0100] In some embodiments, the determining module 620 is further configured to adjust the first bitrate to a third bitrate, the third bitrate being greater than the first bitrate; and in response to determining that the third bitrate is greater than or equal to the bitrate threshold, to determine the bitrate threshold as a candidate bitrate.

[0101] In some embodiments, the apparatus 600 further includes an adjustment module configured to replace the first bitrate corresponding to the predetermined resolution with the third bitrate in response to determining that the third bitrate is less than a bitrate threshold.

[0102] In some embodiments, the determining module 620 is further configured to determine the second code rate based on the plurality of candidate code rates and the weight values ​​corresponding to each of the plurality of candidate code rates.

[0103] In some embodiments, the device 600 further includes an information acquisition module and a control module. The information acquisition module is configured to acquire configuration information for the video data, the configuration information indicating the model of the target client device, the type of the live content, and the predetermined resolution. The control module is configured to, based on the configuration information, control the target client device of the corresponding model to broadcast the live content of the corresponding type at the predetermined resolution.

[0104] Figure 7 shows a block diagram of an electronic device 700 in which one or more embodiments of the present disclosure may be implemented. It should be understood that the electronic device shown in Figure 7 is merely exemplary and should not constitute any limitation on the functionality and scope of the embodiments described herein. The server shown in Figure 7 can be used to implement the server device 120 or client device 110 of Figure 1.

[0105] As shown in Figure 7, the server is in the form of a general-purpose electronic device. Server components may include, but are not limited to, one or more processors or processing units 710, memory 720, storage electronics 730, one or more communication units 740, one or more input electronics 750, and one or more output electronics 760. The processing unit 710 may be a physical or virtual processor and is capable of performing various processes according to programs stored in memory 720. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the server's parallel processing capabilities.

[0106] Servers typically include multiple computer storage media. Such media can be any accessible media that the server can access, including but not limited to volatile and non-volatile media, removable and non-removable media. Memory 720 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. Storage electronics 730 can be removable or non-removable media and can include machine-readable media, such as flash drives, disks, or any other media that can be used to store information and / or data and can be accessed within the server.

[0107] The server may further include additional removable / non-removable, volatile / non-volatile storage media. Although not shown in Figure 7, disk drives for reading from or writing to removable, non-volatile disks (e.g., "floppy disks") and optical disk drives for reading from or writing to removable, non-volatile optical disks may be provided. In these cases, each drive may be connected to a bus (not shown) via one or more data media interfaces. Memory 720 may include computer program product 725 having one or more program modules configured to perform various methods or actions of various embodiments of this disclosure.

[0108] The communication unit 740 enables communication with other electronic devices via a communication medium. Additionally, the functionality of the server components can be implemented as a single computing cluster or multiple computing machines capable of communicating via communication connections. Therefore, the server can operate in a networked environment using logical connections to one or more other servers, network personal computers (PCs), or another network node.

[0109] Input electronic device 750 can be one or more input electronic devices, such as a mouse, keyboard, trackball, etc. Output electronic device 760 can be one or more output electronic devices, such as a monitor, speaker, printer, etc. Electronic device number 00 can also communicate with one or more external electronic devices (not shown) via communication unit 740 as needed. These external electronic devices include storage electronic devices, display electronic devices, etc., and can communicate with one or more electronic devices that enable user interaction with the server, or with any electronic device (e.g., network card, modem, etc.) that enables the server to communicate with one or more other electronic devices. Such communication can be performed via an input / output (I / O) interface (not shown).

[0110] According to an exemplary implementation of this disclosure, a computer-readable storage medium is provided that stores computer-executable instructions thereon, wherein the computer-executable instructions are executed by a processor to implement the methods described above. According to an exemplary implementation of this disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, which are executed by a processor to implement the methods described above.

[0111] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatuses, electronic devices, and computer program products implemented according to this disclosure. It should 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 computer-readable program instructions.

[0112] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other electronic equipment to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0113] Computer-readable program instructions can be loaded onto a computer, other programmable data processing apparatus, or other electronic device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other electronic device to produce a computer-implemented process, thereby causing the instructions that execute on the computer, other programmable data processing apparatus, or other electronic device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0114] 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 disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. 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 consecutive 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 the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.

[0115] Various implementations of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the various implementations disclosed herein.

Claims

1. A method for video pushing, comprising: obtaining video data, the video data comprising live content of a target client device at a predetermined resolution, the predetermined resolution corresponding to a first bitrate; in response to obtaining the video data, determining a second bitrate for the video data based on the first bitrate; and causing the video data to be pushed to at least one client device at the second bitrate. 2.The method of claim 1, wherein determining the second bitrate for the video data based on the first bitrate comprises: determining a plurality of candidate bitrates for the video data based on the first bitrate; and determining the second bitrate based on the plurality of candidate bitrates. 3.The method of claim 2, wherein determining the plurality of candidate bitrates for the video data comprises: obtaining a picture quality value of the video data; and determining at least one candidate bitrate in the plurality of candidate bitrates based on the picture quality value and the first bitrate. 4.The method of claim 3, wherein determining at least one candidate bitrate in the plurality of candidate bitrates based on the picture quality value and the first bitrate comprises: in response to determining that the picture quality value is greater than or equal to a picture quality value threshold, determining the first bitrate as a candidate bitrate; and in response to determining that the picture quality value is less than the picture quality value threshold, determining a candidate bitrate based on the first bitrate and a bitrate threshold. 5.The method of claim 4, wherein determining a candidate bitrate based on the first bitrate and a bitrate threshold comprises: adjusting the first bitrate to a third bitrate, the third bitrate being greater than the first bitrate; and in response to determining that the third bitrate is greater than or equal to the bitrate threshold, determining the bitrate threshold as a candidate bitrate. 6.The method of claim 1, further comprising: in response to determining that a third bitrate is less than a bitrate threshold, replacing the first bitrate corresponding to the predetermined resolution with the third bitrate. 7.The method of claim 2, wherein determining the second bitrate based on the plurality of candidate bitrates comprises: determining the second bitrate based on the plurality of candidate bitrates and respective weight values corresponding to the plurality of candidate bitrates. 8.The method of claim 1, further comprising: obtaining configuration information for the video data, the configuration information indicating a model of the target client device, a type of the live content, and the predetermined resolution; and based on the configuration information, controlling the target client device of the respective model to live broadcast the live content of the respective type at the predetermined resolution. 9.An apparatus for video pushing, comprising: an obtaining module configured to obtain video data, the video data comprising live content of a target client device at a predetermined resolution, the predetermined resolution corresponding to a first bitrate; a determining module configured to, in response to obtaining the video data, determine a second bitrate for the video data based on the first bitrate; and a pushing module configured to cause the video data to be pushed to at least one client device at the second bitrate. 10.An electronic device, comprising: ​ ​ ​ ​ ​ ​ ​ at least one processor; and at least one memory coupled to the at least one processor and storing instructions for execution by the at least one processor, the instructions, when executed by the at least one processor, cause the electronic device to perform the method according to any one of claims 1-8.

11. A computer-readable storage medium having computer-executable instructions stored thereon that are executable by a processor to implement the method according to any one of claims 1-8.

12. A computer program product comprising computer-executable instructions, wherein the computer-executable instructions, when executed by a processor, implement the method according to any one of claims 1-8.

Citation Information

Patent Citations

  • Method and device for increasing video definition

    CN108271071A

  • Live video processing method, system and device and terminal

    CN111601118A

  • Live stream data processing method and device, and storage medium

    CN116320523A

  • Live broadcast picture evaluation method and device, computer equipment and storage medium

    CN117979035A

  • Live broadcast definition processing method and device

    CN118264826A