Method, apparatus and related device for determining video code rate
By monitoring network status and cache information, the transmission latency and experience quality of video segments at different bitrates are predicted, and the optimal target bitrate is selected. This solves the problem of failing to control video transmission latency in adaptive bitrate control methods and achieves smooth video transmission in high-latency scenarios.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
- Filing Date
- 2024-12-31
- Publication Date
- 2026-07-24
AI Technical Summary
Existing adaptive bitrate control methods have failed to effectively control video transmission latency in high-latency video transmission scenarios, thus affecting user experience.
By monitoring network status and cache information, the transmission latency and experience quality of video segments at different bitrates are predicted, and the optimal target bitrate is selected for video transmission.
It effectively reduces video transmission latency, improves real-time data transmission capabilities, and provides a smooth, lag-free viewing and interactive experience.
Smart Images

Figure CN119865645B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of video processing technology, and in particular to a method for determining video bitrate, a device for determining video bitrate, an electronic device, a computer-readable storage medium, and a computer program product. Background Technology
[0002] In audio and video data transmission scenarios, the user's network environment is constantly changing. To ensure smooth playback of audio and video content and maintain the user's viewing experience, the video bitrate is selected based on real-time network bandwidth conditions. Based on this need, Adaptive Bitrate (ABR) control technology has emerged, which can select an appropriate video bitrate according to the user's current network conditions.
[0003] However, the ABR control method in related technologies does not consider the control of video transmission latency when constructing the Quality of Experience (QoE) optimization model. This limitation is particularly prominent in application scenarios with high requirements for video transmission latency, such as real-time interactive live streaming, online games, or remote collaboration, which seriously affects the user experience.
[0004] It should be noted that the information disclosed in the background section above is only used to enhance the understanding of the background of this disclosure, and therefore may include information that does not constitute prior art known to those skilled in the art. Summary of the Invention
[0005] This disclosure provides a method for determining video bitrate, a device for determining video bitrate, an electronic device, a computer-readable storage medium, and a computer program product to overcome or at least partially solve the above-mentioned problems.
[0006] According to one aspect of the present disclosure, a method for determining video bitrate is provided, the method comprising: acquiring network status information and cache information; in response to a video segment to be transmitted satisfying a bitrate adjustment condition, predicting transmission delay information of the video segment to be transmitted at multiple video bitrates based on the network status information and the cache information; predicting quality of experience information of the video segment to be transmitted at multiple video bitrates based on the transmission delay information of the video segment to be transmitted at multiple video bitrates; and determining a target video bitrate of the video segment to be transmitted from multiple video bitrates based on the quality of experience information of the video segment to be transmitted at multiple video bitrates.
[0007] In some embodiments of this disclosure, the cache information includes: first cache information of the terminal device and second cache information of the server; wherein, predicting the transmission delay information of the video segment to be transmitted at multiple video bitrates based on the network status information and the cache information includes: for each of the multiple video bitrates, predicting the transmission bandwidth information of the video segment to be transmitted at the video bitrate based on the network status information; determining the first transmission delay information of the video segment to be transmitted at the video bitrate based on the first cache information and the transmission bandwidth information; determining the second transmission delay information of the video segment to be transmitted at the video bitrate based on the second cache information and the transmission bandwidth information; and obtaining the transmission delay information of the video segment to be transmitted at the video bitrate based on the first transmission delay information and the second transmission delay information.
[0008] In some embodiments of this disclosure, determining the first transmission delay information of the video segment to be transmitted at the video bitrate based on the first cache information and the transmission bandwidth information includes: predicting the data volume of the video segment to be transmitted at the video bitrate based on the transmission bandwidth information; determining the transmission delay duration of the video segment to be transmitted at the video bitrate based on the first cache information, the transmission bandwidth information, and the data volume, according to a preset cache duration threshold; and using the transmission delay as the first transmission delay information.
[0009] In some embodiments of this disclosure, determining the second transmission delay information of the video segment to be transmitted at the video bitrate based on the second cache information and the transmission bandwidth information includes: predicting the remaining cache information of the server based on the second cache information and the transmission bandwidth information; the remaining cache information is the cache information after the server sends the video segment to be transmitted; in response to the remaining cache information being greater than a preset value, using the remaining cache information as the second transmission delay information; and in response to the remaining cache information being less than or equal to a preset value, determining the second transmission delay information as a preset value.
[0010] In some embodiments of this disclosure, predicting the quality of experience (QA) information of the video segment to be transmitted at multiple video bitrates based on the transmission delay information of the video segment to be transmitted at multiple video bitrates includes: for each of the multiple video bitrates, predicting the quality information and quality fluctuation information of the video segment to be transmitted at that video bitrate; and obtaining the QA information of the video segment to be transmitted at that video bitrate based on the quality information, the quality fluctuation information, and the transmission delay information.
[0011] In some embodiments of this disclosure, after determining the target video bitrate of the video segment to be transmitted from multiple video bitrates based on the quality of experience information of the video segment to be transmitted at multiple video bitrates, the method further includes: in response to the target video bitrate being the same as the current video bitrate, transmitting the video segment to be transmitted according to the current video bitrate; in response to the target video bitrate being different from the current video bitrate, finding a key video frame corresponding to the video segment to be transmitted; and based on the key video frame, switching the current video bitrate to the target video bitrate, and transmitting the video segment to be transmitted according to the target video bitrate.
[0012] In some embodiments of this disclosure, the video segment to be transmitted satisfies the bitrate adjustment condition, including: the segmentation information or transmission time of the video segment to be transmitted reaches a preset bitrate adjustment period.
[0013] According to another aspect of the present disclosure, a video bitrate determination apparatus is provided, the apparatus comprising: an information acquisition module configured to acquire network status information and cache information; a quality prediction module configured to, in response to a video segment to be transmitted meeting a bitrate adjustment condition, predict transmission delay information of the video segment to be transmitted at multiple video bitrates based on the network status information and the cache information; predict the quality of experience information of the video segment to be transmitted at multiple video bitrates based on the transmission delay information of the video segment to be transmitted at multiple video bitrates; and a bitrate determination module configured to determine a target video bitrate of the video segment to be transmitted from multiple video bitrates based on the quality of experience information of the video segment to be transmitted at multiple video bitrates.
[0014] In some embodiments of this disclosure, the cache information includes: first cache information of the terminal device and second cache information of the server; wherein, the quality prediction module is further configured to: for each of the plurality of video bitrates, predict the transmission bandwidth information of the video segment to be transmitted at the video bitrate based on the network status information; determine the first transmission delay information of the video segment to be transmitted at the video bitrate based on the first cache information and the transmission bandwidth information; determine the second transmission delay information of the video segment to be transmitted at the video bitrate based on the second cache information and the transmission bandwidth information; and obtain the transmission delay information of the video segment to be transmitted at the video bitrate based on the first transmission delay information and the second transmission delay information.
[0015] In some embodiments of this disclosure, the quality prediction module is further configured to: predict the amount of data of the video segment to be transmitted at the video bitrate based on the transmission bandwidth information; determine the transmission delay duration of the video segment to be transmitted at the video bitrate based on the first cache information, the transmission bandwidth information and the amount of data, according to a preset cache duration threshold; and use the transmission delay as the first transmission delay information.
[0016] In some embodiments of this disclosure, the quality prediction module is further configured to: predict the remaining cache information of the server based on the second cache information and the transmission bandwidth information; the remaining cache information is the cache information after the server sends the video segments to be transmitted; in response to the remaining cache information being greater than a preset value, use the remaining cache information as the second transmission delay information; in response to the remaining cache information being less than or equal to a preset value, determine the second transmission delay information as a preset value.
[0017] In some embodiments of this disclosure, the quality prediction module is further configured to: for each of the plurality of video bitrates, predict the quality information of the video segment to be transmitted at the video bitrate and the quality fluctuation information of the video segment to be transmitted at the video bitrate; and obtain the experience quality information of the video segment to be transmitted at the video bitrate based on the quality information of the video segment to be transmitted at the video bitrate, the quality fluctuation information of the video segment to be transmitted at the video bitrate, and the transmission delay information of the video segment to be transmitted at the video bitrate.
[0018] In some embodiments of this disclosure, the apparatus further includes a video transmission module configured to: transmit the video segment to be transmitted according to the current video bitrate in response to the target video bitrate being the same as the current video bitrate; locate the key video frame corresponding to the video segment to be transmitted in response to the target video bitrate being different from the current video bitrate; and switch the current video bitrate to the target video bitrate based on the key video frame, and transmit the video segment to be transmitted according to the target video bitrate.
[0019] In some embodiments of this disclosure, the video segment to be transmitted satisfies the bitrate adjustment condition, including: the segmentation information or transmission time of the video segment to be transmitted reaches a preset bitrate adjustment period.
[0020] According to another aspect of the present disclosure, an electronic device is provided, including: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to execute the executable instructions to implement the video bitrate determination method described above.
[0021] According to another aspect of the present disclosure, a computer-readable storage medium is provided that, when the instructions in the computer-readable storage medium are executed by a processor of an electronic device, enables the electronic device to perform the video bitrate determination method described above.
[0022] According to another aspect of the present disclosure, a computer program product is provided, including a computer program that, when executed by a processor, implements the above-described method for determining the video bitrate.
[0023] The video bitrate determination method provided in this disclosure monitors network status information and cache information. When it is determined that the video segment to be transmitted meets the bitrate adjustment conditions, the transmission delay information of the video segment to be transmitted at multiple video bitrates is predicted based on the network status information and cache information. Then, the predicted transmission delay information is used to further predict the experience quality information of the video segment to be transmitted at multiple video bitrates. Finally, based on the predicted experience quality information, a target video bitrate suitable for the video segment to be transmitted is selected from multiple video bitrates. This method, by predicting the transmission delay of the video segment to be transmitted at different video bitrates and selecting a target video bitrate that balances video quality and transmission delay, overcomes the limitation of the ABR control method, which does not consider video transmission delay control. It is suitable for application scenarios with high requirements for video transmission delay. Data transmission based on the target video bitrate can effectively reduce data transmission delay and improve real-time data transmission capabilities, thereby providing users with a smoother, lag-free viewing and interactive experience.
[0024] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. Attached Figure Description
[0025] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure. It is obvious that the drawings described below are merely some embodiments of this disclosure, and those skilled in the art can obtain other drawings based on these drawings without any inventive effort.
[0026] Figure 1 A schematic diagram of an exemplary system architecture for determining video bitrate, to which embodiments of the present disclosure can be applied, is shown;
[0027] Figure 2 A flowchart illustrating a method for determining video bitrate according to an embodiment of this disclosure is shown;
[0028] Figure 3 A flowchart illustrating the prediction of transmission delay information in a video bitrate determination method according to an embodiment of the present disclosure is shown.
[0029] Figure 4 A flowchart illustrating data transmission based on a target video bitrate, according to an embodiment of this disclosure, is shown.
[0030] Figure 5 A block diagram of a video bitrate determination apparatus according to an embodiment of the present disclosure is shown;
[0031] Figure 6 A schematic diagram of the structure of an electronic device according to an embodiment of the present disclosure is shown. Detailed Implementation
[0032] 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 embodiments set forth herein; rather, they are provided so that this disclosure will be thorough and complete, and will fully convey the concept of the exemplary embodiments to those skilled in the art. The same reference numerals in the drawings denote the same or similar parts, and therefore repeated descriptions of them will be omitted.
[0033] The features, structures, or characteristics described in this disclosure 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 disclosure. However, those skilled in the art will recognize that the technical solutions of this disclosure can be practiced with one or more specific details omitted, 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 disclosure.
[0034] The collection, updating, analysis, processing, use, transmission, and storage of user personal information disclosed herein comply with relevant laws and regulations, are used for legitimate purposes, and do not violate public order and good morals. Necessary measures are taken to prevent unauthorized access to user personal information data and to safeguard user personal information security, network security, and national security.
[0035] The accompanying drawings are merely illustrative of this disclosure, and the same reference numerals in the drawings denote the same or similar parts, thus omitting repeated descriptions of them. Some block diagrams shown in the drawings do not necessarily correspond to physically or logically independent entities. These functional entities may be implemented in software, in at least one hardware module or integrated circuit, or in different network and / or processor devices and / or microcontroller devices.
[0036] The flowchart shown in the accompanying drawings is merely illustrative and does not necessarily include all content and steps, nor does it require execution in the described order. For example, some steps may be broken down, while others may be combined or partially combined; therefore, the actual execution order may change depending on the specific circumstances.
[0037] In this specification, the terms “a,” “one,” “the,” “the,” and “at least one” are used to indicate the presence of at least one element / component / etc.; the term “multiple” refers to two or more; the terms “comprising,” “including,” and “having” are used to indicate an open-ended inclusion meaning and that other elements / components / etc. may exist in addition to the listed elements / components / etc.; the terms “first,” “second,” and “third,” etc., are used only as markings and are not a limitation on the number of objects.
[0038] Figure 1 A schematic diagram of an exemplary system architecture for determining video bitrate, to which embodiments of the present disclosure can be applied, is shown.
[0039] like Figure 1As shown, the system architecture may include server 101, network 102, and terminal device 103. Network 102 serves as the medium for providing a communication link between terminal device 103 and server 101. Network 102 may include various connection types, such as wired or wireless communication links or fiber optic cables, etc.
[0040] In an exemplary embodiment, the terminal device 103 that transmits data with the server 101 may include, but is not limited to, mobile devices such as smartphones, tablets, and laptops, as well as terminal devices with specific functions or forms such as smart speakers, digital assistants, AR (Augmented Reality) devices, VR (Virtual Reality) devices, and smart wearable devices. Alternatively, the terminal device 103 may also be a personal computer, such as a laptop computer or a desktop computer. Optionally, the operating system running on the electronic device may include, but is not limited to, Android, iOS, Linux, and Windows.
[0041] Server 101 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms. In some practical applications, server 101 can also be a server for a network platform, such as a trading platform, live streaming platform, social platform, or audio platform, etc., which is not limited in this embodiment. The server can be a single server or a cluster of multiple servers; the specific architecture of the server is not limited in this disclosure.
[0042] In addition, it should be noted that, Figure 1 The example shown is merely one application scenario of the video bitrate determination method provided in this disclosure. Figure 1 The number of terminal devices 103, networks 102 and servers 101 in the diagram is merely illustrative. Depending on actual needs, there can be any number of terminal devices, networks and servers.
[0043] Figure 2 A flowchart illustrating a method for determining video bitrate according to an embodiment of this disclosure is shown. Figure 2 In this embodiment, the subject executing the method can be any electronic device with data processing and transmission capabilities, such as... Figure 1 Server 101 in the embodiment, for example Figure 1The server 101 and terminal device 103 in this embodiment jointly implement the method for determining the video bitrate, but this disclosure is not limited thereto. See also... Figure 2 The determination of video bitrate provided in this embodiment includes the following steps.
[0044] Step S210: Obtain network status information and cache information.
[0045] In this embodiment, network status information refers to the status information of the transmission link between the server and the terminal device. This information may include parameters such as network throughput, latency, and jitter, reflecting the current network transmission capacity and is crucial for predicting video transmission latency and assessing video quality fluctuations. Caching information characterizes the caching status of the server and terminal device, and is important for evaluating video transmission efficiency and user experience.
[0046] In some embodiments, the server can monitor network status information and cache information in real time. The terminal device can periodically report its cache information to the server so that the server can use this information when determining the video bitrate.
[0047] Step S220: In response to the video segment to be transmitted meeting the bitrate adjustment conditions, the transmission delay information of the video segment to be transmitted at multiple video bitrates is predicted based on network status information and cache information.
[0048] In this context, a video can be viewed as a collection of multiple video segments, each containing a portion of the video content. These segments can be sequentially reassembled into a complete video during playback. Each video segment is further composed of one or more video frames, which are the basic building blocks of a video, containing both video images and sound information.
[0049] In this embodiment of the disclosure, video segments are the basic units in video transmission, used to achieve the step-by-step sending and receiving of video data. The video segment to be transmitted refers to the video segment that currently needs to be transmitted.
[0050] In this embodiment of the disclosure, multiple video bitrates refer to pre-set bitrates, with different bitrates corresponding to different video resolutions. For example, multiple video bitrates include, but are not limited to, 360Kbps, 550Kbps, 1200Kbps, or 2000Kbps, with corresponding video resolutions such as smooth, standard definition, high definition, or 2K. Transmission delay information refers to information used to characterize the transmission delay between the server and the terminal device.
[0051] In step S220, it is determined whether the video segment to be transmitted meets the bitrate adjustment conditions. If the video segment to be transmitted meets the bitrate adjustment conditions, the transmission delay information of the video segment to be transmitted at multiple video bitrates is predicted based on network status information and cache information. Here, the transmission delay information of the video segment to be transmitted at multiple video bitrates refers to the transmission delay information of the video segment to be transmitted at each of the multiple video bitrates.
[0052] Among multiple video bitrates, each bitrate corresponds to a different data transmission rate and compression efficiency. Therefore, transmitting the video segment to be transmitted at different video bitrates will result in different transmission delay information. By predicting this transmission delay information, the transmission performance of the video segment to be transmitted at different video bitrates can be evaluated.
[0053] In some embodiments of this disclosure, the video segment to be transmitted meets the bitrate adjustment conditions, including: the segmentation information or transmission time of the video segment to be transmitted reaches a preset bitrate adjustment period.
[0054] In this embodiment of the disclosure, the segment information of the video segment to be transmitted refers to data information related to the video segment, such as the sequence number of the video segment. In an exemplary embodiment, the preset bitrate adjustment period can be a threshold number used to trigger the bitrate adjustment mechanism. For example, the bitrate adjustment mechanism is set to trigger for each video segment, that is, for each video segment to be transmitted, the bitrate adjustment mechanism is triggered before data transmission of the video segment to be transmitted, to determine an optimal target video bitrate for the video segment to be transmitted.
[0055] In one possible implementation, the video segment to be transmitted includes a video frame, and the segmentation information of the video segment to be transmitted is the frame sequence number of that video frame. That is, before transmitting data for each video frame, it is determined whether a preset bitrate adjustment period has been reached based on the frame sequence number of that video frame. In this case, the preset bitrate adjustment period can be a threshold number used to trigger the bitrate adjustment mechanism. For example, the bitrate adjustment mechanism is set to trigger every 10 video frames. Before transmitting data for the video frame with frame sequence number 8, it is determined that the bitrate adjustment mechanism will not be triggered, but before transmitting data for the video frame with frame sequence number 11, the bitrate adjustment mechanism will be triggered, and an optimal target video bitrate is determined for that video frame.
[0056] In an exemplary embodiment, the preset bitrate adjustment period can be a time interval used to trigger the bitrate adjustment mechanism. For example, the bitrate adjustment mechanism can be set to trigger every 5 minutes. During video transmission, every 5-minute interval, a determination is made to adjust the bitrate of the currently transmitted video segment.
[0057] In the video bitrate determination method of this disclosure, the segmentation information or transmission time of the video segment to be transmitted is analyzed, and it is determined whether a preset bitrate adjustment period (which can be a threshold based on the number or a time interval) has been reached, thereby intelligently triggering the bitrate adjustment mechanism. This mechanism can ensure that the optimal target video bitrate is selected for the video segment to be transmitted according to the video transmission requirements during the video transmission process.
[0058] Step S230: Based on the transmission delay information of the video segment to be transmitted at multiple video bitrates, predict the experience quality information of the video segment to be transmitted at multiple video bitrates.
[0059] In this embodiment of the disclosure, after predicting the transmission delay information of the video segment to be transmitted at multiple video bitrates, the experience quality information of the video segment to be transmitted at multiple video bitrates is further predicted based on this transmission delay information.
[0060] Among these, the quality of experience (QA) information is a comprehensive indicator that considers multiple factors, such as transmission latency, video quality (e.g., resolution, frame rate), quality fluctuations, and stuttering rate. The QA information of the video segment to be transmitted at multiple video bitrates refers to the QA information of the video segment to be transmitted at each of the multiple video bitrates.
[0061] Step S240: Based on the experience quality information of the video segment to be transmitted at multiple video bitrates, determine the target video bitrate of the video segment to be transmitted from the multiple video bitrates.
[0062] In this embodiment of the disclosure, the quality of experience (QA) information of the video segment to be transmitted at each of the multiple video bitrates is used to represent the quality of the viewing experience that a user may obtain under the transmission conditions of that bitrate. The QA information of the video segment to be transmitted at each of the multiple video bitrates is compared and analyzed to select the optimal target video bitrate for the video segment to be transmitted from the multiple video bitrates.
[0063] In an exemplary embodiment, the experience quality information is a quality score value. The maximum value is selected from the quality score values of the video segment to be transmitted at each video bitrate, and the video bitrate corresponding to the maximum value is determined to be the target video bitrate of the video segment to be transmitted.
[0064] The video bitrate determination method provided in this disclosure monitors network status information and cache information. When it is determined that the video segment to be transmitted meets the bitrate adjustment conditions, the transmission delay information of the video segment to be transmitted at multiple video bitrates is predicted based on the network status information and cache information. Then, the predicted transmission delay information is used to further predict the experience quality information of the video segment to be transmitted at multiple video bitrates. Finally, based on the predicted experience quality information, a target video bitrate suitable for the video segment to be transmitted is selected from multiple video bitrates. This method, by predicting the transmission delay of the video segment to be transmitted at different video bitrates and selecting a target video bitrate that balances video quality and transmission delay, overcomes the limitation of the ABR control method, which does not consider video transmission delay control. It is suitable for application scenarios with high requirements for video transmission delay. Data transmission based on the target video bitrate can effectively reduce data transmission delay and improve real-time data transmission capabilities, thereby providing users with a smoother, lag-free viewing and interactive experience.
[0065] Figure 3 A flowchart illustrating the prediction of transmission delay information in a video bitrate determination method according to an embodiment of the present disclosure is shown. Figure 3 The embodiment illustrates the process of determining the transmission delay information of the video fragment to be transmitted at each video bitrate, which may include the following steps.
[0066] Step S310: For each video bitrate among multiple video bitrates, predict the transmission bandwidth information of the video segment to be transmitted at that video bitrate based on the network status information.
[0067] In this embodiment of the disclosure, the transmission bandwidth information refers to the capacity or rate of the data transmission channel, which determines the speed at which data is transmitted from the sending end to the receiving end. For each video bitrate, based on network status information, the transmission bandwidth that the video segment to be transmitted can obtain when that video bitrate is selected is predicted.
[0068] In an exemplary embodiment, the transmission bandwidth information of the video segment to be transmitted at each video bitrate can be predicted based on network status information and by analyzing information such as the transmission data volume and transmission time of historical video segments. Here, historical video segments refer to video segments transmitted before the video segment to be transmitted, such as the previous video segment of the video segment to be transmitted.
[0069] Step S320: Based on the first buffer information and the transmission bandwidth information, determine the first transmission delay information of the video segment to be transmitted at the video bitrate.
[0070] In this embodiment of the disclosure, the cache information includes first cache information of the terminal device, which is used to indicate the cache status of the terminal device. In step S320, the first transmission delay information of the video segment to be transmitted at the video bitrate is determined based on the first cache information and the transmission bandwidth information. Since the first transmission delay information reflects the cache status of the terminal device, the first transmission delay information can also be referred to as the transmission delay information of the terminal device at the video bitrate, that is, the transmission delay information of the receiving end at the video bitrate.
[0071] In some embodiments of this disclosure, determining the first transmission delay information of the video segment to be transmitted at the video bitrate based on the first cache information and transmission bandwidth information includes: predicting the data volume of the video segment to be transmitted at the video bitrate based on the transmission bandwidth information; determining the transmission delay duration of the video segment to be transmitted at the video bitrate based on the first cache information, transmission bandwidth information, and data volume according to a preset cache duration threshold; and using the transmission delay as the first transmission delay information.
[0072] In this embodiment of the disclosure, the video segment to be transmitted includes K video frames, the transmission bandwidth information of the video segment to be transmitted at the video bitrate includes the transmission bandwidth of each video frame when transmitted at the video bitrate, and the data amount of the video segment to be transmitted at the video bitrate includes the data amount of each video frame when transmitted at the video bitrate.
[0073] In this embodiment of the disclosure, the first cache information is the buffer usage when the terminal device receives the video fragment to be transmitted, which may include the buffer usage when the terminal device receives each video frame.
[0074] The formula for calculating the first transmission delay information of the video segment to be transmitted at this video bitrate is as follows:
[0075]
[0076] In formula (1), QoE_1 represents the first transmission delay information of the video segment to be transmitted at the video bitrate R, and C k+1 d(R) represents the transmission bandwidth information of the (k+1)th video frame at the video bitrate R. k+1 Let B be the data size of the (k+1)th video frame at the given video bitrate R. k+1 This represents the buffer size used by the terminal device when receiving the (k+1)th video frame. `target_jitter_buf` is a preset buffer duration threshold, i.e., the minimum buffer duration for the terminal device. This threshold is set to prevent stuttering when the terminal device receives data.
[0077] In formula (1), This corresponds to the calculation process of the transmission delay time when the (k+1)th video frame is transmitted at the video bitrate R, where, This represents the time required from the current buffer state to receiving the (k+1)th video frame. The absolute value after subtracting target_jitter_buf represents the deviation from the preset buffer duration threshold.
[0078] In this embodiment of the disclosure, by comprehensively considering factors such as transmission bandwidth, data volume, buffer occupancy (first cache information) and preset cache duration threshold, the transmission delay that the terminal device may experience during the process of receiving video segments at the video bitrate is quantitatively described, thereby accurately characterizing the transmission delay of the terminal device at that video bitrate.
[0079] Step S330: Based on the second buffer information and the transmission bandwidth information, determine the second transmission delay information of the video segment to be transmitted at the video bitrate.
[0080] In this embodiment of the disclosure, the cache information includes second cache information of the server, which is used to indicate the server's cache status. In step S330, based on the second cache information and the transmission bandwidth information, the second transmission delay information of the video segment to be transmitted at the video bitrate is determined. Since the second transmission delay information reflects the server's cache status, the second transmission delay information can also be called the server-side transmission delay information, that is, the transmission delay information of the sending end.
[0081] In some embodiments of this disclosure, determining the second transmission delay information of the video segment to be transmitted at the video bitrate based on the second cache information and transmission bandwidth information includes: predicting the remaining cache information of the server based on the second cache information and transmission bandwidth information, wherein the remaining cache information is the cache information after the server sends the video segment to be transmitted; in response to the remaining cache information being greater than a preset value, using the remaining cache information as the second transmission delay information; and in response to the remaining cache information being less than or equal to the preset value, determining the second transmission delay information as the preset value.
[0082] In this embodiment of the disclosure, the video segment to be transmitted includes K video frames, and the transmission bandwidth information of the video segment to be transmitted at the video bitrate includes the transmission bandwidth of each video frame when transmitted at the video bitrate. The calculation formula for the second transmission delay information of the video segment to be transmitted at the video bitrate is as follows:
[0083]
[0084] In formula (2), QoE_2 represents the second transmission delay information of the video segment to be transmitted at the video bitrate R, and C k+1 b(R) represents the transmission bandwidth information of the (k+1)th video frame at the video bitrate R. k+1C k+1 The server uses the video bitrate R and transmission bandwidth C. k+1 The buffer information consumed when sending the (k+1)th video frame, b now b(R) is the server's current cache. k+1 C k+1 )+b now This represents the remaining buffer information after the server sends the (k+1)th video frame.
[0085] As can be seen from formula (2), if the preset value is set to 0, and it is predicted that the remaining buffer information after the server sends the (k+1)th video frame is less than 0, then the second transmission delay information corresponding to the (k+1)th video frame is directly set to 0, that is, it is no longer included in the transmission delay information.
[0086] In this embodiment of the disclosure, the remaining buffer information (non-negative value) after the server sends video frames at the video bitrate is used as a measure of the second transmission delay information. The lower the value, the smaller the transmission delay. This quantitatively describes the transmission delay that the server may generate during the process of sending video segments at the video bitrate, thereby accurately characterizing the transmission delay of the server at the video bitrate.
[0087] Step S340: Based on the first transmission delay information and the second transmission delay information, obtain the transmission delay information of the video segment to be transmitted at the video bitrate.
[0088] In this embodiment, the first transmission delay information is the first transmission delay information of the video segment to be transmitted at the video bitrate, i.e., the transmission delay information on the terminal device side; the second transmission delay information is the second transmission delay information of the video segment to be transmitted at the video bitrate, i.e., the transmission delay information on the server side. Combining the first and second transmission delay information, the overall transmission delay information of the video segment to be transmitted at the video bitrate is obtained, such that the overall transmission delay information covers both the transmission delay information at the receiving end and the delay information at the sending end.
[0089] In some embodiments of this disclosure, based on the transmission delay information of the video segment to be transmitted at multiple video bitrates, the experience quality information of the video segment to be transmitted at multiple video bitrates is predicted, including: for each of the multiple video bitrates, predicting the quality information and quality fluctuation information of the video segment to be transmitted at that video bitrate; and obtaining the experience quality information of the video segment to be transmitted at that video bitrate based on the quality information, the quality fluctuation information, and the transmission delay information.
[0090] In this embodiment of the disclosure, when analyzing each video bitrate to predict the experience quality information at that bitrate, in addition to considering the transmission delay information at that bitrate, the quality information and quality fluctuation information at that bitrate are also considered. The calculation formula is as follows:
[0091]
[0092] In formula (3), q(R) represents the quality of experience information of the video segment to be transmitted at a video bitrate R. k+1 ) represents the quality information of the (k+1)th video frame at the given video bitrate R, |q(R) k+1 )-q(R k The quality variation of the (k+1)th and kth video frames at the video bitrate R is the quality fluctuation information. QoE_1 represents the first transmission delay information of the video segment to be transmitted at the video bitrate R, and QoE_2 represents the second transmission delay information of the video segment to be transmitted at the video bitrate R.
[0093] In formula (3), λ, μ, and η are non-negative weighted parameters corresponding to changes in video quality, transmission delay at the receiving end, and transmission delay at the sending end, respectively. Their values can be set according to specific needs or empirical values.
[0094] In the video bitrate determination method provided in this disclosure embodiment, during the calculation of experience quality information for each video bitrate, the quality information, quality fluctuation information, transmission delay information of the receiving end and transmission delay information of the sending end under that video bitrate are considered, so that the experience quality information can comprehensively and flexibly evaluate and predict the user's experience when watching the video, thereby providing more accurate evaluation results.
[0095] Figure 4 A flowchart illustrating data transmission based on a target video bitrate, according to an embodiment of this disclosure, is shown. (Refer to...) Figure 4 Data transmission based on a target video bitrate may include the following steps.
[0096] Step S410: Determine whether the target video bitrate is the same as the current video bitrate.
[0097] Step S420: If the target video bitrate is the same as the current video bitrate, then transmit the video segment to be transmitted according to the current video bitrate.
[0098] Step S430: If the target video bitrate is different from the current video bitrate, then find the key video frame corresponding to the video segment to be transmitted.
[0099] Step S440: Based on the key video frame, switch the current video bitrate to the target video bitrate, and transmit the video segments to be transmitted according to the target video bitrate.
[0100] In this embodiment of the disclosure, the current video bitrate refers to the bitrate currently used for transmitting the video. After determining the target video bitrate for the video segment to be transmitted, it is determined whether the target video bitrate is the same as the current video bitrate. If they are the same, it means that there is no need to switch the bitrate, and the video segment to be transmitted continues to be transmitted at the current video bitrate. If they are different, it means that a bitrate switch is required. In order to achieve a smooth transition, the key video frame in the video segment to be transmitted is found, and the bitrate is switched when the next key video frame arrives, so that the video segment to be transmitted is transmitted at the target video bitrate.
[0101] When transmitting video segments, by determining whether the target video bitrate is the same as the current video bitrate, and performing smooth bitrate switching based on key video frames under different circumstances, video transmission efficiency can be optimized, ensuring video quality while adapting to different network conditions.
[0102] It is understood that the same / similar parts between the various embodiments of the methods described above in this specification can be referred to each other. Each embodiment focuses on the differences from other embodiments, and relevant parts can be referred to the description of other method embodiments.
[0103] Figure 5 A block diagram of a video bitrate determination apparatus according to an embodiment of the present disclosure is shown. Figure 5 As shown, the device 500 includes: an information acquisition module 510, a quality prediction module 520, and a bit rate determination module 530.
[0104] The information acquisition module 510 is configured to acquire network status information and cache information. The quality prediction module 520 is configured to, in response to the video segment to be transmitted meeting the bitrate adjustment conditions, predict the transmission delay information of the video segment to be transmitted at multiple video bitrates based on the network status information and cache information; and predict the experience quality information of the video segment to be transmitted at multiple video bitrates based on the transmission delay information of the video segment to be transmitted at multiple video bitrates. The bitrate determination module 530 is configured to, based on the experience quality information of the video segment to be transmitted at multiple video bitrates, determine the target video bitrate of the video segment to be transmitted from multiple video bitrates.
[0105] In some embodiments of this disclosure, the cache information includes: first cache information of the terminal device and second cache information of the server. The quality prediction module 520 is further configured to: for each of a plurality of video bitrates, predict the transmission bandwidth information of the video segment to be transmitted at the video bitrate based on network status information; determine the first transmission delay information of the video segment to be transmitted at the video bitrate based on the first cache information and the transmission bandwidth information; determine the second transmission delay information of the video segment to be transmitted at the video bitrate based on the second cache information and the transmission bandwidth information; and obtain the transmission delay information of the video segment to be transmitted at the video bitrate based on the first transmission delay information and the second transmission delay information.
[0106] In some embodiments of this disclosure, the quality prediction module 520 is further configured to: predict the amount of data of the video segment to be transmitted at the video bitrate based on the transmission bandwidth information; determine the transmission delay duration of the video segment to be transmitted at the video bitrate based on the first cache information, transmission bandwidth information and data amount, according to a preset cache duration threshold; and use the transmission delay as the first transmission delay information.
[0107] In some embodiments of this disclosure, the quality prediction module 520 is further configured to: predict the remaining cache information of the server based on the second cache information and the transmission bandwidth information; the remaining cache information is the cache information after the server sends the video segments to be transmitted; in response to the remaining cache information being greater than a preset value, use the remaining cache information as the second transmission delay information; in response to the remaining cache information being less than or equal to the preset value, determine the second transmission delay information as the preset value.
[0108] In some embodiments of this disclosure, the quality prediction module 520 is further configured to: for each of a plurality of video bitrates, predict the quality information of the video segment to be transmitted at the video bitrate and the quality fluctuation information of the video segment to be transmitted at the video bitrate; and obtain the experience quality information of the video segment to be transmitted at the video bitrate based on the quality information of the video segment to be transmitted at the video bitrate, the quality fluctuation information of the video segment to be transmitted at the video bitrate and the transmission delay information of the video segment to be transmitted at the video bitrate.
[0109] In some embodiments of this disclosure, such as Figure 5 As shown, the device 500 also includes a video transmission module 540, configured to: transmit video segments to be transmitted according to the current video bitrate in response to the target video bitrate being the same as the current video bitrate; locate the key video frame corresponding to the video segment to be transmitted in response to the target video bitrate being different from the current video bitrate; and switch the current video bitrate to the target video bitrate based on the key video frame, and transmit the video segments to be transmitted according to the target video bitrate.
[0110] In some embodiments of this disclosure, the video segment to be transmitted meets the bitrate adjustment conditions, including: the segmentation information or transmission time of the video segment to be transmitted reaches a preset bitrate adjustment period.
[0111] Regarding the apparatus in the above embodiments, the specific manner in which each unit performs its operation has been described in detail in the embodiments related to the method, and will not be elaborated upon here.
[0112] Figure 6 A schematic diagram of the structure of an electronic device according to an embodiment of the present disclosure is shown. It should be noted that... Figure 6 The electronic device 600 shown is merely an example and should not be construed as limiting the functionality and scope of use of the embodiments disclosed herein.
[0113] like Figure 6 As shown, the electronic device 600 is manifested in the form of a general-purpose computing device. The components of the electronic device 600 may include, but are not limited to: at least one processing unit 610, at least one storage unit 620, and a bus 630 connecting different system components (including storage unit 620 and processing unit 610).
[0114] The storage unit stores program code that can be executed by the processing unit 610, causing the processing unit 610 to perform the steps described in the "Exemplary Methods" section of this specification according to various exemplary embodiments of the present invention. For example, the processing unit 610 can perform actions such as... Figure 2 The steps are shown in the figure.
[0115] Storage unit 620 may include a readable medium in the form of a volatile storage unit, such as random access memory (RAM) 6201 and / or cache memory 6202, and may further include a read-only memory (ROM) 6203.
[0116] Storage unit 620 may also include a program / utility 6204 having a set (at least one) program module 6205, such program module 6205 including but not limited to: operating system, one or more application programs, other program modules and program data, each or some combination of these examples may include an implementation of a network environment.
[0117] Bus 630 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local bus using any of the various bus structures.
[0118] Electronic device 600 can also communicate with one or more external devices 700 (e.g., keyboard, pointing device, Bluetooth device, etc.), and with one or more devices that enable a user to interact with electronic device 600, and / or with any device that enables electronic device 600 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 650. Furthermore, electronic device 600 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 640. As shown, network adapter 640 communicates with other modules of electronic device 600 via bus 630. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with electronic device 600, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0119] In exemplary embodiments of this disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the methods described above is stored. In some possible embodiments, various aspects of the invention may also be implemented as a program product comprising program code that, when the program product is run on a terminal device, causes the terminal device to perform the steps of the various exemplary embodiments of the invention described in the "Exemplary Methods" section of this specification.
[0120] According to embodiments of the present invention, a program product for implementing the above-described method may employ a portable compact disc read-only memory (CD-ROM) and include program code, and may run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto. In this document, a readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution system, apparatus, or device.
[0121] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may 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 readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0122] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting programs for use by or in conjunction with an instruction execution system, apparatus, or device.
[0123] The program code contained on the readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.
[0124] Program code for performing the operations of this invention can be written in any combination of one or more programming languages, including object-oriented programming languages such as Java and C++, and conventional procedural programming languages such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).
[0125] 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 embodiments of this disclosure, 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.
[0126] Furthermore, although the steps of the method in this disclosure 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 a step may be broken down into multiple steps.
[0127] From 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 disclosure 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, mobile terminal, or network device, etc.) to execute the methods according to the embodiments of this disclosure.
[0128] Other embodiments of this disclosure 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 disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered illustrative only, and the true scope and spirit of this disclosure are indicated by the appended claims.
[0129] It should be understood that this disclosure is not limited to the precise structures 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 disclosure is limited only by the appended claims.
Claims
1. A method for determining video bitrate, characterized in that, The method includes: Obtain network status information and cache information; In response to the video segment to be transmitted meeting the bitrate adjustment condition, the transmission delay information of the video segment to be transmitted at multiple video bitrates is predicted based on the network status information and the cache information. Based on the transmission delay information of the video segment to be transmitted at multiple video bitrates, predict the experience quality information of the video segment to be transmitted at multiple video bitrates; Based on the quality of experience information of the video segment to be transmitted at multiple video bitrates, the target video bitrate of the video segment to be transmitted is determined from the multiple video bitrates. The cache information includes: first cache information of the terminal device and second cache information of the server; The step of predicting the transmission delay information of the video segment to be transmitted at multiple video bitrates based on the network status information and the cache information includes: for each of the multiple video bitrates, predicting the transmission bandwidth information of the video segment to be transmitted at the video bitrate based on the network status information; determining the first transmission delay information of the video segment to be transmitted at the video bitrate based on the first cache information and the transmission bandwidth information, wherein the first transmission delay information represents the transmission delay information at the receiving end; determining the second transmission delay information of the video segment to be transmitted at the video bitrate based on the second cache information and the transmission bandwidth information, wherein the second transmission delay information represents the transmission delay information at the sending end; and obtaining the transmission delay information of the video segment to be transmitted at the video bitrate based on the first transmission delay information and the second transmission delay information.
2. The method according to claim 1, characterized in that, The step of determining the first transmission delay information of the video segment to be transmitted at the video bitrate based on the first cache information and the transmission bandwidth information includes: Based on the transmission bandwidth information, predict the data volume of the video segment to be transmitted at the video bitrate; Based on a preset cache duration threshold, the transmission delay duration of the video segment to be transmitted at the video bitrate is determined according to the first cache information, the transmission bandwidth information, and the data volume. The transmission delay duration is used as the first transmission delay information.
3. The method according to claim 1, characterized in that, The step of determining the second transmission delay information of the video segment to be transmitted at the video bitrate based on the second cache information and the transmission bandwidth information includes: Based on the second cache information and the transmission bandwidth information, the remaining cache information of the server is predicted; the remaining cache information is the cache information after the server sends the video to be transmitted in segments. In response to the remaining cache information being greater than a preset value, the remaining cache information is used as the second transmission delay information; In response to the remaining cache information being less than or equal to a preset value, the second transmission delay information is determined to be a preset value.
4. The method according to any one of claims 1 to 3, characterized in that, The step of predicting the quality of experience information of the video segment to be transmitted at multiple video bitrates based on the transmission delay information of the video segment to be transmitted at multiple video bitrates includes: For each of the plurality of video bitrates, predict the quality information of the video segment to be transmitted at that video bitrate and the quality fluctuation information of the video segment to be transmitted at that video bitrate; Based on the quality information of the video segment to be transmitted at the video bitrate, the quality fluctuation information of the video segment to be transmitted at the video bitrate, and the transmission delay information of the video segment to be transmitted at the video bitrate, the experience quality information of the video segment to be transmitted at the video bitrate is obtained.
5. The method according to claim 1, characterized in that, After determining the target video bitrate of the video segment to be transmitted from multiple video bitrates based on the quality of experience information of the video segment to be transmitted at multiple video bitrates, the method further includes: In response to the target video bitrate being the same as the current video bitrate, the video segment to be transmitted is transmitted according to the current video bitrate; In response to the difference between the target video bitrate and the current video bitrate, a key video frame corresponding to the video segment to be transmitted is located; based on the key video frame, the current video bitrate is switched to the target video bitrate, and the video segment to be transmitted is transmitted according to the target video bitrate.
6. The method according to claim 1, characterized in that, The video segment to be transmitted meets the bitrate adjustment conditions, including: the segment information or transmission time of the video segment to be transmitted reaches a preset bitrate adjustment period.
7. A device for determining video bitrate, characterized in that, The device includes: The information acquisition module is configured to acquire network status information and cache information; The quality prediction module is configured to, in response to a video segment to be transmitted meeting a bitrate adjustment condition, predict the transmission delay information of the video segment to be transmitted at multiple video bitrates based on the network status information and the cache information; and predict the experience quality information of the video segment to be transmitted at multiple video bitrates based on the transmission delay information of the video segment to be transmitted at multiple video bitrates. The bitrate determination module is configured to determine the target video bitrate of the video segment to be transmitted from multiple video bitrates based on the quality of experience information of the video segment to be transmitted at multiple video bitrates. The cache information includes: first cache information of the terminal device and second cache information of the server; The quality prediction module is further configured to: for each of the plurality of video bitrates, predict the transmission bandwidth information of the video segment to be transmitted at the video bitrate based on the network status information; determine the first transmission delay information of the video segment to be transmitted at the video bitrate based on the first buffer information and the transmission bandwidth information, wherein the first transmission delay information represents the transmission delay information of the receiving end; determine the second transmission delay information of the video segment to be transmitted at the video bitrate based on the second buffer information and the transmission bandwidth information, wherein the second transmission delay information represents the transmission delay information of the sending end; and obtain the transmission delay information of the video segment to be transmitted at the video bitrate based on the first transmission delay information and the second transmission delay information.
8. An electronic device, characterized in that, include: processor; A memory for storing processor-executable instructions; wherein the processor is configured to execute the executable instructions to implement the video bitrate determination method as described in any one of claims 1 to 6.
9. A computer-readable storage medium, wherein instructions in the computer-readable storage medium, when executed by a processor of an electronic device, enable the electronic device to perform a method for determining a video bitrate as described in any one of claims 1 to 6.
10. A computer program product comprising a computer program / instructions, characterized in that, When the computer program / instructions are executed by the processor, they implement the method for determining the video bitrate as described in any one of claims 1 to 6.
Citation Information
Patent Citations
Video processing method and device, electronic equipment and storage medium
CN111031347A