WO2023027399A1 - Method and device for downloading streaming media file - Google Patents
Method and device for downloading streaming media file Download PDFInfo
- Publication number
- WO2023027399A1 WO2023027399A1 PCT/KR2022/012065 KR2022012065W WO2023027399A1 WO 2023027399 A1 WO2023027399 A1 WO 2023027399A1 KR 2022012065 W KR2022012065 W KR 2022012065W WO 2023027399 A1 WO2023027399 A1 WO 2023027399A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- downloading
- granularity
- fragment
- decoding
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 239000012634 fragment Substances 0.000 claims abstract description 135
- 230000008569 process Effects 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 6
- 235000019580 granularity Nutrition 0.000 description 102
- 238000012545 processing Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000000547 structure data Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical group C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
Definitions
- the second downloading unit is specifically used for determining a second downloading granularity, comprising: setting the second downloading granularity as a preset data frame downloading granularity value; or, obtaining the second downloading granularity by calculation according to a current bandwidth and a preset second granularity duration.
- An embodiment of the invention further discloses electronic equipment for downloading a streaming media file, comprising a processor and a memory;
- the server may return a download failure message to the client, and the client requests to download the corresponding data again after receiving the download failure message.
- the device further comprises:
- Hardware modules in various embodiments can be implemented by a mechanical or electronic means.
- a hardware module may comprise specially designed permanent circuits or logic devices (such as special-purpose processors, like FPGA or ASIC) for performing specific operations.
- the hardware module may also comprise programmable logic devices or circuits (such as general purpose processors or other programmable processors) temporarily configured by software for performing specific operations.
- programmable logic devices or circuits such as general purpose processors or other programmable processors
- temporarily configured by software can be decided by taking consideration of cost and time.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
The application discloses a method and device for downloading a streaming media file, wherein the method comprises: determining a first downloading granularity when a fragment of the streaming media file needs to be downloaded, downloading fragment description data of the fragment by taking the first downloading granularity as a data amount requested to be downloaded at one time, and constructing a data frame index table based on the fragment description data; and determining a second downloading granularity, and downloading a content data frame indicated by the data frame index table by taking the second downloading granularity as a data amount requested to be downloaded at one time. According to the application, each fragment of the streaming media file is downloaded separately according to a certain downloading granularity, so that the downloading and playing performance of the streaming media file can be improved.
Description
The invention relates to the streaming media downloading technology, in particular to a method and device for downloading a streaming media file.
At present, Dynamic Adaptive Streaming over HTTP (DASH) has been widely applied to Internet video streaming. Audio and video streams are transmitted in a fragment Mp4 format, a server conducts distribution with fragments as the unit, and a client player applies for the downloading of audio and video content fragments with fragments as the unit, so that video contents can be downloaded and played at the same time.
In the process of implementing the invention, the inventor found that when using the above-mentioned method of applying for the downloading of the audio and video content fragments with fragments as the unit to download high-definition videos, the downloading and playing performance of streaming media files is poor, specifically, the downloading speed is low, the memory overhead is large, the downloading synchronization of audio and video files is poor, the fluency of playing is poor and the delay of live streaming is serious, etc. Through research and analysis, it is found that the reasons are as follows:
According to existing video downloading solutions, the client player finds an address where a fragment document of each fragment is located according to the description of a media presentation document (MPD), and applies to the server for the downloading of the fragment as a whole according to the address. With the increasing requirement of users for video definition, 4K and 8K DASH videos come along, and the corresponding fragments of high-resolution videos are getting bigger and bigger, which makes the download time of a single fragment longer, and then the total download time of two audio and video fragments that need to be played synchronously also gets longer. When streaming media are played, synchronous playing can be conducted only after the video fragment and audio fragment matching in time are both downloaded. Therefore, when one audio or video fragment is downloaded, it is necessary to wait for the other video or audio fragment with matching time to be downloaded. Accordingly, when the download time of a single fragment becomes longer, the waiting time for the corresponding fragment for synchronous playing will also become longer. As a result, on the one hand, more caching space will be needed to store the downloaded data which cannot be played synchronously, and on the other hand, the received video fragments or audio fragments will not be played in time due to the waiting, which will make the downloading synchronization of audio and video files poor, thus affecting the fluency of playing and increasing the delay of live streaming.
In view of this, the main purpose of the invention is to provide a method and device for downloading a streaming media file, which can improve the downloading synchronization and playing performance of audio and video files.
In order to achieve the above purpose, the technical solution proposed by the invention is as follows:
A method for downloading a streaming media file, comprising:
Determining a first downloading granularity when a fragment of the streaming media file needs to be downloaded, downloading fragment description data of the fragment by taking the first downloading granularity as a data amount requested to be downloaded at one time, and constructing a data frame index table based on the fragment description data; and
Determining a second downloading granularity, and downloading a content data frame indicated by the data frame index table by taking the second downloading granularity as a data amount requested to be downloaded at one time.
Preferably, determining a first downloading granularity comprises:
Setting the first downloading granularity as a preset fragment description data downloading granularity value;
Or, obtaining the first downloading granularity by calculation according to a current bandwidth and a preset first granularity duration; and
Determining a second downloading granularity comprises:
Setting the second downloading granularity as a preset data frame downloading granularity value;
Or, obtaining the second downloading granularity by calculation according to a current bandwidth and a preset second granularity duration.
Preferably, the method further comprises:
In the downloading process, determining a target bitrate matching a current downloading speed in real time based on a monitoring result of the downloading speed; and if the target bitrate is different from a bitrate of a currently downloaded fragment, switching a bitrate requested for downloading to the target bitrate, and requesting data to be downloaded according to a fragment corresponding to the target bitrate.
Preferably, the method further comprises:
When bitrate switching occurs, loading download data corresponding to a bitrate after switching into a first decoder in a decoding off state currently, and when a second decoder in a decoding on state currently finishes decoding a currently played decoding unit, switching the second decoder to a decoding off state to stop the second decoder from decoding, and switching the first decoder to a decoding on state to start the first decoder for decoding.
An embodiment of the invention further provides a device for downloading a streaming media file, comprising:
A first downloading unit for determining a first downloading granularity when a fragment of the streaming media file needs to be downloaded, downloading fragment description data of the fragment by taking the first downloading granularity as a data amount requested to be downloaded at one time, and constructing a data frame index table based on the fragment description data; and
A second downloading unit for determining a second downloading granularity, and downloading a content data frame indicated by the data frame index table by taking the second downloading granularity as a data amount requested to be downloaded at one time.
Preferably, the first downloading unit is specifically used for determining the first downloading granularity, comprising: setting the first downloading granularity as a preset fragment description data downloading granularity value; or, obtaining the first downloading granularity by calculation according to a current bandwidth and a preset first granularity duration; and
The second downloading unit is specifically used for determining a second downloading granularity, comprising: setting the second downloading granularity as a preset data frame downloading granularity value; or, obtaining the second downloading granularity by calculation according to a current bandwidth and a preset second granularity duration.
Preferably, the device further comprises:
A bitrate switching unit used for determining a target bitrate matching a current downloading speed in real time based on a monitoring result of the downloading speed in the downloading process; and if the target bitrate is different from a bitrate of a currently downloaded fragment, determining that bitrate switching is needed currently, and triggering the first downloading unit and the second downloading unit to request data to be downloaded according to a fragment corresponding to the target bitrate.
Preferably, the device further comprises:
A decoding control unit used for, when bitrate switching occurs, loading download data corresponding to a bitrate after switching into a first decoder in a decoding off state currently, and when a second decoder in a decoding on state currently finishes decoding a currently played decoding unit, switching the second decoder to a decoding off state to stop the second decoder from decoding, and switching the first decoder to a decoding on state to start the first decoder for decoding.
An embodiment of the invention further discloses electronic equipment for downloading a streaming media file, comprising a processor and a memory;
Wherein the memory stores an application program executable by the processor for causing the processor to execute the above method for downloading a streaming media file.
An embodiment of the invention further provides a computer readable storage medium having stored thereon a computer readable instruction which is used for executing the above method for downloading a streaming media file.
To sum up, in the streaming media file downloading solution proposed by the embodiment of the invention, for each fragment of the streaming media file to be downloaded, the client no longer requests to download the entire fragment at one time, but divides each fragment according to a certain downloading granularity, and requests to download the streaming media file based on a request downloading unit with a smaller granularity. Therefore, by refining the downloading granularity of the fragment, the transmission duration of the data requested to be downloaded at one time can be greatly reduced, so that the downloading time of synchronized audio and video data can be reduced, and the downloaded audio and video data can be played in time. Accordingly, the downloading synchronization of audio and video files can be effectively improved, the fluency of video playing can be guaranteed, and especially the delay of live streaming can be effectively avoided. In addition, the above solution takes into account the different structural types of different functional data contained in the fragment file, and the different detachable basic data units of different structural types. Specifically, for the fragment description data, the basic data units are bits, and for actual media data, the basic data units are data frames. Therefore, by distinguishing the data of different structural types in the fragment file and setting different downloading granularities (that is, the first downloading granularity and the second downloading granularity) for the data of different structural types, the rationality of dividing and downloading the fragment is effectively guaranteed.
Fig. 1 is a flowchart of a method according to an embodiment of the invention;
Fig. 2 is a diagram of the comparison of the effect of fragment division request download according to the embodiment of the invention with the effect of whole fragment request download according to an existing solution; and
Fig. 3 is a structural diagram of a device according to an embodiment of the invention.
In order to make the object, technical solution and advantages of the invention clearer, the invention will be further described in detail below with reference to the drawings and specific embodiments.
Fig. 1 is a flowchart of a method for downloading a streaming media file according to an embodiment of the invention. As shown in Fig. 1, the embodiment mainly comprises:
In this step, for each fragment of the streaming media file, the client needs to control the data amount of the fragment description data requested to be downloaded each time according to the first downloading granularity, and sequentially divide and download the fragment description data in the fragment. In this way, by downloading the fragment description data with a request download granularity smaller than that of the whole fragment, the download processing delay of the fragment description data can be reduced.
It should be noted here that each video fragment file consists of the fragment description data and a content data frame. The fragment description data are the descriptive information of the fragment, and the content data frame is the media data that need to be decoded and played in the fragment. For a DASH fragment, the fragment description data are specifically moof structure data in the fragment, and the content data frame is mdat structure data in the fragment. The content data frame is composed of a plurality of data frames.
In practical application, the first downloading granularity can be determined according to a preset granularity value or based on a current bandwidth, specifically:
Method 1, setting the first downloading granularity as a preset fragment description data downloading granularity value.
Here, when the downloading granularity value of the fragment description data is too large, the data amount requested to be downloaded each time will be too large, so the advantage of fragment divided downloading cannot be effectively realized. On the contrary, when the downloading granularity value of the fragment description data is too small, the data amount requested to be downloaded each time will be too small, thus leading to excessive download request overhead. Specifically, users or those skilled in the art can set appropriate downloading granularity values of the fragment description data according to experience or actual download requirements based on the above rules.
Considering the structural characteristics of the fragment description data, it is preferable that the unit of the downloading granularity value of the fragment description data is Byte in order to facilitate the divided downloading of the fragment description data. For example, it can be set to 500 Byte, but is not limited thereto.
Method 2, obtaining the first downloading granularity by calculation according to a current bandwidth and a preset first granularity duration.
Specifically, the product of the current bandwidth and the first granularity duration can be calculated to obtain the first downloading granularity.
Here, by calculating the first downloading granularity based on the current download bandwidth and the preset granularity duration, the downloading time of the data requested to be downloaded each time will be the same as or close to the first granularity duration, so that the downloading time of the data requested to be downloaded each time can be controlled by using the first granularity duration, thus ensuring the fluency of fragment downloading and processing and effectively realizing the advantage of fine-grain divided downloading of the fragment description data.
When the first granularity duration is too large, the data amount requested to be downloaded each time will be too large, so the advantage of fragment divided downloading cannot be effectively realized. On the contrary, when the first granularity duration is too small, the data amount requested to be downloaded each time will be too small, thus leading to excessive download request overhead. Specifically, the value of the first granularity duration can be set by users or those skilled in the art according to the network conditions and playing needs of the actual application scenario based on the above rules.
In step 101, in order to further download the content data frame of the fragment in subsequent steps, a data frame index table needs to be constructed based on the fragment description data. The data frame index table includes the relevant information of each media data frame in the corresponding fragment. In this way, when downloading the content data frame of the fragment later, the data frames in the table can be downloaded in turn according to the second downloading granularity based on the data frame index table. Specifically, when it is detected that the download of trun structure data in the fragment description data is completed, the data frame index table can be constructed immediately based on the trun structure data. The trun structure (Track fragment Run Box) is used to describe a group of continuous data frame information of the current fragment, and it gives specific information of all data frames in the fragment, including position offset in the file, data frame size, data frame duration, key frame mark and other information. The specific method of constructing the data frame index table is mastered by those skilled in the art and will not be described in detail here.
In this step, for each fragment of the streaming media file, the client needs to control the content data amount of the fragment requested to be downloaded each time according to the first downloading granularity, and divide and download the actual content data frames of the fragment in turn. In this way, by downloading the content data frame of the fragment with a request download granularity smaller than that of the whole fragment, the delay of downloading and waiting for processing of the actual content data frame can be reduced, and the size of cached data can be reduced, so that the fluency of playing the streaming media file can be improved and the storage overhead can be reduced.
In practical application, the second downloading granularity can be determined according to a preset granularity value or based on a current bandwidth, specifically:
Method 1, setting the second downloading granularity as a preset data frame downloading granularity value.
Here, when the downloading granularity value of the data frame is too large, the data amount requested to be downloaded each time will be too large, so the advantage of fragment divided downloading cannot be effectively realized. On the contrary, when the downloading granularity value of the data frame is too small, the data amount requested to be downloaded each time will be too small, thus leading to excessive download request overhead. Specifically, users or those skilled in the art can set appropriate downloading granularity values of the data frame according to experience or actual download requirements based on the above rules.
Considering the structural feature that the content data frame is composed of several frames, preferably, in order to reduce the operation overhead and facilitate the divided downloading of the content data frame, the unit of the data frame downloading granularity value is frame, that is, several frames. Of course, the unit of the data frame downloading granularity value can also be Byte. When downloading is requested based on the data frame downloading granularity value, the data frame downloading granularity value is converted into a closest data frame number based on a data amount of the current data frames to be downloaded provided in the data frame index table, and content data are requested to be downloaded based on the number. In this way, the integrity of the data frames downloaded each time can be ensured to facilitate subsequent decoding.
In addition, in one embodiment, in order to facilitate the subsequent decoding of downloaded data, the data frame downloading granularity value may also be set based on the number of data frames in a single decoding unit, so that the number of data frames requested to be downloaded each time is an integer multiple of the number of data frames in a single decoding unit.
Method 2, obtaining the second downloading granularity by calculation according to a current bandwidth and a preset second granularity duration.
Specifically, the product of the current bandwidth and the second granularity duration can be calculated to obtain the second downloading granularity.
In Method 2, by setting the second downloading granularity dynamically based on the current bandwidth, the downloading time of the data requested to be downloaded each time will be the same as or close to the second granularity duration, so that the downloading time of the data requested to be downloaded each time can be controlled by using the second granularity duration, thus ensuring the fluency of fragment downloading and processing and effectively realizing the advantage of fine-grain divided downloading of the fragment description data.
When the second granularity duration is too large, the data amount requested to be downloaded each time will be too large, so the advantage of fragment divided downloading cannot be effectively realized. On the contrary, when the second granularity duration is too small, the data amount requested to be downloaded each time will be too small, thus leading to excessive download request overhead. Specifically, the value of the second granularity duration can be set by users or those skilled in the art according to the network conditions and playing needs of the actual application scenario, such as 500 ms, but is not limited thereto.
In Steps 101 and 102, when specifically requesting to download data of each granularity, it is necessary to, based on an address of the current fragment file and a data interval corresponding to the data requested to be downloaded currently, request the server to download the data corresponding to the data interval in the current fragment. The address of the fragment file can be obtained by parsing an index file (such as MPD) in the streaming media file, and then conducting construction according to a parsing result. The specific method is mastered by those skilled in the art, so it will not be repeated here.
With the above Steps 101 and 102, for each fragment of the streaming media file to be downloaded by the client, the client no longer requests to download the entire fragment at one time, but divides each fragment according to a certain downloading granularity, and requests to download the streaming media file based on a request downloading unit with a smaller granularity. Fig. 2 is a diagram of the comparison of fragment division request download according to the embodiment of the invention with whole fragment request download according to an existing solution. As shown in Fig. 2, the downloading granularity in the embodiment of the invention is smaller, so the transmission duration of the data requested to be downloaded at one time can be greatly reduced, so that the downloading time of synchronized audio and video data can be reduced, and the downloaded audio and video data can be decoded and played in time. Accordingly, the downloading synchronization of audio and video files can be effectively improved, the fluency of video playing can be guaranteed, and especially the start delay of live streaming can be effectively avoided.
In one embodiment, considering that the network bandwidth is dynamically changing in practical application, bitrate switching can be triggered in time according to the actually measured bandwidth in the downloading process, so that the bitrate of the fragment matches the actual bandwidth, that is, fragment files with high definition can be downloaded when the bandwidth is large; and fragment files with low definition can be downloaded when the bandwidth is small, so that streaming media files with higher playback quality can be obtained on the premise of ensuring the download speed, so as to improve the playback effect of streaming media as much as possible. Specifically, the above purpose can be achieved by the following method:
In the downloading process of Steps 101 and 102, determining a target bitrate matching a current downloading speed in real time based on a monitoring result of the downloading speed; and if the target bitrate is different from a bitrate of a currently downloaded fragment, switching a bitrate requested for downloading to the target bitrate, and requesting data to be downloaded according to a fragment corresponding to the target bitrate.
It should be noted that, in order to meet different playing requirements of users, the server will store data with different bitrates corresponding to different definitions for the same fragment. With the above method, if bitrate switching is needed in the process of fragment downloading, it can be switched to the acquisition of new bitrate data in time, instead of waiting for the completion of the download of the whole fragment before switching to the acquisition of new bitrate data. Therefore, by the above method, quick switching to the acquisition of bitrate data matching the current bandwidth can be realized according to the change of bandwidth.
In one embodiment, considering that the server may not generate the requested data well in the actual download process, the server may return a download failure message to the client, and the client requests to download the corresponding data again after receiving the download failure message.
In one embodiment, considering that when bitrate switching occurs, a decoder needs to reset the preprocessing for a new bitrate, which will increase the decoding delay and then cause lagging of video play, when bitrate switching occurs, bitrate switching time can be reduced by cooperative processing of multiple decoders, which can be realized by the following method:
When bitrate switching occurs, loading download data corresponding to a bitrate after switching into a first decoder in a decoding off state currently, and when a second decoder in a decoding on state currently finishes decoding a currently played decoding unit, switching the second decoder to a decoding off state to stop the second decoder from decoding, and switching the first decoder to a decoding on state to start the first decoder for decoding.
In the above method, when the decoder is switched to the decoding off state, the decoder and a display unit will be disconnected, and when the decoder is switched to the decoding on state, the decoder will be connected to the display unit.
By adopting the above method, when bitrate switching occurs, the downloaded decoding unit data with the new bitrate are preloaded to other decoders which do not start decoding, so as to reset the preprocessing for the new bitrate in advance, and when the current decoder finishes processing the decoding unit data with an old bitrate, the decoder which has completed the data preloading is enabled to decode, so that the waiting time of a new bitrate fragment is reduced by using the preloading of the decoding unit, thus effectively reducing the bitrate switching time and avoiding the influence of the bitrate switching on the playing fluency.
In an actual streaming media playing scene, when the server inserts new streaming media data (e.g., advertisement stream) into a live stream, by adopting the above method, multiple decoders can be used for cooperative processing to realize the smooth insertion of the new streaming media. The specific process is as follows:
When receiving a media index file (MPD) of the new streaming media file inserted by the server in the live stream, the client parses the MPD, obtains a corresponding bitrate, downloads the new streaming media file according to the bitrate, if the bitrate is different from the bitrate of the current decoded data, loads the downloaded new streaming media file to the first decoder which is currently in the decoding off state, and when the second decoder currently in the decoding on state finishes decoding the currently played decoding unit, switches the second decoder to the decoding off state to stop the second decoder from decoding, and switches the first decoder to the decoding on state to start the first decoder for decoding.
Corresponding to the above method embodiment, an embodiment of the invention also provides a device for downloading a streaming media file, as shown in Fig. 3, comprising:
A first downloading unit for determining a first downloading granularity when a fragment of the streaming media file needs to be downloaded, downloading fragment description data of the fragment by taking the first downloading granularity as a data amount requested to be downloaded at one time, and constructing a data frame index table based on the fragment description data; and
A second downloading unit for determining a second downloading granularity, and downloading a content data frame indicated by the data frame index table by taking the second downloading granularity as a data amount requested to be downloaded at one time.
In one embodiment, the first downloading unit is specifically used for determining the first downloading granularity, comprising: setting the first downloading granularity as a preset fragment description data downloading granularity value; or, obtaining the first downloading granularity by calculation according to a current bandwidth and a preset first granularity duration; and
The second downloading unit is specifically used for determining a second downloading granularity, comprising: setting the second downloading granularity as a preset data frame downloading granularity value; or, obtaining the second downloading granularity by calculation according to a current bandwidth and a preset second granularity duration.
In one embodiment, the device further comprises:
A bitrate switching unit used for determining a target bitrate matching a current downloading speed in real time based on a monitoring result of the downloading speed in the downloading process; and if the target bitrate is different from a bitrate of a currently downloaded fragment, determining that bitrate switching is needed currently, and triggering the first downloading unit and the second downloading unit to request data to be downloaded according to a fragment corresponding to the target bitrate.
In one embodiment, the device further comprises:
A decoding control unit used for, when bitrate switching occurs, loading download data corresponding to a bitrate after switching into a first decoder in a decoding off state currently, and when a second decoder in a decoding on state currently finishes decoding a currently played decoding unit, switching the second decoder to a decoding off state to stop the second decoder from decoding, and switching the first decoder to a decoding on state to start the first decoder for decoding.
Based on the embodiment of the method for downloading a streaming media file, an embodiment of the application realizes equipment for downloading a streaming media file, which comprises a processor and a memory, wherein the memory stores an application program executable by the processor for causing the processor to execute the method for downloading a streaming media file as described above. Specifically, a system or device may be provided with a storage medium on which software program codes for realizing the functions of any one of the above embodiments are stored, and a computer (or CPU or MPU) of the system or device may read out and execute the program codes stored in the storage medium. In addition, part or all of the actual operations can be completed by an operating system operated on the computer based on instructions of the program codes. The program codes read from the storage medium can also be written into a memory arranged in an expansion board inserted into the computer or into a memory arranged in an expansion unit connected with the computer, and then part or all of the actual operations can be executed by a CPU installed on the expansion board or expansion unit based on the instructions of the program codes, thereby realizing the functions of any one of the above embodiments of the method for downloading a streaming media file.
The memory can be embodied as various storage media such as electrically erasable programmable read only memory (EEPROM), flash memory, and programmable program read only memory (PROM). The processor can be implemented to comprise one or more central processing units or one or more field programmable gate arrays, wherein the field programmable gate arrays integrate one or more central processing unit cores. Particularly, the central processing unit or the central processing unit core can be implemented as a CPU or MCU.
An embodiment of the application realizes a computer program product, which comprises a computer program/instruction, and when the computer program/instruction is executed by a processor, the steps of downloading a streaming media file as described above are realized.
It should be noted that not all steps and modules in the above-mentioned processes and structural diagrams are necessary, and some steps or modules can be omitted according to actual needs. The execution order of the steps is not fixed and can be adjusted as needed. The division of the modules is only to facilitate the description of different functions. In actual implementation, one module can be implemented as multiple modules, the functions of multiple modules can also be realized by one module, and the modules can be located in the same device or different devices.
Hardware modules in various embodiments can be implemented by a mechanical or electronic means. For example, a hardware module may comprise specially designed permanent circuits or logic devices (such as special-purpose processors, like FPGA or ASIC) for performing specific operations. The hardware module may also comprise programmable logic devices or circuits (such as general purpose processors or other programmable processors) temporarily configured by software for performing specific operations. Whether hardware modules are implemented by a mechanical means, a special permanent circuit or a temporarily configured circuit (such as configured by software) can be decided by taking consideration of cost and time.
Herein, "schematic" means "serving as an instance, example or explanation", and any diagram or embodiment described as "schematic" herein should not be interpreted as a more preferred or advantageous technical solution. For the sake of conciseness, only the parts related to the invention are schematically shown in each drawing, and they do not represent the actual structure of the product. In addition, in order to make the drawings simple and easy to understand, in some figures, only one of the components with the same structure or function is shown schematically, or only one of them is marked. Herein, "one" does not mean to limit the number of relevant parts of the invention to "only one", and "one" does not mean to exclude the situation that the number of relevant parts of the invention is "more than one". Herein, "upper", "lower", "front", "rear", "left", "right", "inner", "outer" and so on are only used to express the relative positional relationship among related parts, but not to limit the absolute positions of these related parts.
The above embodiments are only preferred ones of the invention and are not intended to limit the scope of protection of the invention. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the invention shall be included in the scope of protection of the invention.
Claims (10)
- A method for downloading a streaming media file, comprising:determining, when a fragment of the streaming media file needs to be downloaded, a first downloading granularity;downloading fragment description data of the fragment by taking the first downloading granularity as a data amount requested to be downloaded at one time, and constructing a data frame index table based on the fragment description data;determining a second downloading granularity; anddownloading a content data frame indicated by the data frame index table by taking the second downloading granularity as a data amount requested to be downloaded at one time.
- The method according to claim 1, whereindetermining the first downloading granularity comprises:setting the first downloading granularity as a preset fragment description data downloading granularity value;or, calculating to obtain the first downloading granularity according to a current bandwidth and a preset first granularity duration; anddetermining the second downloading granularity comprises:setting the second downloading granularity as a preset data frame downloading granularity value;or, calculating to obtain the second downloading granularity according to the current bandwidth and a preset second granularity duration.
- The method according to claim 1, wherein the method further comprises:determining, in the downloading process, a target bitrate matching a current downloading speed in real time based on a monitoring result of the downloading speed; andif the target bitrate is different from a bitrate of a currently downloaded fragment, switching a bitrate requested for downloading to the target bitrate, and requesting data to be downloaded according to a fragment corresponding to the target bitrate.
- The method according to claim 1, wherein the method further comprises:when bitrate switching occurs, loading downloaded data corresponding to a bitrate after switching into a first decoder in a decoding stop state currently, and when a second decoder in a decoding on state currently finishes decoding of a currently played decoding unit, switching the second decoder to a decoding stop state to stop the second decoder from decoding, and switching the first decoder to a decoding on state to start the first decoder for decoding.
- A device for downloading a streaming media file, comprising:a first downloading unit, configured to determine a first downloading granularity when a fragment of the streaming media file needs to be downloaded, download fragment description data of the fragment by taking the first downloading granularity as a data amount requested to be downloaded at one time, and construct a data frame index table based on the fragment description data; anda second downloading unit, configured to determine a second downloading granularity, and download a content data frame indicated by the data frame index table by taking the second downloading granularity as a data amount requested to be downloaded at one time.
- The downloading device according to claim 5, whereinthe first downloading unit, configured to determine the first downloading granularity, comprising: setting the first downloading granularity as a preset fragment description data downloading granularity value; or, calculating to obtain the first downloading granularity according to a current bandwidth and a preset first granularity duration; andthe second downloading unit configured to determine a second downloading granularity, comprising: setting the second downloading granularity as a preset data frame downloading granularity value; or, calculating to obtain the second downloading granularity according to the current bandwidth and a preset second granularity duration.
- The downloading device according to claim 5, wherein the device further comprises:a bitrate switching unit, configured to determine a target bitrate matching a current downloading speed in real time based on a monitoring result of the downloading speed in the downloading process; and if the target bitrate is different from a bitrate of a currently downloaded fragment, determine that bitrate switching is needed currently, and trigger the first downloading unit and the second downloading unit to request data to be downloaded according to a fragment corresponding to the target bitrate.
- The downloading device according to claim 5, wherein the device further comprises:a decoding control unit configured to: when bitrate switching occurs, load downloaded data corresponding to a bitrate after switching into a first decoder in a decoding stop state currently, and when a second decoder in a decoding on state currently finishes decoding of a currently played decoding unit, switch the second decoder to a decoding stop state to stop the second decoder from decoding, and switch the first decoder to a decoding on state to start the first decoder for decoding.
- An electronic equipment for downloading a streaming media file, comprising a processor and a memory;wherein the memory stores an application program executable by the processor for causing the processor to execute the method for downloading a streaming media file according to claim 1.
- A computer readable storage medium having stored thereon a computer readable instruction which is used for executing the method for downloading a streaming media file according to claim 1.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110980865.9A CN113691886B (en) | 2021-08-25 | 2021-08-25 | Downloading method and device of streaming media file |
CN202110980865.9 | 2021-08-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023027399A1 true WO2023027399A1 (en) | 2023-03-02 |
Family
ID=78582524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/012065 WO2023027399A1 (en) | 2021-08-25 | 2022-08-12 | Method and device for downloading streaming media file |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113691886B (en) |
WO (1) | WO2023027399A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113691886B (en) * | 2021-08-25 | 2024-05-07 | 三星电子(中国)研发中心 | Downloading method and device of streaming media file |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130124697A1 (en) * | 2008-05-12 | 2013-05-16 | Microsoft Corporation | Optimized client side rate control and indexed file layout for streaming media |
US20160234536A1 (en) * | 2015-02-10 | 2016-08-11 | Qualcomm Incorporated | Low latency video streaming |
KR20170011049A (en) * | 2015-07-21 | 2017-02-02 | 주식회사 이노피아테크 | Apparatus and method for synchronizing video and audio |
US20190081998A1 (en) * | 2012-07-10 | 2019-03-14 | Vid Scale, Inc. | Quality-driven streaming |
CN112866730A (en) * | 2020-12-31 | 2021-05-28 | 广州博冠信息科技有限公司 | Streaming media data transmission method, device, system, electronic equipment and storage medium |
CN113691886A (en) * | 2021-08-25 | 2021-11-23 | 三星电子(中国)研发中心 | Downloading method and device of streaming media file |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060065482A (en) * | 2004-12-10 | 2006-06-14 | 마이크로소프트 코포레이션 | A system and process for controlling the coding bit rate of streaming media data |
CN102073494B (en) * | 2010-12-30 | 2014-05-07 | 用友软件股份有限公司 | Method and device for managing cache data |
CN104768051B (en) * | 2015-03-06 | 2017-12-15 | 深圳市九洲电器有限公司 | The adaptive method for switching and system of odd encoder formatted program stream |
US10356159B1 (en) * | 2016-06-27 | 2019-07-16 | Amazon Technologies, Inc. | Enabling playback and request of partial media fragments |
CN106231440A (en) * | 2016-07-22 | 2016-12-14 | 华为技术有限公司 | A kind of files in stream media burst method for down loading, device and terminal |
CN106792112A (en) * | 2016-12-07 | 2017-05-31 | 北京小米移动软件有限公司 | Video broadcasting method and device |
CN111526089B (en) * | 2020-04-14 | 2021-08-17 | 北京交通大学 | Data fusion transmission and scheduling device based on variable-length granularity |
CN112104885B (en) * | 2020-09-09 | 2022-06-24 | 海看网络科技(山东)股份有限公司 | System and method for accelerating M3U8 initial playing speed in live broadcasting |
-
2021
- 2021-08-25 CN CN202110980865.9A patent/CN113691886B/en active Active
-
2022
- 2022-08-12 WO PCT/KR2022/012065 patent/WO2023027399A1/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130124697A1 (en) * | 2008-05-12 | 2013-05-16 | Microsoft Corporation | Optimized client side rate control and indexed file layout for streaming media |
US20190081998A1 (en) * | 2012-07-10 | 2019-03-14 | Vid Scale, Inc. | Quality-driven streaming |
US20160234536A1 (en) * | 2015-02-10 | 2016-08-11 | Qualcomm Incorporated | Low latency video streaming |
KR20170011049A (en) * | 2015-07-21 | 2017-02-02 | 주식회사 이노피아테크 | Apparatus and method for synchronizing video and audio |
CN112866730A (en) * | 2020-12-31 | 2021-05-28 | 广州博冠信息科技有限公司 | Streaming media data transmission method, device, system, electronic equipment and storage medium |
CN113691886A (en) * | 2021-08-25 | 2021-11-23 | 三星电子(中国)研发中心 | Downloading method and device of streaming media file |
Also Published As
Publication number | Publication date |
---|---|
CN113691886A (en) | 2021-11-23 |
CN113691886B (en) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012023833A2 (en) | Method and apparatus for reducing deterioration of a quality of experience of a multimedia service in a multimedia system | |
WO2016010229A1 (en) | Operating method of client and server for streaming service | |
WO2012099400A2 (en) | Apparatus and method for storing and playing content in a multimedia streaming system | |
WO2014129747A1 (en) | Method and apparatus for streaming multimedia content of server by using cache | |
WO2016052845A1 (en) | Cloud streaming service system, cloud streaming service method using optimal gpu, and apparatus for same | |
WO2023027399A1 (en) | Method and device for downloading streaming media file | |
CN110581973B (en) | Data playback method and device, terminal equipment and storage medium | |
WO2015190893A1 (en) | Method and device for managing multimedia data | |
WO2014014216A1 (en) | Caching proxy method and apparatus | |
WO2012047004A2 (en) | Method for transmitting a scalable http stream for natural reproduction upon the occurrence of expression-switching during http streaming | |
WO2015060638A1 (en) | Adaptive real-time transcoding method and streaming server therefor | |
WO2021029756A1 (en) | Apparatus and method for providing streaming video by application program | |
WO2023210969A1 (en) | Super-resolution reconstruction method and apparatus for adaptive streaming media and server | |
CN105187896A (en) | Multi-segment media file playing method and system | |
WO2012039576A2 (en) | Processing method to be implemented upon the occurrence of an expression switch in http streaming | |
WO2018021616A1 (en) | Operating method of client for streaming service | |
WO2019112360A1 (en) | Method and system for delayed live broadcast | |
WO2011162506A2 (en) | Method and apparatus for random access to multimedia content in wireless communication system | |
WO2013154364A1 (en) | Streaming playback method and computing apparatus using same | |
US6804266B1 (en) | Method and apparatus for handling private data from transport stream packets | |
CN113691847A (en) | Multi-screen frame synchronization method and device | |
WO2020159304A1 (en) | Virtual reality image switching method for implementing frame synchronization by controlling switching time point between divided images expressing virtual reality, and virtual reality image reproduction device | |
WO2012047077A2 (en) | Apparatus and method for multimedia service | |
WO2016018102A1 (en) | System for cloud streaming-based broadcast-associated service, client apparatus for broadcast-associated service, trigger content provision server and method utilizing same | |
WO2020096119A1 (en) | Electronic device and method for multi-channel playback of segmented images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22861609 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |