Bit rate adjustment method, device, equipment and storage medium

By obtaining and analyzing the download and playback time of data blocks in the OTT player and adaptively adjusting the bit rate, the problem of adaptive bit rate in OTT players is solved when using CMAF Chunk technology, and a lower latency and a better live broadcast experience is achieved.

CN113852865BActive Publication Date: 2025-04-08ZTE CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202010601652.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-06-28
Publication Date
2025-04-08
Estimated Expiration
2040-06-28

AI Technical Summary

Technical Problem

The OTT player uses CMAF Chunk technology to reduce the delay in live broadcast services, resulting in the invalidity of the existing ABR bit rate adaptive mechanism and the inability to realize adaptive adjustment of the bit rate.

Method used

By obtaining the download time and playback time of each data block in the current shard, adjusting the download bit rate of the next shard based on these times to achieve adaptive adjustment of the bit rate.

Benefits of technology

While using CMAF Chunk technology to reduce the delay in live broadcast services, it ensures that the player code rate can be adaptively adjusted, providing a better quality and smooth playback experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113852865B_ABST
    Figure CN113852865B_ABST
Patent Text Reader

Abstract

The present application provides a bit rate adjustment method, apparatus, device and storage medium, including: obtaining the download duration of each data block in the current segment; determining the playback duration of each data block in the current segment; and adjusting the download bit rate of the next segment based on the download duration and the playback duration.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a code rate adjustment method, device, equipment and storage medium. Background Art

[0002] With the development of video technology and network technology, video traffic will account for more than 95% of network data consumption, and video services have become the most valuable platform for driving the development of network traffic. In particular, OTT services have developed rapidly in the past two years due to their technical characteristics based on the basic HTTP Internet protocol, low requirements for system support technology, and can serve all intelligent terminal devices. It has also become the main development direction of video services.

[0003] OTT terminal players use fragmented downloading and terminal buffering playback, which can effectively solve the problem of video service jamming caused by unstable WAN transmission bandwidth. When the network quality fluctuates, the ABR bit rate adaptation provides users with the best quality smooth playback experience. However, the technical characteristics of OTT players' fragmented downloading and terminal buffering playback will introduce a large playback delay for live broadcast services. Compared with DVB and IPTV technologies, the large live broadcast delay has also become the main shortcoming of OTT live broadcast services.

[0004] In order to solve the latency problem of OTT live broadcast services, chunk transmission technology is introduced so that the player can decode and render the video content without downloading the entire segment, thereby reducing the latency problem caused by segmentation.

[0005] The use of CMAF chunks can reduce the latency of live streaming services, but it also leads to another problem, making the ABR bitrate adaptation mechanism of existing OTT players invalid. Summary of the invention

[0006] The bitrate adjustment method, apparatus, device and storage medium provided in the present application are used to realize adaptive adjustment of the player bitrate while reducing the latency of the live broadcast service by using CMAF Chunk.

[0007] In a first aspect, an embodiment of the present application provides a bit rate adjustment method, the method is applied to a player, and includes:

[0008] Get the download time of each data block in the current shard;

[0009] Determine the playback duration of each data block in the current segment;

[0010] Based on the download duration and the playback duration, the download bit rate of the next segment is adjusted.

[0011] In a second aspect, an embodiment of the present application provides a bit rate adjustment device, which is configured in a player and includes:

[0012] A download duration acquisition module is configured to acquire the download duration of each data block in the current shard;

[0013] A playback duration determination module, configured to determine the playback duration of each data block in the current segment;

[0014] The bit rate adjustment module is configured to adjust the download bit rate of the next segment based on the download duration and the playback duration.

[0015] In a third aspect, an embodiment of the present application provides a device, including:

[0016] one or more processors;

[0017] A memory for storing one or more programs;

[0018] When the one or more programs are executed by the one or more processors, the one or more processors implement any method provided in the embodiments of the present application.

[0019] In a fourth aspect, an embodiment of the present application provides a storage medium, wherein the storage medium stores a computer program, and when the computer program is executed by a processor, the method described in any one of the embodiments of the present application is implemented.

