WO2023027399A1 - Method and device for downloading streaming media file - Google Patents

Method and device for downloading streaming media file Download PDF

Info

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
Application number
PCT/KR2022/012065
Other languages
French (fr)
Inventor
Yanfang Deng
Wen Wen
Siyuan Huang
Lei Li
Ye Sun
Original Assignee
Samsung Electronics Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co., Ltd. filed Critical Samsung Electronics Co., Ltd.
Publication of WO2023027399A1 publication Critical patent/WO2023027399A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/266Channel 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/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing 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/2387Stream 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

METHOD AND DEVICE FOR DOWNLOADING STREAMING MEDIA FILE
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:
Step 101, 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.
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.
Step 102, 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 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)

  1. 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; 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.
  2. The method according to claim 1, wherein
    determining 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; and
    determining 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.
  3. 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; 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.
  4. 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.
  5. 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; and
    a 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.
  6. The downloading device according to claim 5, wherein
    the 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; and
    the 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
PCT/KR2022/012065 2021-08-25 2022-08-12 Method and device for downloading streaming media file WO2023027399A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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