[0020] The bitrate adjustment method, apparatus, device and storage medium provided in the embodiments of the present application obtain the download time of each data block in the current segment and the playback time of each data block in the current segment; based on the download time and the playback time, the download bitrate of the next segment is adjusted, thereby achieving adaptive adjustment of the player bitrate while using CMAF data block technology to reduce the latency of the live broadcast service.

[0021] With regard to the above embodiments and other aspects of the present application and their implementation, further description is provided in the accompanying drawings, detailed description and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] Figure 1 is a flow chart of a bit rate adjustment method provided in an embodiment of the present application;

[0023] Figure 2 It is a structural diagram of an OTT playback system provided in an embodiment of the present application;

[0024] Figure 3 This is a schematic diagram of the timing of ordinary OTT playback;

[0025] Figure 4This is a schematic diagram of the timing of CMAF chunk playback;

[0026] Figure 5 This is a flow chart of bitrate adaptive playback based on CMAF playback provided in an embodiment of the present application;

[0027] Figure 6 It is a structural schematic diagram of a bit rate adjustment device provided in an embodiment of the present application;

[0028] Figure 7 It is a structural schematic diagram of a device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0029] In order to make the purpose, technical solution and advantages of the present application more clear, the embodiments of the present application will be described in detail below with reference to the accompanying drawings. It should be noted that the embodiments and features in the embodiments of the present application can be combined with each other arbitrarily without conflict.

[0030] The steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions. Also, although a logical sequence is shown in the flowchart, in some cases, the steps shown or described can be performed in a sequence different from that shown here.

[0031] In one embodiment, a bit rate playback method is provided, such as Figure 1 As shown, the bit rate playback method provided in the embodiment of the present application mainly includes steps S11, S12 and S13.

[0032] S11. Obtain the downloading time of each data block in the current shard.

[0033] S12: Determine the playback duration of each data block in the current segment.

[0034] S13: Based on the download duration and the playback duration, adjust the download bit rate of the next segment.

[0035] In this embodiment, the above-mentioned bit rate adjustment method is executed by the OTT player in the terminal. And the download module of the terminal adopts the data block (chunk) transmission technology, so that the player can decode and render the video content without receiving the complete fragment, thereby reducing the delay problem caused by the fragment.

[0036] Furthermore, the download duration of the data block refers to the time required for the download module to download a chunk from the media server through HPPT. Chunk data has an identifier at the beginning and end of transmission, so that the download module can start timing when detecting the start identifier of a chunk, and stop timing when detecting the end identifier of the chunk, thereby recording the transmission duration of each chunk.

[0037] The playback duration of each data block refers to the time required for an OTT player to play one chunk.

[0038] In one embodiment, obtaining the download time of each data block in the current segment includes: sending a segment download request to a download module, wherein the segment download request instructs the download module to establish an HPPT connection with a media server, downloads video data according to the data block transmission module, and records the download time of the data block; obtaining the data block video data sent by the download module and the download time of the data block.

[0039] In this embodiment, when a user plays a live channel of an OTT player, the player sends a segment download request to the download module. After receiving the segment download request, the download module establishes an HTTP (HTTPS) link with the media server and negotiates to download in chunk transfer mode. Then, the chunks are downloaded from the media server in sequence.

[0040] Furthermore, each time the player receives a chunk of data, it obtains the downloading time of the chunk from the download module and records the downloading time of the chunk.

[0041] When the player receives the media data of two chunks completely, it starts to render and play. The player can only start playing after receiving two chunks completely to avoid playback jams.

[0042] It should be noted that during the playback process, the player synchronously receives the data packets of the chunk and records the download time of each chunk.

[0043] In one embodiment, before obtaining the download duration of each data block in the current segment, the method further includes: receiving a channel description file downloaded by the download module from the media server; and parsing the channel description file to determine all bit rates supported by the channel.

[0044] In this embodiment, the user enters the live channel of the OTT player, and the player downloads the manifest description file of the live channel from the media server through the download module. The player receives and parses the manifest description file, determines whether CMAF is supported, and parses which bit rates are supported by this channel.

[0045] In this embodiment, the manifest file indicates that the channel supports three bit rates of 1.2M, 2.4M, and 3.5M.

[0046] In one embodiment, the download bit rate of the next segment is adjusted based on the download time and the total playback time, including: determining the total download time of the current segment based on the download time of each data block; determining the total playback time of the current segment based on the playback time of each data block; and reducing the download bit rate of the next segment when the total download time is equal to or greater than the total playback time.

[0047] In this embodiment, the downloading time of a data block is recorded as Δtn, where n is the serial number of the data block in the segment. After a segment is downloaded, the player counts the total downloading time of all chunks in the entire segment. The total downloading time of the current segment = ∑Δt1+Δt2+...+Δtn.

[0048] The total playback time of the current segment refers to the sum of the playback time of all data blocks included in the current segment. When the total download time is equal to or greater than the total playback time, the download bitrate of the next segment is reduced, that is, the bitrate is switched down. For example, if the current bitrate is 3.5M, the bitrate can be switched to 2.4M or 1.2M.

[0049] In one embodiment, adjusting the download bitrate of the next segment based on the download duration and the total playback duration includes:

[0050] Determine the total download duration of the current segment based on the download duration of each data block;

[0051] Determine the actual download rate of the current segment based on the total download duration of the current segment and the current segment bandwidth;

[0052] Determining the total playback duration of the current segment based on the playback duration of each data block;

[0053] Determine a maximum bitrate bandwidth threshold that can be supported by the current network based on the total playback time and the actual download rate;

[0054] Based on the maximum bitrate bandwidth threshold and a preset condition, the download bitrate of the next segment is increased.

[0055] In one embodiment, the actual download rate of the current segment is the ratio of the bandwidth of the previous segment to the total download duration of the current segment.

[0056] In one embodiment, the maximum bitrate bandwidth threshold supported by the current network is the product of the total playback duration and the actual download rate.

[0057] In one embodiment, based on the maximum bitrate bandwidth threshold and a preset condition, increasing the download bitrate of the next fragment includes: calculating the product of the maximum bitrate bandwidth threshold and the switching threshold; determining a set of bitrates; wherein the set of bitrates includes bitrates that are less than or equal to the product of the maximum bitrate bandwidth threshold and the switching threshold among all the bitrates supported by the current channel; and selecting the maximum bitrate in the set of bitrates as the download bitrate of the next fragment.

[0058] In this embodiment, calculate the actual download rate of the current fragment. The actual download rate of the current fragment Rate(Now) = fragment bandwidth / fragment download time = bandwidth(now) / (∑Δt1 + Δt2 +... + Δtn). Calculate the maximum bitrate bandwidth threshold that the current network can support: bandwidth(maximum bitrate bandwidth threshold) = Rate(Now) * fragment playback duration. Parse all the bitrate bandwidths in the manifest, and switch to take the maximum value that satisfies bandwidth(switching bitrate) < bandwidth(maximum bitrate bandwidth threshold) * 80% (switching threshold). It should be noted that 80% is to reserve a certain amount of redundancy. Request to download the bitrate fragment with the maximum bandwidth that meets the conditions for playback to achieve upward switching of the bitrate.

[0059] In one embodiment, as Figure 2 shown, the bitrate adjustment method provided by the embodiments of the present application involves three parts: an OTT player, an HTTP download module, and a media server.

[0060] The media server is responsible for producing ffmp4 fragments encapsulated in chunks and providing the terminal with the ability to download HTTP fragments. Each chunk includes two parts, moof and mdat, and can be independently encrypted, decoded, and played by a Direct Rendering Manager (DRM).

[0061] To be compatible with supporting low-latency playback of CMAF chunks and ordinary OTT playback for both players, the media download service still requests downloads in the form of fragment files. An HTTP link is established each time a fragment is downloaded, and the HTTP link is removed when the fragment file download is completed.

[0062] Since HTTP1.1, HTTP transmission has supported chunk transmission. To simplify processing, media servers usually make the chunk size of the fragment consistent with the chunk defined in the HTTP protocol, so that each HTTP chunk data is exactly a complete chunk (including the chunk's moof and mdat) data of the fragment.

[0063] The download module downloads video segments from the media server via HTTP (HTTPS). Like ordinary OTT services, it still uses files. The player downloads media segments from the media server via the download module. When the download module receives a download request for a player segment, it establishes an HTTP link with the media server and negotiates to transmit it in chunks. Chunk data has identifiers at the start and end of sending, so the download module can record the transmission time of each chunk. When each chunk is received, the chunk media data is sent to the player, along with the transmission time of the chunk.

[0064] The terminal player is responsible for decoding the video media data and rendering it for the user. To achieve ultra-low latency playback of OTT live broadcasts, the player needs to support the CMAF specification and provide chunk-based media playback capabilities.

[0065] Figure 3 This is a schematic diagram of the timing of ordinary OTT playback. Figure 3 As shown, the media server generates multiple segments, and the playback server starts to play the video of the segment only after the download module completes downloading the entire segment.

[0066] Figure 4 This is a schematic diagram of the timing of CMAF chunk playback. Figure 4 As shown, a segment is divided into multiple chunks, an HTTP link is established between the download module and the media server, and media data is transmitted through the Chunk block transmission mode. The player completely receives the media data of two chunks and starts rendering and playing, avoiding possible playback jams.

[0067] When the player plays an OTT live channel, it first requests the download module to download the live channel manifest description file. If the video supports CMAF, the CMAF playback process is automatically executed, and the download module downloads the latest segment from the media server (ordinary OTT needs to download the third-to-last segment, otherwise it will cause playback jams). The download module establishes an HTTP link with the media server and transmits media data in Chunk block transmission mode. The download module records the transmission time of each chunk and sends it to the player together with the media chunk data packet.

[0068] The player receives the media data from the download module and decodes and plays it, while recording the download time of each chunk. When a segment is finished playing, the download time of all chunks in the entire segment is counted and compared with the playback time of the entire segment. If the bitrate switching threshold is triggered, the corresponding bitrate switching is performed starting from the next segment.

[0069] In one embodiment, a bitrate adaptive playback process based on CMAF playback is provided, such as Figure 5 As shown in the figure, when a user plays a live channel that supports CMAF on a terminal, the playback process of bitrate adaptive adjustment is as follows:

[0070] 1. The user enters the live channel of the OTT player.

[0071] 2. The player downloads the manifest description file of the live channel from the media server through the download module

[0072] 3. The player receives and parses the manifest description file.

[0073] Based on the parsed manifest description file, determine whether CMAF is supported and parse out which bitrates this channel supports.

[0074] The following manifest file indicates that this channel supports three bit rates: 1.2M, 2.4M, and 3.5M:

[0075] <Representat ion frameRate="30"sar="1:1"id="f1-v1-x3"startWithSAP="1"bandwidth="1188848"codecs="avc1.42e01e"mimeType="video / mp4"height="360"width="640" / >

[0076] <Representat ion frameRate="30"sar="1:1"id="f2-v1-x3"startWithSAP="1"bandwidth="2368372"codecs="avc1.42e01e"mimeType="video / mp4"height="480"width="640" / >

[0077] <Representat ion frameRate="30"sar="1:1"id="f3-v1-x3"startWithSAP="1"bandwidth="3484136"codecs="avc1.4d401 f"mimeType="video / mp4"height="576"

[0078] 4. If the live channel supports CMAF playback, select a bitrate to start downloading and playback from the latest segment.

[0079] 5. The download module receives the segment download request from the player, establishes an HTTP (HTTPS) link with the media server, and negotiates to download in chunk transfer mode.

[0080] 6. Every time the player receives a chunk of data, it obtains the download time of the chunk from the download module and records the download duration of the chunk.

[0081] For each chunk of data, the download module calculates the download time of this chunk from the first data packet of the chunk when the chunk ends, which is recorded as Δtn (n is the sequence number of the chunk in the fragment).

[0082] 7. When the player receives all the media data of the two chunks, it starts rendering and playing.

[0083] The broadcast can only be started after two chunks are collected to avoid possible playback jams.

[0084] 8. During playback, the player synchronously receives chunk data packets and records the download time of each chunk.

[0085] 9. After a segment is downloaded, the player counts the total download time of all chunks in the segment.

[0086] Segment download duration = ∑Δt1+Δt2+...+Δtn.

[0087] 10. If bitrate switching is triggered, download the next segment of the new bitrate.

[0088] 11. The download module downloads the segments of the new bit rate and transmits them in chunks.

[0089] The triggering condition for triggering the bit rate downward switching includes one of the following:

[0090] 1) If the download time of two consecutive chunks exceeds the playback time of the two chunks, the bit rate needs to be switched down.

[0091] 2) Compare the duration of the entire segmented download (the sum of the download times of all chunks in the currently playing segment) with the playing duration of the segment. If the download time is close to or even greater than the playing duration of the segment, then the bitrate needs to be switched downwards.

[0092] The judgment process for triggering an upward bitrate switch is as follows:

[0093] 1) Calculate the actual rate of segmented download: Download rate Rate(Now) = segmented bandwidth / segmented download time = bandwidth(now) / (∑Δt1 + Δt2 +... + Δtn)

[0094] 2) Calculate the maximum bitrate bandwidth threshold that the current network can support: bandwidth(maximum bitrate bandwidth threshold) = Rate(Now) * segmented playing duration

[0095] 3) Parse all bitrate bandwidths in the manifest, and switch to take the maximum value that satisfies bandwidth(switched bitrate) < bandwidth(maximum bitrate bandwidth threshold) * 80% (switching threshold). It should be noted that 80% is to reserve a certain amount of redundancy.

[0096] 4) Request to download the bitrate segment with the maximum bandwidth that meets the conditions for playing, and implement an upward switch of the bitrate.

[0097] In one embodiment, a bitrate playing device is provided, as Figure 6 shown. The bitrate playing device provided by the embodiments of the present application mainly includes a download duration acquisition module 61, a playing duration determination module 62, and a bitrate adjustment module 63.

[0098] The download duration acquisition module 61 is configured to acquire the download duration of each data block in the current segment;

[0099] The playing duration determination module 62 is configured to determine the playing duration of each data block in the current segment;

[0100] The bitrate adjustment module 63 is configured to adjust the download bitrate of the next segment based on the download duration and the playing duration.

[0101] In one embodiment, the adjusting the download bitrate of the next segment based on the download duration and the total playing duration includes:

[0102] Determining the total download duration of the current segment based on the download duration of each data block;

[0103] Determining the total playing duration of the current segment based on the playing duration of each data block;

[0104] When the total downloading time is equal to or greater than the total playing time, the download bit rate of the next segment is reduced.

[0105] In one embodiment, adjusting the download bitrate of the next segment based on the download duration and the total playback duration includes:

[0106] Determine the total download duration of the current segment based on the download duration of each data block;

[0107] Determine the actual download rate of the current segment based on the total download duration of the current segment and the current segment bandwidth;

[0108] Determining the total playback duration of the current segment based on the playback duration of each data block;

[0109] Determine a maximum bitrate bandwidth threshold that can be supported by the current network based on the total playback time and the actual download rate;

[0110] Based on the maximum bitrate bandwidth threshold and a preset condition, the download bitrate of the next segment is increased.

[0111] In one embodiment, the actual download rate of the current segment is the ratio of the bandwidth of the previous segment to the total download duration of the current segment.

[0112] In one embodiment, the maximum bitrate bandwidth threshold that the current network can support is the product of the total playback time and the actual download rate.

[0113] In one embodiment, based on the maximum bitrate bandwidth threshold and a preset condition, increasing the download bitrate of the next segment includes:

[0114] Calculating the product of the maximum bit rate bandwidth threshold and the switching threshold;

[0115] Determine a bit rate set; wherein the bit rate set includes bit rates that are less than or equal to the product of the maximum bit rate bandwidth threshold and the switching threshold among all bit rates supported by the current channel;

[0116] The maximum bit rate is selected from the bit rate set as the download bit rate of the next segment.

[0117] In one embodiment, obtaining the download duration of each data block in the current segment includes:

[0118] Sending a segment download request to the download module, wherein the segment download request instructs the download module to establish an HPPT connection with the media server, download the video data according to the data block transmission module, and record the download time of the data block;

[0119] The data block video data sent by the download module and the downloading time of the data block are obtained.

[0120] In one embodiment, before obtaining the download duration of each data block in the current segment, the method further includes:

[0121] Receiving a channel description file downloaded by a download module from a media server;

[0122] The channel description file is parsed to determine all bit rates supported by the channel.

[0123] The controller provided in this embodiment can execute the bit rate adjustment method provided in any embodiment of the present invention, and has the corresponding functional modules and beneficial effects of executing the method. For technical details not described in detail in this embodiment, please refer to the bit rate adjustment method provided in any embodiment of the present invention.

[0124] It is worth noting that in the embodiment of the above-mentioned bit rate adjustment device, the various units and modules included are only divided according to functional logic, but are not limited to the above-mentioned division, as long as the corresponding functions can be achieved; in addition, the specific names of the functional units are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application.

[0125] The present application also provides a device, Figure 7 is a schematic diagram of the structure of a device provided in an embodiment of the present application, such as Figure 7 As shown, the device includes a processor 71, a memory 72, an input device 73, an output device 74 and a communication device 75; the number of processors 71 in the device can be one or more. Figure 7 A processor 71 is taken as an example; the processor 71, memory 72, input device 73 and output device 74 in the device can be connected by a bus or other means. Figure 7 The example of connecting through bus is taken in the following.

[0126] The memory 72 is a computer-readable storage medium that can be used to store software programs, computer executable programs and modules, such as program instructions / modules corresponding to the bit rate adjustment method in the embodiment of the present application (for example, the download duration acquisition module 61, the playback duration determination module 62 and the bit rate adjustment module 63 in the bit rate adjustment device). The processor 71 executes various functional applications and data processing of the device by running the software programs, instructions and modules stored in the memory 72, that is, implementing any method provided in the embodiment of the present application.

[0127] The memory 72 may mainly include a program storage area and a data storage area, wherein the program storage area may store an operating system and at least one application required for a function; the data storage area may store data created according to the use of the device, etc. In addition, the memory 72 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage device. In some instances, the memory 72 may further include a memory remotely arranged relative to the processor 71, and these remote memories may be connected to the device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0128] The input device 73 may be used to receive input digital or character information and generate key signal input related to user settings and function control of the device. The output device 74 may include a display device such as a display screen.

[0129] The communication device 75 may include a receiver and a transmitter. The communication device 75 is configured to perform information transmission and reception communication according to the control of the processor 71.

[0130] In an exemplary embodiment, the present application also provides a storage medium containing computer executable instructions, wherein the computer executable instructions are used to perform a bit rate adjustment method when executed by a computer processor, including:

[0131] Get the download time of each data block in the current shard;

[0132] Determine the playback duration of each data block in the current segment;

[0133] Based on the download duration and the playback duration, the download bit rate of the next segment is adjusted.

[0134] Of course, the storage medium containing computer executable instructions provided in the embodiment of the present application, whose computer executable instructions are not limited to the method operations described above, can also execute related operations in the bit rate adjustment method provided in any embodiment of the present application.

[0135] Through the above description of the implementation method, the technicians in the relevant field can clearly understand that the present application can be implemented by means of software and necessary general hardware, and of course it can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present application can be essentially or the part that contributes to the prior art can be embodied in the form of a software product, and the computer software product can be stored in a computer-readable storage medium, such as a computer floppy disk, read-only memory (ROM), random access memory (RAM), flash memory (FLASH), hard disk or optical disk, etc., including a number of instructions for a computer device (which can be a personal computer, server, or network device, etc.) to execute the methods described in each embodiment of the present application.

[0136] The above description is merely an exemplary embodiment of the present application and is not intended to limit the protection scope of the present application.

[0137] It will be appreciated by those skilled in the art that the term user terminal covers any suitable type of wireless user equipment, such as a mobile phone, a portable data processing device, a portable web browser or a vehicle-mounted mobile station.

[0138] In general, various embodiments of the present application can be implemented in hardware or dedicated circuits, software, logic or any combination thereof. For example, some aspects can be implemented in hardware, while other aspects can be implemented in firmware or software that can be executed by a controller, microprocessor or other computing device, although the present application is not limited thereto.

[0139] Embodiments of the present application may be implemented by executing computer program instructions by a data processor of a mobile device, for example in a processor entity, or by hardware, or by a combination of software and hardware. The computer program instructions may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages.

[0140] The block diagram of any logic flow in the accompanying drawings of the present application can represent program steps, or can represent interconnected logic circuits, modules and functions, or can represent a combination of program steps and logic circuits, modules and functions. The computer program can be stored on a memory. The memory can have any type suitable for the local technical environment and can be implemented using any suitable data storage technology, such as but not limited to read-only memory (ROM), random access memory (RAM), optical memory device and system (digital versatile disc DVD or CD disc), etc. Computer-readable media may include non-transient storage media. The data processor can be any type suitable for the local technical environment, such as but not limited to a general-purpose computer, a special-purpose computer, a microprocessor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a programmable logic device (FGPA) and a processor based on a multi-core processor architecture.

[0141] By way of exemplary and non-limiting examples, a detailed description of exemplary embodiments of the present application has been provided above. However, various modifications and adjustments to the above embodiments will be apparent to those skilled in the art when considered in conjunction with the accompanying drawings and claims, but will not depart from the scope of the present invention. Therefore, the proper scope of the present invention will be determined according to the claims.

Claims

1. A bit rate adjustment method, characterized in that: The method is applied in a CMAF scenario, and the method uses a player, including: Get the download time of each data block in the current shard; Determine the playback duration of each data block in the current segment; Based on the download duration and the playback duration, the download bitrate of the next fragment is adjusted; wherein the download bitrate of the next fragment is the maximum bitrate in a bitrate set, the bitrate set includes all bitrates supported by the current channel that are less than or equal to the product of a maximum bitrate bandwidth threshold and a switching threshold, and the maximum bitrate bandwidth threshold is determined based on the download duration and the playback duration.

2. The method according to claim 1, characterized in that The adjusting the download bit rate of the next segment based on the download duration and the playback duration includes: Determine the total download duration of the current segment based on the download duration of each data block; Determining the total playback duration of the current segment based on the playback duration of each data block; When the total downloading time is equal to or greater than the total playing time, the download bit rate of the next segment is reduced.

3. The method according to claim 1, characterized in that The adjusting the download bit rate of the next segment based on the download duration and the playback duration includes: Determine the total download duration of the current segment based on the download duration of each data block; Determine the actual download rate of the current segment based on the total download duration of the current segment and the current segment bandwidth; Determining the total playback duration of the current segment based on the playback duration of each data block; Determine a maximum bitrate bandwidth threshold that can be supported by the current network based on the total playback time and the actual download rate; Based on the maximum bitrate bandwidth threshold and a preset condition, the download bitrate of the next segment is increased.

4. The method according to claim 3, characterized in that: The actual download rate of the current segment is the ratio of the previous segment bandwidth to the total download time of the current segment.

5. The method according to claim 3, characterized in that: The maximum bitrate bandwidth threshold that the current network can support is the product of the total playback time and the actual download rate.

6. The method according to claim 3, characterized in that Increasing the download bitrate of the next segment based on the maximum bitrate bandwidth threshold and a preset condition, including: Calculating the product of the maximum bit rate bandwidth threshold and the switching threshold; Determine a bit rate set; The maximum bit rate is selected from the bit rate set as the download bit rate of the next segment.

7. The method according to claim 1, characterized in that The step of obtaining the download duration of each data block in the current shard includes: Sending a segment download request to the download module, wherein the segment download request instructs the download module to establish an HTTP connection with the media server, download the video data according to the data block transmission module, and record the download time of the data block; The data block video data sent by the download module and the downloading time of the data block are obtained.

8. The method according to claim 1, characterized in that Before obtaining the downloading time of each data block in the current segment, the method further includes: Receiving a channel description file downloaded by a download module from a media server; The channel description file is parsed to determine all bit rates supported by the channel.

9. A bit rate adjustment device, characterized in that: The device is applied in a CMAF scenario, and the device is configured in a player, including: A download duration acquisition module is configured to acquire the download duration of each data block in the current shard; A playback duration determination module, configured to determine the playback duration of each data block in the current segment; The bitrate adjustment module is configured to adjust the download bitrate of the next fragment based on the download duration and the playback duration; wherein the download bitrate of the next fragment is the maximum bitrate in a bitrate set, and the bitrate set includes all bitrates supported by the current channel that are less than or equal to the product of a maximum bitrate bandwidth threshold and a switching threshold, and the maximum bitrate bandwidth threshold is determined based on the download duration and the playback duration.

10. An electronic device, characterized in that: include: one or more processors; A memory for storing one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1 to 8.

11. A storage medium, characterized in that: The storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.

Citation Information

Patent Citations

  • Method and device for automatically switching multimedia bit rate

    CN106878828A