WO2020078388A1 - 一种流媒体数据传输方法、设备、装置和计算机存储介质 - Google Patents

一种流媒体数据传输方法、设备、装置和计算机存储介质 Download PDF

Info

Publication number
WO2020078388A1
WO2020078388A1 PCT/CN2019/111485 CN2019111485W WO2020078388A1 WO 2020078388 A1 WO2020078388 A1 WO 2020078388A1 CN 2019111485 W CN2019111485 W CN 2019111485W WO 2020078388 A1 WO2020078388 A1 WO 2020078388A1
Authority
WO
WIPO (PCT)
Prior art keywords
segment
chunk sub
file
chunk
sub
Prior art date
Application number
PCT/CN2019/111485
Other languages
English (en)
French (fr)
Inventor
季健
陈颖川
张斌
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2020078388A1 publication Critical patent/WO2020078388A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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/70Media network packetisation
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/233Processing of audio elementary streams
    • 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/233Processing of audio elementary streams
    • H04N21/2335Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
    • 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/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
    • H04N21/234309Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • 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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests

Definitions

  • Embodiments of the present disclosure relate to, but are not limited to, media data transmission technology, and in particular, to a streaming media data transmission method, device, device, and computer storage medium.
  • OTT (Over-The-Top) live broadcast refers to the Internet-based live broadcast service.
  • file fragments can be generated based on the streaming media data. Then, it is distributed through the Content Delivery Network (CDN) network to provide file fragments for the terminal; after receiving any file fragment, the terminal can play the file fragment; in the above OTT live broadcast technical solution ,
  • CDN Content Delivery Network
  • the live broadcast delay of media file playback on the terminal is closely related to the length of file fragmentation; in order to shorten the live broadcast delay, the length of the file fragmentation can be set relatively short, which will generate a large number of file fragments, The storage pressure of file fragmentation is increased; and if the duration of file fragmentation is set to be longer, it will increase the live broadcast delay of the terminal playing media files.
  • Embodiments of the present disclosure provide a streaming media data transmission method, device, device, and computer storage medium, which can solve the problems in the related art that the live broadcast delay of the terminal playing media files is long and the storage pressure of file fragmentation is large. .
  • An embodiment of the present disclosure provides a streaming media data transmission method, which is applied to a packager.
  • the method includes:
  • each file fragment includes one or more chunk sub-slices, and each chunk sub-slice is a file that can be played independently;
  • the generating at least one streaming media data file including one or more file fragments includes:
  • Obtain a streaming media data file separate audio data and video data from the streaming media data file; generate at least one streaming media data file corresponding to the audio data containing the file segment, and generate video data Corresponding at least one streaming media data file containing the file fragments.
  • the request to obtain the chunk sub-segment carries identification information of the fragment file corresponding to the requested chunk and the index of the chunk sub-segment requested to be acquired.
  • the sending a corresponding chunk sub-segment to the CDN edge node according to the request for acquiring a chunk sub-segment includes: finding the sub-segment of the chunk in the generated file segment When the chunk sub-segment corresponding to the fragmentation request is sent, the chunk sub-slice corresponding to the request to obtain the chunk sub-segment is sent to the CDN edge node.
  • the method further includes: after generating a file segment including a chunk sub-segment, for the generated file segment, according to a predetermined order of each chunk sub-segment in the corresponding file segment, in turn Store each chunk sub-segment in the corresponding file slice; when the number of stored chunk sub-slices is greater than a preset value, delete at least one stored chunk sub-segment in sequence according to the timing sequence of storing each chunk sub-segment Slices, so that the number of stored chunk sub-slices is less than or equal to the preset value;
  • the sending the corresponding chunk sub-segment to the CDN edge node according to the request to obtain the chunk sub-segment includes: finding the chunk sub-segment that is currently stored in the currently stored chunk sub-segment When requesting the corresponding chunk sub-segment, send the chunk sub-slice corresponding to the request to obtain the chunk sub-segment to the CDN edge node.
  • the sequentially storing each chunk sub-slice in the corresponding file slice includes: sequentially storing each chunk sub-slice in the corresponding file slice in the memory of the Package.
  • the sequentially storing each chunk sub-segment in the corresponding file fragment includes: storing each chunk sub-segment in the file fragment in the form of a queue;
  • the method further includes: establishing a queue index for the queue, the queue index is used to indicate the identification information of the file fragment corresponding to each chunk sub-segment stored in the queue, and the first of each file fragment The location information of chunk sub-shards in the queue.
  • the method further includes:
  • the CDN edge node When it is determined that the chunk sub-segment corresponding to the request to obtain the chunk sub-segment is the last chunk sub-segment of a file fragment, when sending the corresponding chunk sub-segment to the CDN edge node, The CDN edge node sends an indication message that file fragmentation has been completed.
  • An embodiment of the present disclosure also provides a streaming media data transmission method, which is applied to a CDN edge node of a content distribution network.
  • the method includes:
  • the acquisition is sent to the packager Package chunk sub-segment request, where the chunk sub-segment is a file that can be played separately;
  • the method further includes:
  • a local search out is sent to the terminal At least one chunk sub-shard.
  • the method further includes:
  • the chunk sub-segment from the Package is received, the chunk sub-segment from the Package is stored locally.
  • the locally storing the chunk sub-slices from the package includes: locally using a file segmentation cache mechanism to store the chunk sub-slices of each file fragment from the package.
  • the request to obtain the chunk sub-segment carries identification information of the file segment corresponding to the requested chunk sub-segment, and the index of the requested chunk sub-segment.
  • the method further includes:
  • the file fragment After sending a request to the Package to obtain the i-th chunk sub-segment in the file file fragment, upon receiving the indication information that the file fragment has been transmitted, the file fragment has been transmitted to the terminal Completed instructions.
  • An embodiment of the present disclosure provides a streaming media data transmission device.
  • the device is located in a package.
  • the device includes: a first processing module and a second processing module; wherein,
  • the first processing module is configured to generate at least one streaming media data file containing one or more file fragments, each file fragment includes one or more chunk sub-segments, and each chunk sub-segment is capable of independent playback document;
  • the second processing module is configured to, when receiving a request to obtain a chunk sub-segment of the CDN edge node of the content distribution network, send a corresponding chunk sub-segment to the CDN edge node according to the request to obtain the chunk sub-segment .
  • An embodiment of the present disclosure also provides a streaming media data transmission device, which is located in a CDN edge node of a content distribution network.
  • the device includes: a third processing module and a fourth processing module; wherein,
  • the third processing module is set to receive at least one chunk sub-segment of the file sub-segment containing the chunk sub-segment when the terminal obtains a request to obtain the file sub-segment containing the chunk sub-segment When sending a request to the packager Package to obtain chunk sub-slices, where the chunk sub-slices are files that can be played separately;
  • the fourth processing module is configured to, when receiving the chunk sub-segment from the Package, send the chunk sub-segment from the Package to the terminal.
  • An embodiment of the present disclosure provides a streaming media data transmission device.
  • the device is located in a package.
  • the device includes: a processor and a memory for storing a computer program that can run on the processor; wherein,
  • the processor is configured to execute the steps of the method performed by the streaming media data transmission device located in the package when running the computer program.
  • An embodiment of the present disclosure provides a streaming media data transmission device, where the device is located in a CDN edge node of a content distribution network, and the device includes a processor and a memory for storing a computer program that can run on the processor ;among them,
  • the processor is used to execute the steps of the method performed by the streaming media data transmission device located in the CDN edge node of the content distribution network when the computer program is running.
  • An embodiment of the present disclosure provides a computer storage medium on which a computer program is stored, which when executed by a processor implements the steps of a method performed by a streaming media data transmission device located in a package.
  • An embodiment of the present disclosure provides a computer storage medium on which a computer program is stored, which when executed by a processor implements steps of a method performed by a streaming media data transmission device located in a CDN edge node of a content distribution network.
  • a packager generates at least one streaming media data file including one or more file fragments, and each file fragment Includes one or more chunk sub-slices, each chunk sub-segment is a file that can be played independently; when a request to obtain a chunk sub-segment from a CDN edge node is received, according to the request to obtain the chunk sub-segment, The CDN edge node sends the corresponding chunk sub-shard.
  • each chunk sub-segment is a file that can be played individually. Therefore, when the terminal receives any chunk sub-segment from the CDN edge node, the terminal ’s player can be used to directly play the received The received chunk sub-segment does not need to be played after receiving a complete file fragment, which can reduce the live broadcast delay, and because the terminal does not need to play after receiving a complete file fragment, this Package can generate file fragments with a long duration, which can reduce the number of file fragments generated by Package, and thus can reduce the storage pressure of file fragments.
  • a CDN edge node when a CDN edge node receives a request from a terminal to obtain a file segment including a chunk sub-segment, and does not search locally
  • a request to obtain the chunk sub-segment is sent, where the chunk sub-segment is a file that can be played separately; a packet from the Package is received
  • the chunk is sub-sharded, the chunk sub-slice from the Package is sent to the terminal.
  • each chunk sub-segment is a file that can be played separately. Therefore, when the terminal receives any chunk sub-segment, the terminal ’s player can be used to directly play the received chunk Fragmentation, it is not necessary to play after receiving a complete file fragmentation, which can reduce the live broadcast delay, and because the terminal does not need to play after receiving a complete file fragmentation, so the Package can be generated for a longer period of time Large file sharding can reduce the number of file shards generated by the package, which in turn can reduce the storage pressure of the file shards.
  • FIG. 1 is a flowchart of a streaming media data transmission method according to an embodiment of the present disclosure
  • FIG. 2 is a schematic diagram of a file fragment containing chunk sub-slices according to an embodiment of the present disclosure
  • FIG. 3 is a schematic structural diagram of a streaming media data transmission device according to an embodiment of the present disclosure.
  • FIG. 4 is a hardware structure diagram of a streaming media data transmission device according to an embodiment of the present disclosure.
  • FIG. 5 is a schematic structural diagram of another streaming media data transmission device according to an embodiment of the present disclosure.
  • FIG. 6 is a hardware structure diagram of another streaming media data transmission device according to an embodiment of the present disclosure.
  • the embodiments of the present disclosure may be applied to a scenario where live streaming media is implemented.
  • a streaming media content provider is used to provide streaming media data.
  • the streaming media content provider may be a video website server or other implementations that provide streaming media.
  • the server of the live broadcast service, Package is used to receive the streaming media data provided by the streaming media content provider. After the package processes the streaming media data, the CDN can provide the corresponding playable file to the terminal through the CDN; node.
  • FIG. 1 is a flowchart of a streaming media data transmission method according to an embodiment of the present disclosure. As shown in FIG. 1, the process may include:
  • Step 101 Package generates at least one streaming media data file containing one or more file fragments, each file fragment includes one or more chunk sub-segments, and each chunk sub-segment is a file that can be played independently;
  • the streaming media data file to be transmitted may be sent to the Package by the streaming media content providing end; here, the streaming media data file to be transmitted may include at least one of audio data and video data.
  • Package may separate audio data and video data from the streaming media data file; generating at least one included file corresponding to the audio data
  • the segmented streaming media data file generates at least one streaming media data file corresponding to the video data that includes the file segment.
  • Package can receive streaming media data files in the form of code streams from the encoder, and then decode the received streaming media data files, and re-encode the decoded data according to the new encoding parameters to generate the include file Fragmented streaming media data segmentation; if the streaming media data file includes audio data and video data, after the Package receives streaming media data in the form of a code stream, the streaming media data file needs to be separated into audio data and video data, then, By re-encoding, at least one streaming media data file corresponding to the audio data containing file fragments is generated, and at least one streaming media data file corresponding to the video data containing the file fragments is generated.
  • each file segment includes a chunk sub-segment or multiple chunk sub-segments arranged in order.
  • the file segment when it includes multiple chunk sub-segments, it can be played according to the chunk sub-segment.
  • the order is divided into multiple chunk sub-slices.
  • FIG. 2 is a schematic diagram of a file fragment containing chunk sub-slices according to an embodiment of the present disclosure.
  • a box marked with mdat represents the acquired streaming media data file to be transmitted, and a file marked with moof
  • the box represents the file used to describe the streaming media data file to be transmitted;
  • the generation time point of the streaming media data file to be transmitted is the time point of the encoder's output streaming media data (denoted as the encoder output time point in Figure 2) ;
  • the box marked mdat represents a file file generated, and the box marked moof represents a file describing the corresponding file segment, the generation time of each file segment is recorded as the encoded output Time point;
  • the four small boxes above the box corresponding to each file slice represent the 4 chunk sub-slices of the file slice.
  • Step 102 When the CDN edge node receives the request of the terminal to obtain the file segment containing the chunk sub-segment, and when at least one chunk sub-segment of the file segment containing the chunk sub-segment is not found locally, Send a request to the package to obtain chunk sub-shards;
  • the request for obtaining the file fragment containing the chunk sub-slice may carry the identification information of the file fragment, and the identification information of the file file may Is the name of the file segment, the serial number of the file segment, or other.
  • the terminal when it determines that it needs to obtain live streaming media data, it sends a request to the CDN edge node to obtain a file fragment containing a chunk sub-segment; the CDN edge node receives After the file fragmentation request, you can determine whether at least one chunk sub-segment in the file fragment containing the chunk sub-segment can be found locally on the CDN edge node according to the request to obtain the file fragment containing the chunk sub-segment k, if it can be found, it will directly send at least one chunk sub-segment found locally to the terminal; if it cannot be found, it may send a request to the Package to obtain the corresponding chunk sub-segment.
  • the CDN edge node can locally store at least one chunk sub-shard of the file shard.
  • the stored chunk sub-shard and file can be established Correspondence of the identification information of the shards.
  • the CDN edge node receives the request from the terminal to obtain the file shard containing the chunk sub-shard, it can be Carry the identification information of the file fragment, and find the corresponding chunk sub-segment locally.
  • the CDN edge node when the CDN edge node stores the chunk sub-shard locally, it can also determine the index of the stored chunk sub-shard.
  • the CDN edge node when it receives the request to obtain the file fragment containing the chunk sub-segment sent by the terminal, it can search for files locally according to the order of the chunk sub-segments in the file fragment Each chunk sub-shard of the shard; that is, for any file shard, the CDN edge node can start from the first chunk sub-shard of the file shard and sequentially find each chunk of the corresponding file shard in turn Fragmentation.
  • the request to obtain the chunk sub-segment may carry: the identification information of the file segment corresponding to the requested chunk sub-segment, and the index of the requested chunk sub-segment.
  • any file fragment that contains a chunk sub-segment requested by the terminal first start from the first chunk sub-segment of the file fragment, and then locally search for each chunk sub-segment of the corresponding file fragment If it can be found locally, the chunk sub-segment found locally is sent to the terminal. After the terminal receives the chunk sub-segment, since the chunk sub-segment is a file that can be played separately, the received chunk can be directly played. Sub-shards; if any of the chunk sub-shards in the file shards cannot be found locally, send a request to the Package to obtain the corresponding chunk sub-shards.
  • the unit is chunk sub-shards.
  • the CDN edge node can send multiple requests to the package, each request gets a chunk sub-shard .
  • the request sent by the CDN edge node to the package to obtain the chunk sub-segment may be a HyperText Transfer Protocol (HTTP) request.
  • HTTP HyperText Transfer Protocol
  • the CDN edge may be added The index of the chunk sub-segment predetermined by the node and the package.
  • the index of the chunk sub-slice is used to indicate the number of chunk sub-slices of the corresponding file fragment.
  • the Package receives the chunk requested by the CDN edge node. After the sub-shard index, you can search for the corresponding chunk based on the received chunk sub-shard index.
  • Package determines the number of file fragments and the number of chunk sub-slices based on the file allocation time and the length of the chunk sub-slice. The number of chunk sub-segments contained in each file slice cannot be determined in advance.
  • the CDN edge node can request Package to obtain each chunk sub-segment in the file slice in turn. In one example, the chunk sub-slice The lower the index value, the higher the chunk sub-shard is in the file segment. So, when the CDN edge node requests the different chunk sub-slices in the same file segment from the Package in turn, the CDN edge node sends the chunk to the Package. The value of the index of the sub-shard will become larger and larger.
  • CDN edge nodes can interact with Package through the CDN network.
  • Step 101 may be executed before step 102, or may be executed after step 102, and both may be executed at the same time.
  • Step 103 When the Package receives the request to obtain the chunk sub-segment of the CDN edge node, according to the request to obtain the chunk sub-segment, the Package sends the corresponding chunk sub-segment to the CDN edge node.
  • the corresponding chunk sub-shard For an implementation of sending a corresponding chunk sub-shard to the CDN edge node according to the request to obtain a chunk sub-shard, in one example, you can search for and The chunk sub-shard corresponding to the request to obtain a chunk sub-segment, when a chunk sub-slice corresponding to the request to obtain the chunk sub-segment is found in the generated file fragment containing the chunk sub-segment, Send a chunk sub-shard corresponding to the request to obtain a chunk sub-segment to the CDN edge node; when the file fragment containing the chunk sub-segment is not found in the generated chunk
  • the corresponding streaming media data can be obtained again from the streaming media content provider, and a file segment containing the chunk sub-segment can be generated according to the acquired streaming media data, and then, the CDN edge can be directed to the edge
  • the node sends the chunk sub-slice corresponding to the request to obtain the chunk sub-
  • the Package is generating a chunk sub-shard based on the streaming data After the file is sharded, for the generated file shards containing chunk sub-shards, the chunk sub-shards in the corresponding file shards are stored in order according to the order of the chunk sub-shards in the corresponding file shards pre-agreed ; When the number of stored chunk sub-shards is greater than the preset value, delete at least one of the stored chunk sub-slices in sequence according to the timing relationship of the stored chunk sub-slices, so that the number of stored chunk sub-shards is less than Or equal to the preset value; when the Package receives the request to obtain the chunk sub-segment from the CDN edge node, if the chunk sub-segment corresponding to the request to obtain the chunk sub-seg
  • the number of chunk sub-shards stored in the Package can be controlled, thereby avoiding excessive use of the storage resources of the Package; in one example, the Package sub-segment can be utilized In the memory of the slice, each chunk sub-segment in the corresponding file slice is sequentially stored. Thus, by deleting the stored chunk sub-segment, it is possible to avoid excessive occupation of the memory resources of the package.
  • the file fragments generated by the Package are kept on the disk, and the disk file is distributed by the central server (origin) to the CDN edge node to provide the file fragment distribution service.
  • the Package may not generate the disk The file, but the chunk sub-shards are saved in the memory of the Package.
  • the CDN edge node can use the HTTP1.1 keepalive protocol to return directly from the Package through the source. Get chunk sub-shards.
  • each chunk sub-shard in the file slice is sequentially stored in the form of a queue; that is, in the Package, the establishment Queue, according to the order between file fragments and the order of each chunk sub-segment in each file fragment, sequentially store each chunk sub-segment in the file fragment.
  • the current The chunk sub-shards to be stored are placed at the end of the queue.
  • the maximum number of chunk sub-shards that is, the above-mentioned preset values
  • chunk sub-shards at the tail of the queue When adding chunk sub-shards at the tail of the queue, if the number of chunk sub-shards in the queue exceeds the maximum number of stored chunk sub-shards, the chunk sub-shards at the head of the queue will be aged out (delete the head of the queue) chunk sub-sharding).
  • Package when the streaming media data file to be transmitted includes audio data and video data, Package can maintain two queues, one of which is used to store chunks of audio data and the other is used to store video Chunks of data chunks.
  • a queue index may be established for the queue, and the queue index is used to indicate the file fragment corresponding to each chunk sub-segment stored in the queue.
  • the identification information and the position of the first chunk sub-segment of each file fragment in the queue can divide the file according to the file carried in the request.
  • the identification information of the slice quickly locate the position of the first chunk sub-slice of the corresponding file fragment in the queue, and then add the position of the first chun sub-slice k of the corresponding file fragment in the queue to The offset determined by the index of the chunk sub-segment, quickly find the position of the chunk sub-segment requested by the CDN edge node in the queue, and then the chunk from the position
  • the content of the slice is read out, and the response is returned for the CDN edge node; therefore, for the CDN edge node's request to obtain the chunk sub-shard, Package can quickly locate the specific location of the corresponding chunk sub-shard in the queue, which can improve the Package Efficiency of data search.
  • the queue index is used to indicate the position information of the last chunk sub-segment of each file fragment in the queue, so that Package can determine the chunk sub-segment corresponding to each file fragment in the queue Location range.
  • the CDN edge node's request to obtain the chunk sub-segment may also indicate the data type corresponding to the requested chunk sub-segment, and the data type corresponding to the requested chunk sub-segment is audio data or video data;
  • the CDN edge node's request to obtain the chunk sub-segment can carry the uniform resource locator (Uniform Resource Locator, URL) of the file segment corresponding to the chunk sub-segment.
  • URL Uniform Resource Locator
  • Used to request audio data or video data that is, when the Package receives a CDN edge node's request to obtain chunk sub-slices, it can first determine whether the CDN edge node requests audio data or a request Obtain video data; then, according to the type of data requested to obtain, search for chunk sub-slices in the corresponding queue.
  • the Package can determine whether the chunk sub-segment requested by the CDN edge node is a file fragment The last chunk sub-segment of the package, if the chunk sub-segment corresponding to the request to obtain the chunk sub-segment is not the last chunk sub-segment of a file fragment, the Package sends the corresponding chunk sub to the CDN edge node During fragmentation, the CDN edge node may be sent an indication that file fragmentation is not completed; if the chunk subfragment corresponding to the request to obtain a chunk subfragment is the last chunk subdivision of a file fragmentation When the Package sends the corresponding chunk sub-segment to the CDN edge node, it may send the CDN edge node indication information that the file fragment transmission is completed.
  • the CDN edge node After the CDN edge node sends a request to the Package to obtain the i-th chunk sub-segment in the file segment containing the chunk sub-segment, it can determine the file segment when it receives the indication that the file segment has not been transmitted.
  • the i-th chunk sub-segment in the slice is not the last chunk sub-segment of the file slice.
  • the i + 1 chunk in the file slice containing the chunk sub-segment may continue to be sent to the Package Sub-fragment request; after sending a request to the Package to obtain the i-th chunk sub-shard in the file fragment containing the chunk sub-segment, the CDN edge node receives the indication that the file fragment has been transmitted At this time, it can be determined that the i-th chunk sub-segment in the file fragment is the last chunk sub-segment of the file fragment, and at this time, an indication message that the file fragment has been transmitted can be sent to the terminal.
  • the Package can send data to the CDN edge node in the form of an HTTP response. You can add a custom in the HTTP response that the Package replies to the CDN edge node
  • the HTTP header field is used to fill in the chunk end flag is_last_chunk.
  • the chunk end flag indicates whether the chunk sub-segment is the last chunk sub-segment of the current segment. If it is, the value of the chunk end flag is determined to be 1, otherwise it is determined The value of the chunk end flag is 0. In this way, after receiving the HTTP response from the Package, the CDN edge node analyzes the value of the chunk end flag. If it is 1, it is considered that all chunk sub-segments of the file segment have been downloaded.
  • add an additional HTTP chunk End mark marking the completion of file fragment transmission.
  • Step 104 When the CDN edge node receives the chunk sub-segment from the Package, it sends the chunk sub-segment from the Package to the terminal.
  • each chunk sub-segment is a file that can be played separately, when the terminal receives any chunk sub-segment, the terminal's player can be used to directly play the received chunk sub-segment. It needs to be played after receiving a file fragment, which can reduce the live broadcast delay, and because the terminal does not need to play after receiving a file fragment, so the Package can generate a file fragment with a longer duration, which can be reduced The number of file fragments generated by Package can further reduce the storage pressure of file fragments.
  • the above technical solutions described in the embodiments of the present disclosure can be used to slice and distribute the OTT low-latency live broadcast in the chunk mode.
  • the delay of the OTT live broadcast will be greatly shortened, and the end user can see almost real-time video.
  • the CDN edge node may also store the chunk sub-segment from the Package locally.
  • the CDN edge node can implement the distribution and caching of file fragments containing chunk sub-shards, and actually provide file fragmentation services for end users; when the terminal requests data from the CDN edge node, the file fragmentation is still used as a unit
  • the CDN edge node uses HTTP to reply data to the terminal.
  • An HTTP chunk contains a chunk sub-segment of a file fragment. When the last chunk sub-segment of the file fragment is transmitted, it continues to reply to the terminal. HTTP chunk ends The message indicates that the transmission of the file fragmentation is ended.
  • the CDN edge node can use the file segmentation cache mechanism to provide services and return to the source for the terminal; here, the file segmentation cache is to divide the file into multiple small files, and the cache key of each small file is in the original file The segment index number is added to the file name, and then calculated using the hash function.
  • each small file is a chunk sub-slice
  • the segment index number is the value of the index of the chunk sub-slice.
  • the CDN edge node when the CDN edge node caches the chunk sub-shards of each file fragment, it can also design a cache key value (key) for each chunk sub-segment to be stored.
  • the cache key can be designed as the URL of the file segment requested by the terminal plus the index value of the chunk sub-segment.
  • the index value of the chunk sub-segment can be from 0 Start incrementing by 1 each time to get the index value of each chunk sub-segment in the file segment; after receiving the terminal's request to obtain the file segment containing the chunk sub-segment, the CDN edge node
  • each chunk sub-shard of the file fragment is searched in turn; when searching for any chunk sub-shard of the file fragment, you can search in the cache of the CDN edge node according to the cache key mentioned above Whether the corresponding chunk sub-segment exists, if it exists, read the content of the corresponding chunk sub-segment, and send the read contents of the chunk sub-segment to the terminal as an HTTP chunk; if the corresponding chunk sub-segment does not exist , The CDN edge node can send an HTTP request to the Package to request the corresponding chunk sub-seg
  • the CDN edge node After receiving the chunk sub-segment sent by the Package, the CDN edge node replies to the terminal with the content of the corresponding chunk sub-segment, and sends the corresponding chunk sub-segment cache; after that, if other terminals request the corresponding chunk sub-segment that has been cached from the CDN edge node again, the CDN edge node can directly read the cached data to serve other terminals; the CDN edge node is preparing to send the terminal When replying to the content of the chunk sub-segment, you can also determine the value of the chunk end flag.
  • the CDN edge node can add an HTTP chunk end flag to the content of the reply to the terminal; if the chunk end flag The value of is 0, the index value of the chunk sub-slice is increased by 1, and the corresponding chunk sub-slice is searched locally again.
  • the CDN edge node when the CDN edge node receives requests from multiple terminals to obtain the same file fragment, if any one of the chunk sub-slices in the corresponding file fragment does not exist, it may be directed to the first received file For fragmented requests, Package sends requests to obtain chunk sub-shards.
  • the chunk is sub-divided Slice cache, for the first received request to obtain file fragments, send chunk sub-shards to the corresponding terminal, and send the cached chunk sub-shards to other terminals; if you are providing chunk sub-shards for a terminal During the time period, the terminal receiving the chunk sub-segment becomes offline (the user is offline), you can start from the first uncached chunk sub-segment of the file slice, and request the corresponding chunk sub-package from the Package Fragmentation.
  • steps 101 and 103 can be implemented using a processor in a package, etc.
  • steps 102 and 104 can be implemented using a processor in a CDN edge node.
  • the streaming media data transmission method proposed in the foregoing embodiment of the present disclosure is further exemplified.
  • the second embodiment of the present disclosure mainly describes the transmission of a file segment including a chunk sub-slice based on a Transport Stream (TS), which will be exemplarily described below.
  • TS Transport Stream
  • the package After the package is started, it can receive the incoming TS stream of the encoder.
  • the incoming TS stream is the streaming media data file to be transmitted as described above;
  • Package parses the TS stream according to the TS specification, and converts the TS stream The audio data and the video data are separated, and then the audio data and the video data are decoded separately.
  • the video processing thread can re-encode the decoded video image according to the new bit rate and resolution, and then generate the file segment containing the chunk sub-segment from the encoded data, and then, the current generated chunk Fragments are added to the end of the queue created for video data, and the queue index of the queue created for video data is updated.
  • the audio processing thread can re-encode the decoded audio data according to the new encoding parameters, generate the file segment containing the chunk sub-segment from the encoded data, and then add the currently generated chunk sub-segment Go to the end of the queue created for audio data, and update the queue index of the queue created for audio data.
  • the CDN edge node After receiving the request of the terminal to obtain the file fragment containing the chunk sub-segment, the CDN edge node can send the Package to obtain the corresponding chunk sub-segment if no chunk sub-segment of the file fragment is found locally. After receiving the reply from the package, the request caches the received chunk sub-slices according to the file segmentation cache mechanism described above, so as to provide services to other terminals.
  • the streaming media data transmission method proposed in the foregoing embodiment of the present disclosure is further exemplified.
  • the third embodiment of the present disclosure mainly describes the transmission of file fragments containing chunk sub-slices based on Real-time Transport Protocol (RTP) streams, which will be exemplarily described below.
  • RTP Real-time Transport Protocol
  • the package After the package is started, it can receive the incoming RTP stream of the encoder.
  • the incoming RTP stream is the streaming media data file described above to be transmitted; the incoming RTP stream includes audio data and video data, and the Package is receiving
  • the RTP code stream is parsed according to the RTP protocol to obtain audio data and video data, and then the audio data and video data are decoded separately.
  • the video processing thread can re-encode the decoded video image according to the new bit rate and resolution, and then generate the file segment containing the chunk sub-segment from the encoded data, and then, the current generated chunk Fragments are added to the end of the queue created for video data, and the queue index of the queue created for video data is updated.
  • the audio processing thread can re-encode the decoded audio data according to the new encoding parameters, generate the file segment containing the chunk sub-segment from the encoded data, and then add the currently generated chunk sub-segment Go to the end of the queue created for audio data, and update the queue index of the queue created for audio data.
  • the CDN edge node After receiving the request of the terminal to obtain the file fragment containing the chunk sub-segment, the CDN edge node can send the Package to obtain the corresponding chunk sub-segment if no chunk sub-segment of the file fragment is found locally. After receiving the reply from the package, the request caches the received chunk sub-slices according to the file segmentation cache mechanism described above, so as to provide services to other terminals.
  • the fourth embodiment of the present disclosure mainly describes the transmission of file fragments containing chunk sub-slices based on the DASH (Dynamic Adaptive Streaming over HTTP) protocol, which will be exemplarily described below.
  • DASH Dynamic Adaptive Streaming over HTTP
  • the terminal sends a request to obtain the media description file (mpd) file to the CDN edge node.
  • the CDN edge node first searches for the corresponding mpd file in its own cache. When the cache expiration time is exceeded, the CDN edge node can send a request to obtain the mpd file to the package.
  • the package When the package receives the request to obtain the mpd file, the package reads the local mpd file and returns the mpd file to the CDN edge node; the CDN edge node is looking for After the mpd file that does not exceed the cache expiration time or the mpd file is received from the Package, the mpd file can be transmitted to the terminal; optionally, after the CDN edge node receives the mpd file from the Package, the mpd file can be cached locally .
  • the terminal After receiving the mpd file, the terminal parses the mpd file, extracts audio and video decoding parameters, initializes the player, and generates HTTP to obtain audio file fragments and video file fragments according to the fragmentation information of the audio and video file fragments in the mpd file Request, send an HTTP request to the CDN edge node to download audio and video file fragments;
  • the CDN edge node After receiving the HTTP request from the terminal, the CDN edge node calculates the cache key according to the index of the file segment requested by the terminal based on the name of the file segment requested by the terminal, based on the index of the chunk sub-segment of the file segment , According to the cache key to find the corresponding chunk sub-segment in the cache, if the corresponding chunk sub-segment can be found, read the corresponding chunk sub-segment, and read the contents of the chunk sub-segment as an HTTP chunk For the distribution service of the terminal, if the corresponding chunk sub-segment cannot be found, the CDN edge node can initiate an HTTP request to the Package through HTTP1.1 keepalive to request the corresponding chunk sub-segment.
  • the Package After receiving the HTTP request from the CDN edge node, the Package determines whether the corresponding chunk sub-shard exists according to the queue index maintained by itself. If it exists, it reads the content of the corresponding chunk sub-shard and sends a response to the CDN edge node. Carry the corresponding chunk sub-slice in the response.
  • the CDN edge node After receiving the response from the Package, the CDN edge node distributes the content of the chunk sub-slice carried in the response to the terminal with an HTTP chunk, and at the same time, caches the corresponding chunk sub-shard to facilitate subsequent service to other users; In addition, the CDN edge node judges the chunk end flag is_last_chunk in the custom field carried in the response from the Package. If the value of the chunk end flag is 1, it continues to send HTTP chunk messages to the terminal to indicate that the corresponding file fragmentation has been sent. ; If the value of the chunk end flag is 0, the index number of the chunk sub-segment is increased by 1, and the search for the corresponding chunk sub-segment at the CDN edge node is restarted.
  • the terminal After the terminal receives any chunk sub-segment of the file segment (for example, the first chunk sub-segment), it can play the corresponding chunk sub-segment without downloading the file segment, which can greatly shorten the live broadcast. Delay.
  • the streaming media data transmission method proposed in the foregoing embodiment of the present disclosure is further exemplified.
  • the fifth embodiment of the present disclosure mainly describes the transmission of file fragments containing chunk sub-slices based on the HLS (HTTP Live Streaming) protocol, which will be exemplarily described below.
  • HLS HTTP Live Streaming
  • the terminal sends a request to the CDN edge node to obtain the m3u8 file.
  • the CDN edge node first searches the corresponding m3u8 file in its cache. If it does not find it, or finds the corresponding m3u8 file, but the found m3u8 file exceeds the cache expiration time , The CDN edge node can send a request to obtain the mpd file to the package. When the package receives the request to obtain the mpd file, the local mpd file is read and the mpd file is returned to the CDN edge node; the CDN edge node finds that the cache has not been exceeded.
  • the CDN edge node After the time of the m3u8 file, you can transfer the m3u8 file to the terminal; after the CDN edge node receives the mpd file from the Package, it can convert the mpd file to an m3u8 file, transfer the m3u8 file to the terminal, and cache the m3u8 file locally.
  • the terminal After receiving the m3u8 file, the terminal parses the m3u8 file, extracts audio and video decoding parameters, initializes the player, and generates HTTP to obtain audio file fragments and video file fragments according to the fragmentation information of the audio and video file fragments in the m3u8 file. Request, send an HTTP request to the CDN edge node to download audio and video file fragments;
  • the CDN edge node After receiving the HTTP request from the terminal, the CDN edge node calculates the cache according to the index of the chunk sub-segment of the file segment based on the file segment file caching mechanism described above, based on the file name of the file segment requested by the terminal key, according to the cache key to find the corresponding chunk sub-segment in the cache, if the corresponding chunk sub-segment can be found, the corresponding chunk sub-segment is read, and the content of the chunk sub-segment is read with an HTTP The chunk provides distribution services to the terminal. If the corresponding chunk sub-shard cannot be found, the CDN edge node can initiate an HTTP request to the package through HTTP1.1 keepalive to request the corresponding chunk sub-shard.
  • the Package After receiving the HTTP request from the CDN edge node, the Package determines whether the corresponding chunk sub-shard exists according to the queue index maintained by itself. If it exists, it reads the content of the corresponding chunk sub-shard and sends a response to the CDN edge node. Carry the corresponding chunk sub-slice in the response.
  • the CDN edge node After receiving the response from the Package, the CDN edge node distributes the content of the chunk sub-slice carried in the response to the terminal with an HTTP chunk, and at the same time, caches the corresponding chunk sub-shard to facilitate subsequent service to other users; In addition, the CDN edge node judges the chunk end flag is_last_chunk in the custom field carried in the response from the Package. If the value of the chunk end flag is 1, it continues to send HTTP chunk messages to the terminal to indicate that the corresponding file fragmentation has been sent. ; If the value of the chunk end flag is 0, the index number of the chunk sub-segment is increased by 1, and the search for the corresponding chunk sub-segment at the CDN edge node is restarted.
  • the terminal After the terminal receives any chunk sub-segment of the file segment (for example, the first chunk sub-segment), it can play the corresponding chunk sub-segment without downloading the file segment, which can greatly shorten the live broadcast Delay.
  • the terminal After the terminal receives any chunk sub-segment of the file segment (for example, the first chunk sub-segment), it can play the corresponding chunk sub-segment without downloading the file segment, which can greatly shorten the live broadcast Delay.
  • the streaming media data transmission method proposed in the foregoing embodiment of the present disclosure is further exemplified.
  • the streaming media data transmission method of an embodiment of the present disclosure is applied to a package, and may include:
  • each file fragment includes one or more chunk sub-slices, and each chunk sub-slice is a file that can be played independently;
  • the corresponding chunk sub-segment is sent to the CDN edge node.
  • the generating at least one streaming media data file including one or more file fragments includes:
  • Obtain a streaming media data file separate audio data and video data from the streaming media data file; generate at least one streaming media data file corresponding to the audio data containing the file segment, and generate video data Corresponding at least one streaming media data file containing the file fragments.
  • the request to obtain the chunk sub-slice carries identification information of the fragment file corresponding to the requested chunk and an index of the requested chunk sub-segment.
  • the sending the corresponding chunk sub-segment to the CDN edge node according to the request for acquiring the chunk sub-segment includes: finding and acquiring the acquired When the chunk sub-segment corresponding to the chunk sub-segment request is sent, the chunk sub-slice corresponding to the request to obtain the chunk sub-segment is sent to the CDN edge node.
  • the method further includes: after generating a file segment including a chunk sub-segment, for the generated file segment, according to a predetermined order of each chunk sub-segment in the corresponding file segment , Sequentially store each chunk sub-segment in the corresponding file slice; when the number of stored chunk sub-slices is greater than a preset value, delete at least one of the stored chunks in sequence according to the timing relationship of storing each chunk sub-segment Sub-sharding, making the number of stored chunk sub-shards less than or equal to the preset value;
  • the sending the corresponding chunk sub-segment to the CDN edge node according to the request to obtain the chunk sub-segment includes: finding the chunk sub-segment that is currently stored in the currently stored chunk sub-segment When requesting the corresponding chunk sub-segment, send the chunk sub-slice corresponding to the request to obtain the chunk sub-segment to the CDN edge node.
  • the sequentially storing each chunk sub-segment in the corresponding file slice includes: sequentially storing each chunk sub-segment in the corresponding file slice in the memory of the Package.
  • the sequentially storing each chunk sub-segment in the corresponding file fragment includes: storing each chunk sub-segment in the file fragment in the form of a queue;
  • the method further includes: establishing a queue index for the queue, the queue index is used to indicate the identification information of the file fragment corresponding to each chunk sub-segment stored in the queue, and the first of each file fragment The location information of chunk sub-shards in the queue.
  • the method further includes:
  • the CDN edge node When it is determined that the chunk sub-segment corresponding to the request to obtain the chunk sub-segment is the last chunk sub-segment of a file fragment, when sending the corresponding chunk sub-segment to the CDN edge node, The CDN edge node sends an indication message that file fragmentation has been completed.
  • the streaming media data transmission method proposed in the foregoing embodiment of the present disclosure is further exemplified.
  • the streaming media data transmission method of an embodiment of the present disclosure is applied to a CDN edge node, and may include:
  • the chunk sub-segment When receiving a request from a terminal to obtain a file fragment containing a chunk sub-segment, and when at least one chunk sub-segment of the file fragment containing the chunk sub-segment is not found locally, the chunk sub-segment is sent to the Package A request for slicing, wherein the chunk sub-segment is a file that can be played separately;
  • the method further includes:
  • a local search out is sent to the terminal At least one chunk sub-shard.
  • the method further includes:
  • the chunk sub-segment from the Package is received, the chunk sub-segment from the Package is stored locally.
  • storing the chunk sub-segments from the package locally includes: locally using a file segmentation cache mechanism to store chunk sub-slices of each file fragment from the package.
  • the request to obtain the chunk sub-segment carries identification information of the file segment corresponding to the requested chunk sub-segment and the index of the requested chunk sub-segment.
  • the method further includes: after sending a request to the Package to obtain the i-th chunk sub-segment in the file fragment, when receiving the indication information that the file fragment has not been transmitted completed , Continue to send a request to the Package to obtain the i + 1th chunk sub-segment in the file fragment; i is an integer greater than or equal to 1;
  • the file fragment After sending a request to the Package to obtain the i-th chunk sub-segment in the file file fragment, upon receiving the indication information that the file fragment has been transmitted, the file fragment has been transmitted to the terminal Completed instructions.
  • an eighth embodiment of the present disclosure proposes a streaming media data transmission device, which is located in a Package
  • FIG. 3 is a schematic structural diagram of a streaming media data transmission device according to an embodiment of the present disclosure. As shown in FIG. 3, the device includes a first processing module 301 and a second processing module 302, wherein,
  • the first processing module 301 is configured to generate at least one streaming media data file containing one or more file fragments, each file fragment includes one or more chunk sub-segments, and each chunk sub-segment can be independent Played files;
  • the second processing module 302 is configured to, when receiving the request for acquiring the chunk sub-segment of the CDN edge node, send the corresponding chunk sub-segment to the CDN edge node according to the request for acquiring the chunk sub-segment.
  • the first processing module 301 is configured to obtain a streaming media data file, separate audio data and video data from the streaming media data file; generate at least one inclusion corresponding to the audio data
  • the streaming media data file of the file segment generates at least one streaming media data file corresponding to the video data that includes the file segment.
  • the request to obtain the chunk sub-slice carries identification information of the fragment file corresponding to the requested chunk and an index of the requested chunk sub-segment.
  • the second processing module 302 is configured to: when a chunk sub-segment corresponding to the request to obtain a chunk sub-segment is found in the generated file fragment, send to the CDN The edge node sends a chunk sub-slice corresponding to the request to obtain chunk sub-slices.
  • the first processing module 301 is further configured to, after generating a file fragment containing a chunk sub-segment, according to the pre-agreed corresponding file fragment for each chunk in the generated file fragment
  • the order of the shards is to store each chunk sub-segment in the corresponding file shard in sequence; when the number of stored chunk sub-shards is greater than the preset value, delete at least one at a time according to the timing relationship of the chunk sub-segments A stored chunk sub-shard, so that the number of stored chunk sub-shards is less than or equal to a preset value;
  • the second processing module 302 is configured to send the chunk sub-segment corresponding to the request to obtain the chunk sub-segment to the CDN edge node and send the The chunk sub-slice corresponding to the request to obtain the chunk sub-shard.
  • the first processing module 301 is configured to store each chunk sub-slice in the corresponding file slice in sequence in the memory of the Package. .
  • the first processing module 301 is configured to store each chunk in the file shard in the form of a queue; the sub-shard
  • the first processing module 301 is further configured to establish a queue index for the queue, and the queue index is used to indicate the identification information of the file fragment corresponding to each chunk sub-segment stored in the queue, and each file fragment The position information of the first chunk of the slice in the queue.
  • the second processing module 302 is further configured to determine that the chunk sub-segment corresponding to the request to obtain a chunk sub-segment is not the last chunk sub-segment of a file
  • the CDN edge node sends the corresponding chunk sub-segment, it sends the CDN edge node an indication that the file fragment has not been transmitted; it is determined that the chunk sub-segment corresponding to the request to obtain the chunk sub-segment is a
  • the CDN edge node is sent an indication that the file fragment has been transmitted.
  • both the first processing module 301 and the second processing module 302 can be composed of a central processing unit (CPU), a microprocessor (Micro Processing Unit, MPU), and a digital signal processor (Digital Signal, Processor (DSP), or Field Programmable Gate Array (FPGA), etc.
  • CPU central processing unit
  • MPU Micro Processing Unit
  • DSP Digital Signal, Processor
  • FPGA Field Programmable Gate Array
  • each functional module in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or software function module.
  • the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it may be stored in a computer-readable storage medium.
  • the technical solution of this embodiment essentially or It is said that part of the contribution to the existing technology or all or part of the technical solution can be embodied in the form of a software product.
  • the computer software product is stored in a storage medium and includes several instructions to make a computer device (may It is a personal computer, a server, or a network device, etc.) or a processor (processor) that performs all or part of the steps of the method described in this embodiment.
  • the foregoing storage media include various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (Read Only Memory, ROM), a random access memory (Random Access Memory, RAM), a magnetic disk, or an optical disk.
  • program codes such as a USB flash drive, a mobile hard disk, a read-only memory (Read Only Memory, ROM), a random access memory (Random Access Memory, RAM), a magnetic disk, or an optical disk.
  • computer program instructions corresponding to a streaming media data transmission method in this embodiment may be stored on a storage medium such as an optical disk, a hard disk, or a USB flash drive.
  • a storage medium such as an optical disk, a hard disk, or a USB flash drive.
  • the storage medium corresponds to a streaming media data transmission method
  • the computer program instructions are read or executed by an electronic device, the steps of any one of the streaming media data transmission methods in the foregoing embodiments are implemented.
  • FIG. 4 shows a streaming media data transmission device 40 provided by an embodiment of the present disclosure.
  • the device may include: a first memory 41, a first processor 42, and a first Bus 43; where,
  • the first bus 43 is used to connect the first memory 41, the first processor 42 and these devices to communicate with each other;
  • the first memory 41 is used to store computer programs and data
  • the first processor 42 is configured to execute a computer program stored in the memory to implement the steps of any one of the streaming media data transmission methods in the foregoing embodiments.
  • the first memory 41 may be volatile memory (volatile memory), such as RAM; or non-volatile memory (non-volatile memory), such as ROM, flash memory (memory), hard disk ( Hard Drive (HDD) or Solid-State Drive (SSD); or a combination of the above types of memory, and provides instructions and data to the first processor 42.
  • volatile memory such as RAM
  • non-volatile memory such as ROM, flash memory (memory), hard disk ( Hard Drive (HDD) or Solid-State Drive (SSD); or a combination of the above types of memory, and provides instructions and data to the first processor 42.
  • the first processor 42 may be an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), DSP, digital signal processing device (Digital Signal Processing Device, DSPD), programmable logic device (Programmable Logic Device, PLD), FPGA, At least one of a CPU, controller, microcontroller, and microprocessor. Understandably, for different devices, the electronic device used to implement the above-mentioned processor function may also be other, and the embodiments of the present disclosure are not specifically limited.
  • ASIC Application Specific Integrated Circuit
  • DSP digital signal processing device
  • DSPD Digital Signal Processing Device
  • PLD programmable logic device
  • FPGA FPGA
  • the ninth embodiment of the present disclosure proposes another streaming media data transmission device, which is located in a CDN edge node;
  • FIG. 5 is a schematic structural diagram of another streaming media data transmission device according to an embodiment of the present disclosure. As shown in FIG. 5, the device includes a third processing module 501 and a fourth processing module 502, wherein,
  • the third processing module 501 is configured to receive at least one chunk sub-segment of the file sub-segment containing the chunk sub-segment when the terminal receives a request to obtain the file sub-segment containing the chunk sub-segment During the slice, send a request to the packager to obtain the chunk sub-slice, where the chunk sub-slice is a file that can be played separately;
  • the fourth processing module 502 is configured to, when receiving the chunk sub-segment from the Package, send the chunk sub-segment from the Package to the terminal.
  • the third processing module 501 is further configured to, when receiving a request from the terminal to obtain a file segment including a chunk sub-segment, and find the file segment including the chunk sub-segment locally When at least one chunk sub-segment in the slice, at least one chunk sub-segment found locally is sent to the terminal.
  • the fourth processing module 502 is further configured to store the chunk sub-segment from the package locally when receiving the chunk sub-segment from the package.
  • the fourth processing module 502 is configured to locally use a file segmentation cache mechanism to store chunk sub-slices of each file fragment from the Package.
  • the request to obtain the chunk sub-segment carries identification information of the file segment corresponding to the requested chunk sub-segment and the index of the requested chunk sub-segment.
  • the third processing module 501 is further configured to, after sending a request to the Package to obtain the i-th chunk sub-segment in the file fragment, not receive the file fragment before transmission Upon completion of the instruction information, continue to send a request to the Package to obtain the i + 1th chunk sub-slice in the file fragment; i is an integer greater than or equal to 1;
  • the file fragment After sending a request to the Package to obtain the i-th chunk sub-segment in the file file fragment, upon receiving the indication information that the file fragment has been transmitted, the file fragment has been transmitted to the terminal Completed instructions.
  • both the third processing module 501 and the fourth processing module 502 can be implemented by a CPU, MPU, DSP, or FPGA located in the CDN edge node.
  • each functional module in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or software function module.
  • the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it may be stored in a computer-readable storage medium.
  • the technical solution of this embodiment essentially or It is said that part of the contribution to the existing technology or all or part of the technical solution can be embodied in the form of a software product.
  • the computer software product is stored in a storage medium and includes several instructions to make a computer device (may It is a personal computer, server, or network device, etc.) or a processor that executes all or part of the steps in the method described in this embodiment.
  • the foregoing storage media include various media that can store program codes, such as a U disk, a mobile hard disk, a ROM, a RAM, a magnetic disk, or an optical disk.
  • computer program instructions corresponding to a streaming media data transmission method in this embodiment may be stored on a storage medium such as an optical disk, a hard disk, or a USB flash drive.
  • a storage medium such as an optical disk, a hard disk, or a USB flash drive.
  • the storage medium corresponds to a streaming media data transmission method
  • the computer program instructions are read or executed by an electronic device, the steps of any one of the streaming media data transmission methods in the foregoing embodiments are implemented.
  • FIG. 6 shows another streaming media data transmission device 60 provided by an embodiment of the present disclosure.
  • the device may include: a second memory 61, a second processor 62, and a second Second bus 63; where,
  • the second bus 63 is used to connect the second memory 61, the second processor 62, and these devices to communicate with each other;
  • the second memory 61 is used to store computer programs and data
  • the second processor 62 is configured to execute a computer program stored in the memory to implement the steps of any one of the streaming media data transmission methods in the foregoing embodiments.
  • the second memory 61 may be a volatile memory, such as RAM; or a non-volatile memory, such as ROM, flash memory, HDD, or solid state drive SSD; or a combination of the above types of memory, and parallel
  • the second processor 62 provides instructions and data.
  • the second processor 62 may be at least one of a special-purpose integrated circuit ASIC, DSP, DSPD, PLD, FPGA, CPU, controller, microcontroller, and microprocessor. Understandably, for different devices, the electronic device used to implement the above-mentioned processor function may also be other, and the embodiments of the present disclosure are not specifically limited.
  • the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of a hardware embodiment, a software embodiment, or an embodiment combining software and hardware. Moreover, the present disclosure may take the form of a computer program product implemented on one or more computer usable storage media (including but not limited to disk storage and optical storage, etc.) containing computer usable program code.
  • a computer usable storage media including but not limited to disk storage and optical storage, etc.
  • These computer program instructions may also be stored in a computer readable memory that can guide a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture including an instruction device, the instructions The device implements the functions specified in one block or multiple blocks of the flowchart one flow or multiple flows and / or block diagrams.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device, so that a series of operating steps are performed on the computer or other programmable device to produce computer-implemented processing, which is executed on the computer or other programmable device
  • the instructions provide steps for implementing the functions specified in one block or multiple blocks of the flowchart one flow or multiple flows and / or block diagrams.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开实施例提供了一种流媒体数据传输方法、设备、装置和计算机存储介质,所述方法应用于Package中,包括:生成至少一个包含chunk子分片的文件分片的流媒体数据文件,每个文件分片包括一个或者多个chunk子分片,每个chunk子分片为能够独立播放的文件;接收到内容分发网络CDN边缘节点的获取chunk子分片的请求时,根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片。

Description

一种流媒体数据传输方法、设备、装置和计算机存储介质 技术领域
本公开实施例涉及但不限于媒体数据传输技术,尤其涉及一种流媒体数据传输方法、设备、装置和计算机存储介质。
背景技术
OTT(Over-The-Top)直播是指基于互联网的直播服务,在相关的OTT直播的技术中,在从流媒体内容提供端获取到流媒体数据后,可以基于流媒体数据生成文件分片,然后通过内容分发网络(Content Delivery Network,CDN)网络进行分发,进而为终端提供文件分片;终端在收到任意一个文件分片后,可以播放该文件分片;在上述OTT直播的技术方案中,终端上的媒体文件播放的直播延时和文件分片的时长有着紧密的关系;为了缩短直播延时,可以把文件分片的时长设置的比较短,这样就会产生大量的文件分片,增大了文件分片的存储压力;而如果将文件分片的时长设置的比较长,则会增大终端播放媒体文件的直播延时。
公开内容
本公开实施例提供了一种流媒体数据传输方法、设备、装置和计算机存储介质,能够解决相关技术中存在的终端播放媒体文件的直播延时较长和文件分片的存储压力较大的问题。
为达到上述目的,本公开实施例的技术方案是这样实现的:
本公开实施例提供了一种流媒体数据传输方法,应用于封包器Package中,所述方法包括:
生成至少一个包含一个或者多个文件分片的流媒体数据文件,每个文 件分片中包括一个或者多个chunk子分片,每个chunk子分片为能够独立播放的文件;
接收到内容分发网络CDN边缘节点的获取chunk子分片的请求时,根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片。
可选的,所述生成至少一个包含一个或者多个文件分片的流媒体数据文件,包括:
获取流媒体数据文件,在所述流媒体数据文件中分离出音频数据和视频数据;生成与所述音频数据对应的至少一个包含所述文件分片的流媒体数据文件,生成与所述视频数据对应的至少一个包含所述文件分片的流媒体数据文件。
可选的,所述获取chunk子分片的请求携带有请求获取的chunk对应的分片文件的标识信息、以及请求获取的chunk子分片的索引。
可选的,所述根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片,包括:在生成的所述文件分片中查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片。
可选的,所述方法还包括:在生成一个包含chunk子分片的文件分片后,针对生成的文件分片,按照预先约定的对应文件分片中各chunk子分片的先后顺序,依次存储对应文件分片中的各个chunk子分片;在存储的chunk子分片的数量大于预设值时,按照存储各chunk子分片的先后时序关系,依次删除至少一个已存储的chunk子分片,使存储的chunk子分片的数量小于或等于预设值;
所述根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片,包括:在当前已存储的chunk子分片中查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片。
可选的,所述依次存储对应文件分片中的各个chunk子分片,包括:在Package的内存中,依次存储对应文件分片中的各个chunk子分片。
可选的,所述依次存储对应文件分片中的各个chunk子分片,包括:以队列的形式存储应文件分片中的各个chunk子分片;
所述方法还包括:针对所述队列,建立队列索引,所述队列索引用于指示队列中存储的各个chunk子分片对应的文件分片的标识信息、以及每个文件分片的第一个chunk子分片在队列中的位置信息。
可选的,所述方法还包括:
确定与所述获取chunk子分片的请求对应的chunk子分片不是一个文件分片的最后一个chunk子分片时,在向所述CDN边缘节点发送对应的chunk子分片时,向所述CDN边缘节点发送文件分片未传输完成的指示信息;
确定与所述获取chunk子分片的请求对应的chunk子分片是一个文件分片的最后一个chunk子分片时,在向所述CDN边缘节点发送对应的chunk子分片时,向所述CDN边缘节点发送文件分片已传输完成的指示信息。
本公开实施例还提供了一种流媒体数据传输方法,应用于内容分发网络CDN边缘节点中,所述方法包括:
接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地未查找到所述包含chunk子分片的文件分片的至少一个chunk子分片时,向封包器Package发送获取chunk子分片的请求,其中,所述chunk子分片为能够单独播放的文件;
接收到来自Package的chunk子分片时,向所述终端发送所述来自Package的chunk子分片。
可选的,所述方法还包括:
接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地 查找到所述包含chunk子分片的文件分片中的至少一个chunk子分片时,向终端发送本地查找出的至少一个chunk子分片。
可选的,所述方法还包括:
接收到来自Package的chunk子分片时,在本地存储所述来自Package的chunk子分片。
可选的,所述在本地存储所述来自Package的chunk子分片,包括:在本地采用文件分段缓存机制存储来自Package的各个文件分片的chunk子分片。
可选的,所述获取chunk子分片的请求携带有请求获取的chunk子分片对应的文件分片的标识信息、以及请求获取的chunk子分片的索引。
可选的,所述方法还包括:
在向所述Package发送获取所述文件分片中的第i个chunk子分片的请求后,在接收到文件分片未传输完成的指示信息时,继续向所述Package发送获取所述文件分片中的第i+1个chunk子分片的请求;i为大于或等于1的整数;
在向所述Package发送获取所述文件文件分片中的第i个chunk子分片的请求后,在接收到文件分片已传输完成的指示信息时,向终端发送所述文件分片已传输完成的指示信息。
本公开实施例提供了一种流媒体数据传输装置,所述装置位于封包器Package中,所述装置包括:第一处理模块和第二处理模块;其中,
第一处理模块,设置为生成至少一个包含一个或者多个文件分片的流媒体数据文件,每个文件分片中包括一个或者多个chunk子分片,每个chunk子分片为能够独立播放的文件;
第二处理模块,设置为在接收到内容分发网络CDN边缘节点的获取chunk子分片的请求时,根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片。
本公开实施例还提供了一种流媒体数据传输装置,所述装置位于内容分发网络CDN边缘节点中,所述装置包括:第三处理模块和第四处理模块;其中,
第三处理模块,设置为在接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地未查找到所述包含chunk子分片的文件分片的至少一个chunk子分片时,向封包器Package发送获取chunk子分片的请求,其中,所述chunk子分片为能够单独播放的文件;
第四处理模块,设置为接收到来自Package的chunk子分片时,向所述终端发送所述来自Package的chunk子分片。
本公开实施例提供了一种流媒体数据传输设备,所述设备位于封包器Package中,所述装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于在运行所述计算机程序时,执行位于封包器Package中的流媒体数据传输装置执行的方法的步骤。
本公开实施例提供了一种流媒体数据传输设备,其中,所述设备位于内容分发网络CDN边缘节点中,所述设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于在运行所述计算机程序时,执行位于内容分发网络CDN边缘节点中流媒体数据传输装置执行的方法的步骤。
本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现位于封包器Package中的流媒体数据传输装置执行的方法的步骤。
本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现位于内容分发网络CDN边缘节点中流媒体数据传输装置执行的方法的步骤。
本公开实施例提供的一种流媒体数据传输方法、设备、装置和计算机存储介质中,封包器(Package)生成至少一个包含一个或者多个文件分 片的流媒体数据文件,每个文件分片中包括一个或者多个chunk子分片,每个chunk子分片为能够独立播放的文件;接收到CDN边缘节点的获取chunk子分片的请求时,根据获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片。
在采用上述记载的技术方案时,由于每个chunk子分片为能够单独播放的文件,因而,在终端从CDN边缘节点接收到任意一个chunk子分片时,可以利用终端的播放器直接播放接收到的chunk子分片,不需要在接收到一个完整的文件分片后再进行播放,这样可以减少直播延时,并且,由于终端不需要在接收到一个完整的文件分片后进行播放,这样Package可以生成时长较大的文件分片,可以降低Package生成的文件分片的数量,进而可以降低文件分片的存储压力。
本公开实施例提供的另一种流媒体数据传输方法、设备、装置和计算机存储介质中,CDN边缘节点接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地未查找到所述包含chunk子分片的文件分片的至少一个chunk子分片时,向Package发送获取chunk子分片的请求,其中,chunk子分片为能够单独播放的文件;接收到来自Package的chunk子分片时,向所述终端发送来自Package的chunk子分片。
在采用上述记载的技术方案时,由于每个chunk子分片为能够单独播放的文件,因而,在终端接收到任意一个chunk子分片时,可以利用终端的播放器直接播放接收到的chunk子分片,不需要在接收到一个完整的文件分片后进行播放,这样可以减少直播延时,并且,由于终端不需要在接收到一个完整的文件分片后进行播放,这样Package可以生成时长较大的文件分片,可以降低Package生成的文件分片的数量,进而可以降低文件分片的存储压力。
附图说明
图1为本公开实施例的一种流媒体数据传输方法的流程图;
图2为本公开实施例的包含chunk子分片的文件分片的一个示意图;
图3为本公开实施例的一种流媒体数据传输装置的组成结构示意图;
图4为本公开实施例的一种流媒体数据传输设备的硬件结构图;
图5为本公开实施例的另一种流媒体数据传输装置的组成结构示意图;
图6为本公开实施例的另一种流媒体数据传输设备的硬件结构图。
具体实施方式
以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
本公开实施例可以应用于实现流媒体直播的场景中,在该场景中,流媒体内容提供端用于向提供流媒体数据,流媒体内容提供端可以是视频网站的服务器或其他实现提供流媒体直播业务的服务器,Package用于接收流媒体内容提供端的流媒体数据,Package对流媒体数据进行处理后,可以通过CDN向终端提供相应的可播放文件;在CDN中,与终端连接的节点为CDN边缘节点。
基于上述记载的内容,提出以下各实施例。
第一实施例
本公开第一实施例记载了一种流媒体数据传输方法,图1为本公开实施例的一种流媒体数据传输方法的流程图,如图1所示,该流程可以包括:
步骤101:Package生成至少一个包含一个或者多个文件分片的流媒体数据文件,每个文件分片中包括一个或者多个chunk子分片,每个chunk子分片为能够独立播放的文件;
实际应用中,可以由流媒体内容提供端向Package发送待传输的流媒体数据文件;这里,待传输的流媒体数据文件可以包括音频数据和视频数据的至少一个。
示例性地,当待传输的流媒体数据文件包括音频数据和视频数据时,Package可以在所述流媒体数据文件中分离出音频数据和视频数据;生成与所述音频数据对应的至少一个包含文件分片的流媒体数据文件,生成与所述视频数据对应的至少一个包含所述文件分片的流媒体数据文件。
实际实施时,Package可以从编码器中接收码流形式的流媒体数据文件,然后,对接收的流媒体数据文件进行解码,对解码后的数据按照新的编码参数重新进行编码,从而生成包含文件分片的流媒体数据分片;如果流媒体数据文件包括音频数据和视频数据,则Package在接收码流形式的流媒体数据后,需要将流媒体数据文件分离为音频数据和视频数据,然后,通过重新编码,生成与音频数据对应的至少一个包含文件分片的流媒体数据文件,生成与视频数据对应的至少一个包含所述文件分片的流媒体数据文件。
这里,每个文件分片包括一个chunk子分片或多个按照顺序排列的chunk子分片,实际实施时,在文件分片包括多个chunk子分片时,可以按照chunk子分片播放时的先后顺序依次划分出多个chunk子分片。
图2为本公开实施例的包含chunk子分片的文件分片的一个示意图,图2的上半部分中,标识有mdat的方框表示获取的待传输的流媒体数据文件,标识有moof的方框表示用于描述待传输的流媒体数据文件的文件;待传输的流媒体数据文件的生成时间点为编码器的输出流媒体数据的时间点(图2中记为编码器输出时间点);图2的下半部分中,标识有mdat的方框表示生成的一个文件文件,标识有moof的方框表示描述相应的文件分片的文件,每个文件分片的生成时间记为编码输出时间点;图2的下半部分中,每个文件分片对应的方框上方的4个小方框表示文件分片的4个chunk子分片。
步骤102:CDN边缘节点接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地未查找到所述包含chunk子分片的文件分片的至少一个chunk子分片时,向Package发送获取chunk子分片的请求;
这里,对于获取包含chunk子分片的文件分片的请求的实现方式,示例性地,获取包含chunk子分片的文件分片的请求可以携带文件分片的标识信息,文件文件的标识信息可以是文件分片的名称、文件分片的序号或其他。
实际实施时,终端可以在确定需要获取流媒体直播数据时,向CDN边缘节点发送获取包含chunk子分片的文件分片的请求;CDN边缘节点在收到终端发送的获取包含chunk子分片的文件分片的请求后,可以根据获取包含chunk子分片的文件分片的请求,判断在CDN边缘节点的本地是否能查找到包含chunk子分片的文件分片中的至少一个chunk子分片k,如果能查找到,则直接向终端发送本地查找出的至少一个chunk子分片;如果不能查找到,则可以向Package发送获取相应的chunk子分片的请求。
这里,对于任意一个文件分片,CDN边缘节点可以在本地存储该文件分片的至少一个chunk子分片,CDN边缘节点在本地存储chunk子分片时,可以建立存储的chunk子分片与文件分片的标识信息的对应关系,如此,当CDN边缘节点在收到终端发送的获取包含chunk子分片的文件分片的请求后,可以根据获取包含chunk子分片的文件分片的请求中携带的文件分片的标识信息,在本地查找对应的chunk子分片。在一个示例中,CDN边缘节点在本地存储chunk子分片时,还可以确定存储的chunk子分片的索引。
本公开实施例中,这样,当CDN边缘节点在收到终端发送的获取包含chunk子分片的文件分片的请求后,可以根据文件分片中chunk子分片的顺序,依次在本地查找文件分片的各个chunk子分片;也就是说,对于任意一个文件分片,CDN边缘节点可以从文件分片的第一个chunk子分片开始,依次在本地查找对应文件分片的各个chunk子分片。
这里,获取chunk子分片的请求可以携带有:请求获取的chunk子分片对应的文件分片的标识信息、以及请求获取的chunk子分片的索引。
也就是说,对于终端请求获取的任意一个包含chunk子分片的文件分 片,首先从文件分片的第一个chunk子分片开始,依次在本地查找对应文件分片的各个chunk子分片,如果能在本地查找到,则将本地查找出的chunk子分片发送至终端,终端接收到chunk子分片后,由于chunk子分片为能够单独播放的文件,可以直接播放接收到的chunk子分片;如果在本地查找不到文件分片中的任意一个chunk子分片,则向Package发送获取相应chunk子分片的请求。
可以看出,CDN边缘节点在向Package发送请求时,是以chunk子分片为单位的,对于一个文件分片,CDN边缘节点可以向Package发送多个请求,每次请求获取一个chunk子分片。
本公开实施例中,CDN边缘节点向Package发送的获取chunk子分片的请求可以是超文本传输协议(HyperText Transfer Protocol,HTTP)请求,在CDN边缘节点向Package发送的请求中,可以添加CDN边缘节点和Package预先约定的chunk子分片的索引,这里,chunk子分片的索引用于表示对应文件分片的第几个chunk子分片,这样,Package在接收到CDN边缘节点请求获取的chunk子分片的索引后,可以根据接收到的chunk子分片的索引,查找对应的chunk。
需要说明的是,Package在生成包含chunk子分片的文件分片时,是根据文件分配时长和chunk子分片时长两个时间来确定文件分片个数和chunk子分片个数的,所以,每个文件分片中包含的chunk子分片个数是无法预先确定的,CDN边缘节点可以向Package依次请求获取文件分片中的各个chunk子分片,在一个示例中,chunk子分片的索引值越低,表示chunk子分片在文件分片中越靠前,如此,CDN边缘节点在向Package依次请求同一文件分片中的不同chunk子分片时,CDN边缘节点向Package发送的chunk子分片的索引的值会越来越大。
实际应用中,CDN边缘节点可以通过CDN网络与Package进行数据交互。
需要说明的是,本公开实施例中并不对步骤101和步骤102的先后顺 序进行限制,步骤101可以在步骤102前执行,也可以在步骤102后执行,两者也可以同时执行。
步骤103:Package接收到CDN边缘节点的获取chunk子分片的请求时,根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片。
对于根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片的实现方式,在一个示例中,可以在生成的包含chunk子分片的文件分片中查找与所述获取chunk子分片的请求对应的chunk子分片,当在生成的包含chunk子分片的文件分片中查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片;当在生成的包含chunk子分片的文件分片中未查找到与所述获取chunk子分片的请求对应的chunk子分片时,可以重新从流媒体内容提供端获取相应的流媒体数据,并根据获取的流媒体数据生成包含chunk子分片的文件分片,之后,可以向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片。
对于根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片的实现方式,在另一个示例中,Package在根据所述流媒体数据生成一个包含chunk子分片的文件分片后,针对生成的包含chunk子分片的文件分片,按照预先约定的对应文件分片中各chunk子分片的先后顺序,依次存储对应文件分片中的各个chunk子分片;在存储的chunk子分片的数量大于预设值时,按照存储各chunk子分片的先后时序关系,依次删除至少一个已存储的chunk子分片,使存储的chunk子分片的数量小于或等于预设值;Package接收到CDN边缘节点的获取chunk子分片的请求时,如果在当前已存储的chunk子分片中查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片;如果在当前已存储的chunk子分片中未查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应 的chunk子分片,则可以重新从流媒体内容提供端获取相应的流媒体数据文件,并根据获取的流媒体数据文件生成包含chunk子分片的文件分片,之后,可以向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片。
可以理解的是,通过删除已存储的chunk子分片,可以控制Package的存储的chunk子分片的数量,进而可以避免过多的占用Package的存储资源;在一个示例中,可以利用Package子分片的内存中,依次存储对应文件分片中的各个chunk子分片,如此,通过删除已存储的chunk子分片,可以避免对Package的内存资源的过多占用。
在相关技术中,Package生成的文件分片保持在磁盘上,由中心服务器(origin)读取磁盘文件对CDN边缘节点提供文件分片的分发服务,而本公开实施例中,Package可以不生成磁盘文件,而是将chunk子分片在Package的内存中保存下来,不再通过origin对CDN边缘节点提供分发服务,而是可以由CDN边缘节点采用HTTP1.1keepalive协议,通过回源的方式直接从Package获取chunk子分片。
对于依次存储对应文件分片中的各个chunk子分片的实现方式,示例性地,在Package中,以队列的形式依次存储应文件分片中的各个chunk子分片;即在Package中,建立队列,按照文件分片之间的顺序以及每个文件分片内的各个chunk子分片的顺序,依次存储文件分片中的各个chunk子分片,在存储各个chunk子分片时,将当前要存储的chunk子分片放置在队列的尾部,为了防止占用Package更多的存储资源,可以针对队列设置存储chunk子分片的个数的最大值(即上述记载的预设值),当向队列尾部添加chunk子分片时,如果队列中的chunk子分片的个数超过存储chunk子分片的个数的最大值,将队列头部的chunk子分片老化掉(删除队列头部的chunk子分片)。
在一实施方式中,当待传输的流媒体数据文件包括音频数据和视频数据时,Package可以维护两个队列,其中一个队列用于存储音频数据的 chunk子分片,另一个队列用于存储视频数据的chunk子分片。
进一步地,当Package收到来自CDN边缘节点的获取chunk子分片的请求时,如果从队列头部开始查找对应的chunk子分片是否存在,Package查找chunk子分片的时间会比较长,进而会影响Package的数据传输性能,针对该问题,本公开实施例中,可以针对所述队列,建立队列索引,所述队列索引用于指示队列中存储的各个chunk子分片对应的文件分片的标识信息、以及每个文件分片的第一个chunk子分片在队列中的位置;如此,Package收到来自CDN边缘节点的获取chunk子分片的请求时,可以根据请求中携带的文件分片的标识信息,快速定位出相应文件分片的第一个chunk子分片在队列中的位置,然后,在相应文件分片的第一个chun子分片k在队列中的位置加上以chunk子分片的索引确定的偏移量,快速查找到CDN边缘节点所请求的chunk子分片在队列中的位置,然后从该位置处将该chunk子分片的内容读取出来,为CDN边缘节点回复响应;因而,对于CDN边缘节点的获取chunk子分片的请求,Package能够快速定位到相应chunk子分片在队列中的具体位置,从而可以提升Package的数据查找效率。
进一步地,所述队列索引用于指示每个文件分片的最后一个chunk子分片在队列中的位置信息,这样,Package可以确定每个文件分片对应的各个chunk子分片在队列中的位置范围。
在一实施方式中,CDN边缘节点的获取chunk子分片的请求还可以指示请求获取的chunk子分片对应的数据类型,请求获取的chunk子分片对应的数据类型为音频数据或视频数据;例如,CDN边缘节点的获取chunk子分片的请求可以携带chunk子分片对应的文件分片的统一资源定位符(Uniform Resource Locator,URL),Package可以根据URL判断获取chunk子分片的请求是用于请求获取音频数据,还是用于请求获取视频数据;也就是说,Package在收到CDN边缘节点的获取chunk子分片的请求时,可以首先判断CDN边缘节点是请求获取音频数据,还是请求获取视频数据;然后,根据请求获取的数据类型,在相应的队列中进行chunk 子分片的查找。
本公开实施例中,由于CDN边缘节点无法预先获取每个文件分片中的chunk子分片的个数,针对该问题,Package可以判断CDN边缘节点请求获取的chunk子分片是否为文件分片的最后一个chunk子分片,如果与所述获取chunk子分片的请求对应的chunk子分片不是一个文件分片的最后一个chunk子分片,Package向所述CDN边缘节点发送对应的chunk子分片时,可以向所述CDN边缘节点发送文件分片未传输完成的指示信息;如果与所述获取chunk子分片的请求对应的chunk子分片是一个文件分片的最后一个chunk子分片,Package向所述CDN边缘节点发送对应的chunk子分片时,可以向所述CDN边缘节点发送文件分片传输完成的指示信息。
CDN边缘节点在向所述Package发送获取包含chunk子分片的文件分片中的第i个chunk子分片的请求后,在接收到文件分片未传输完成的指示信息时,可以确定文件分片中的第i个chunk子分片不是文件分片的最后一个chunk子分片,此时,可以继续向所述Package发送获取包含chunk子分片的文件分片中的第i+1个chunk子分片的请求;CDN边缘节点在向所述Package发送获取包含chunk子分片的文件分片中的第i个chunk子分片的请求后,在接收到文件分片已传输完成的指示信息时,可以确定文件分片中的第i个chunk子分片是文件分片的最后一个chunk子分片,此时,可以向终端发送所述文件分片已传输完成的指示信息。
对于Package向CDN边缘节点发送指示信息的实现方式,示例性地,Package可以通过HTTP响应的形式向CDN边缘节点发送数据,可以在Package在向CDN边缘节点回复的HTTP响应中,添加一个自定义的HTTP header字段,用于填写chunk结束标志is_last_chunk,chunk结束标志表示该chunk子分片是否为所在分片的最后一个chunk子分片,如果是,则确定chunk结束标志的值为1,反之则确定chunk结束标志的值为0。如此,CDN边缘节点在收到Package的HTTP响应后,解析chunk结束标志的值,如果为1,则认为文件分片所有chunk子分片都下载完成,给终端回复数据时,额外添加HTTP chunk的结束标识,标志文件分片传输完成。
步骤104:CDN边缘节点接收到来自Package的chunk子分片时,向所述终端发送所述来自Package的chunk子分片。
可以理解的是,由于每个chunk子分片为能够单独播放的文件,因而,在终端接收到任意一个chunk子分片时,可以利用终端的播放器直接播放接收到的chunk子分片,不需要在接收到一个文件分片后进行播放,这样可以减少直播延时,并且,由于终端不需要在接收到一个文件分片后进行播放,这样Package可以生成时长较大的文件分片,可以降低Package生成的文件分片的数量,进而可以降低文件分片的存储压力。
对于OTT直播场景,采用本公开实施例记载的上述技术方案,可以基于chunk方式的OTT低时延直播切片和分发,OTT直播的延时会大大缩短,终端用户可以看到几乎实时的视频。
进一步地,CDN边缘节点接收到来自Package的chunk子分片时,还可以在本地存储所述来自Package的chunk子分片。
本公开实施例中,CDN边缘节点可以实现包含chunk子分片的文件分片的分发和缓存,实际为终端用户提供文件分片服务;终端向CDN边缘节点请求数据时还是以文件分片为单位,CDN边缘节点利用HTTP chunk方式给终端回复数据,一个HTTP chunk就包含一个文件分片的chunk子分片,当传输完文件分片的最后一个chunk子分片时,继续向终端回复HTTP chunk结束报文,表示该文件分片的传输结束。
进一步地,CDN边缘节点可以采用文件分段缓存机制为终端提供服务和回源;这里,文件分段缓存,就是将文件分割成多个小文件,每个小文件的缓存key是在原始文件的文件名基础上加上分段索引号,然后利用hash函数计算获得。本公开实施例中,每个小文件为chunk子分片,分段索引号为chunk子分片的索引的值。
在一个具体的示例中,CDN边缘节点在进行各个文件分片的chunk子分片的缓存时,还可以针对每个待存储的chunk子分片,设计缓存关键值(key),这里,缓存key可以设计为终端请求的文件分片的URL加上 chunk子分片的索引值,本公开实施例中,按照文件分片中的chunk子分片的顺序,chunk子分片的索引值可以从0开始每次递增1,得出文件分片中的各chunk子分片的索引值;CDN边缘节点在接收到终端的获取包含chunk子分片的文件分片的请求后,从文件分片的第一个chunk子分片开始,依次查找文件分片的各个chunk子分片;在查找文件分片的任意一个chunk子分片时,可以根据上述记载的缓存key,到CDN边缘节点的缓存中查找相应的chunk子分片是否存在,如果存在,则读取相应chunk子分片的内容,将读取的chunk子分片的内容作为一个HTTP chunk发送给终端;如果相应chunk子分片不存在,则CDN边缘节点可以向Package发送HTTP请求,以请求获取相应chunk子分片,CDN边缘节点在收到Package发送的chunk子分片后,向终端回复相应chunk子分片的内容,并将相应chunk子分片缓存;之后,如果其他终端再次从CDN边缘节点请求已缓存的相应chunk子分片,则CDN边缘节点可以直接读取缓存的数据为其他终端进行服务;CDN边缘节点在准备向终端回复chunk子分片的内容时,还可以判断chunk结束标志的值,如果chunk结束标志的值为1,则CDN边缘节点可以在向终端回复chunk的内容中添加HTTP chunk结束标识;如果chunk结束标志的值为0,则将chunk子分片的索引的值增1,再次在本地查找相应chunk子分片。
进一步地,当CDN边缘节点接收到多个终端的获取同一个文件分片的请求时,如果相应文件分片中的任意一个chunk子分片不存在,则可以针对接收到的第一个获取文件分片的请求,Package发送获取chunk子分片的请求,对于接收到的其他获取文件分片的请求,则设置为等待处理状态;当收到Package回复的chunk子分片,将该chunk子分片缓存,针对接收到的第一个获取文件分片的请求,向相应的终端发送chunk子分片,并将缓存的chunk子分片发送到其他终端;如果在为一个终端提供chunk子分片的时间段内,接收chunk子分片的终端变为离线状态(用户下线),则可以从文件分片的第一个未缓存的chunk子分片开始,从Package中请求获取相应的chunk子分片。
实际应用中,步骤101和步骤103可以利用Package中的处理器等实现,步骤102和步骤104可以利用CDN边缘节点中的处理器等实现。
第二实施例
在本公开前述实施例提出的流媒体数据传输方法,进行进一步的举例说明。
本公开第二实施例主要描述基于传输流(Transport Stream,TS)的包含chunk子分片的文件分片的传输,下面进行示例性地说明。
Package在启动后,可以接收编码器的入向TS码流,这里,入向TS码流为上述记载的待传输的流媒体数据文件;Package根据TS规范,解析TS码流,从TS流中将音频数据和视频数据分离出来,然后对音频数据和视频数据分别进行解码。
在Package中,视频处理线程可以将解码后的视频图像重新按照新的码率、分辨率进行编码,将编码后的数据生成包含chunk子分片的文件分片,然后,将当前生成的chunk子分片添加到针对视频数据建立的队列的尾部,同时更新针对视频数据建立的队列的队列索引。
在Package中,音频处理线程可以将解码后的音频数据重新按照新的编码参数进行编码,将编码后的数据生成包含chunk子分片的文件分片,然后,将当前生成的chunk子分片添加到针对音频数据建立的队列的尾部,同时更新针对音频数据建立的队列的队列索引。
CDN边缘节点在接收到终端获取包含chunk子分片的文件分片的请求后,如果在本地未查找到文件分片的任意一个chunk子分片,则可以向Package发送获取相应chunk子分片的请求,在收到Package的回复后,将接收到的chunk子分片按照上述记载的文件分段缓存机制进行缓存,以便于向其他终端提供服务。
第三实施例
在本公开前述实施例提出的流媒体数据传输方法,进行进一步的举例说明。
本公开第三实施例主要描述基于实时传输协议(Real-time Transport Protocol,RTP)流的包含chunk子分片的文件分片的传输,下面进行示例性地说明。
Package在启动后,可以接收编码器的入向RTP码流,这里,入向RTP码流为上述记载的待传输的流媒体数据文件;入向RTP码流包括音频数据和视频数据,Package在接收到入向RTP码流后,根据RTP协议,对RTP码流进行解析,以获取音频数据和视频数据,然后对音频数据和视频数据分别进行解码。
在Package中,视频处理线程可以将解码后的视频图像重新按照新的码率、分辨率进行编码,将编码后的数据生成包含chunk子分片的文件分片,然后,将当前生成的chunk子分片添加到针对视频数据建立的队列的尾部,同时更新针对视频数据建立的队列的队列索引。
在Package中,音频处理线程可以将解码后的音频数据重新按照新的编码参数进行编码,将编码后的数据生成包含chunk子分片的文件分片,然后,将当前生成的chunk子分片添加到针对音频数据建立的队列的尾部,同时更新针对音频数据建立的队列的队列索引。
CDN边缘节点在接收到终端获取包含chunk子分片的文件分片的请求后,如果在本地未查找到文件分片的任意一个chunk子分片,则可以向Package发送获取相应chunk子分片的请求,在收到Package的回复后,将接收到的chunk子分片按照上述记载的文件分段缓存机制进行缓存,以便于向其他终端提供服务。
第四实施例
在本公开前述实施例提出的流媒体数据传输方法,进行进一步的举例 说明。
本公开第四实施例主要描述基于DASH(Dynamic Adaptive Streaming over HTTP)协议的包含chunk子分片的文件分片的传输,下面进行示例性地说明。
终端向CDN边缘节点发送获取媒体描述文件(mpd)文件的请求,CDN边缘节点首先在自身缓存中查找相应的mpd文件,如果没查找到,或者查找到相应的mpd文件,但是查找到的mpd文件超过了缓存失效时间,则CDN边缘节点可以向Package发送获取mpd文件的请求,Package在接收到获取mpd文件的请求,读取本地的mpd文件并向CDN边缘节点回复mpd文件;CDN边缘节点在查找到未超过缓存失效时间的mpd文件或者从Package接收到mpd文件后,可以将mpd文件传输至终端;可选地,在CDN边缘节点从Package接收到mpd文件后,可以将mpd文件在本地进行缓存。
终端接收到mpd文件后,解析mpd文件,提取音视频解码参数,初始化播放器,同时根据mpd文件中的音视频文件分片的分片信息,生成获取音频文件分片和视频文件分片的HTTP请求,将HTTP请求发送给CDN边缘节点,以进行音视频文件分片的下载;
CDN边缘节点在收到终端的HTTP请求后,根据上述记载的文件分段缓存机制,在终端请求的文件分片的名称的基础上,根据文件分片的chunk子分片的索引,计算缓存key,根据缓存key在缓存中查找相应的chunk子分片,如果能查找到相应chunk子分片,则读取相应出chunk子分片,并将读取出chunk子分片的内容以一个HTTP chunk对终端进行分发服务,如果不能查找到相应chunk子分片,则CDN边缘节点可以通过HTTP1.1keepalive方式,向Package发起HTTP请求,以请求获取相应chunk子分片。
Package在收到CDN边缘节点的HTTP请求后,根据自身维护的对队列索引中判断相应chunk子分片是否存在,如果存在,则读取相应chunk 子分片内容,并向CDN边缘节点发送响应,在响应中携带相应chunk子分片。
CDN边缘节点在收到来自Package的响应后,将响应中携带的chunk子分片的内容以一个HTTP chunk对终端进行分发服务,同时,将相应chunk子分片缓存,以便后续为其他用户服务;并且,CDN边缘节点判断来自Package的响应中携带的自定义字段中的chunk结束标志is_last_chunk,如果chunk结束标志的值为1,则继续向终端发送HTTP chunk end报文,标识相应文件分片发送完成;如果chunk结束标志的值为0,则令chunk子分片的索引号增加1,重新开始在CDN边缘节点查找相应的chunk子分片。
终端在接收到文件分片的任意一个chunk子分片(例如第一个chunk子分片)后,不需要文件分片下载完成,就可以播放相应的chunk子分片,从而可以极大缩短直播延时。
第五实施例
在本公开前述实施例提出的流媒体数据传输方法,进行进一步的举例说明。
本公开第五实施例主要描述基于HLS(HTTP Live Streaming)协议的包含chunk子分片的文件分片的传输,下面进行示例性地说明。
终端向CDN边缘节点发送获取m3u8文件的请求,CDN边缘节点首先在自身缓存中查找相应的m3u8文件,如果没查找到,或者查找到相应的m3u8文件,但是查找到的m3u8文件超过了缓存失效时间,则CDN边缘节点可以向Package发送获取mpd文件的请求,Package在接收到获取mpd文件的请求,读取本地的mpd文件并向CDN边缘节点回复mpd文件;CDN边缘节点在查找到未超过缓存失效时间的m3u8文件后,可以将m3u8文件传输至终端;CDN边缘节点从Package接收到mpd文件后,可以将mpd文件转换为m3u8文件,将m3u8文件传输至终端,同时将m3u8文 件在本地进行缓存。
终端接收到m3u8文件后,解析m3u8文件,提取音视频解码参数,初始化播放器,同时根据m3u8文件中的音视频文件分片的分片信息,生成获取音频文件分片和视频文件分片的HTTP请求,将HTTP请求发送给CDN边缘节点,以进行音视频文件分片的下载;
CDN边缘节点在收到终端的HTTP请求后,根据上述记载的文件分段缓存机制,在终端请求的文件分片的文件名的基础上,根据文件分片的chunk子分片的索引,计算缓存key,根据缓存key在缓存中查找相应的chunk子分片,如果能查找到相应chunk子分片,则读取出相应chunk子分片,并将读取出chunk子分片的内容以一个HTTP chunk对终端进行分发服务,如果不能查找到相应chunk子分片,则CDN边缘节点可以通过HTTP1.1keepalive方式,向Package发起HTTP请求,以请求获取相应chunk子分片。
Package在收到CDN边缘节点的HTTP请求后,根据自身维护的对队列索引中判断相应chunk子分片是否存在,如果存在,则读取相应chunk子分片内容,并向CDN边缘节点发送响应,在响应中携带相应chunk子分片。
CDN边缘节点在收到来自Package的响应后,将响应中携带的chunk子分片的内容以一个HTTP chunk对终端进行分发服务,同时,将相应chunk子分片缓存,以便后续为其他用户服务;并且,CDN边缘节点判断来自Package的响应中携带的自定义字段中的chunk结束标志is_last_chunk,如果chunk结束标志的值为1,则继续向终端发送HTTP chunk end报文,标识相应文件分片发送完成;如果chunk结束标志的值为0,则令chunk子分片的索引号增加1,重新开始在CDN边缘节点查找相应的chunk子分片。
终端在接收到文件分片的任意一个chunk子分片(例如第一个chunk子分片)后,不需要文件分片下载完成,就可以播放相应的chunk子分片, 从而可以极大缩短直播延时。
第六实施例
在本公开前述实施例提出的流媒体数据传输方法,进行进一步的举例说明。
本公开第六实施例中,从Package的角度出发,说明流媒体数据传输方法的实现方式。
本公开实施例的流媒体数据传输方法应用于Package中,可以包括:
生成至少一个包含一个或者多个文件分片的流媒体数据文件,每个文件分片中包括一个或者多个chunk子分片,每个chunk子分片为能够独立播放的文件;
接收到CDN边缘节点的获取chunk子分片的请求时,根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片。
在一实施方式中,所述所述生成至少一个包含一个或者多个文件分片的流媒体数据文件,包括:
获取流媒体数据文件,在所述流媒体数据文件中分离出音频数据和视频数据;生成与所述音频数据对应的至少一个包含所述文件分片的流媒体数据文件,生成与所述视频数据对应的至少一个包含所述文件分片的流媒体数据文件。
在一实施方式中,所述获取chunk子分片的请求携带有请求获取的chunk对应的分片文件的标识信息、以及请求获取的chunk子分片的索引。
在一实施方式中,所述根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片,包括:在生成的所述文件分片中查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片。
在一实施方式中,所述方法还包括:在生成一个包含chunk子分片的 文件分片后,针对生成的文件分片,按照预先约定的对应文件分片中各chunk子分片的先后顺序,依次存储对应文件分片中的各个chunk子分片;在存储的chunk子分片的数量大于预设值时,按照存储各chunk子分片的先后时序关系,依次删除至少一个已存储的chunk子分片,使存储的chunk子分片的数量小于或等于预设值;
所述根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片,包括:在当前已存储的chunk子分片中查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片。
在一实施方式中,所述依次存储对应文件分片中的各个chunk子分片,包括:在Package的内存中,依次存储对应文件分片中的各个chunk子分片。
在一实施方式中,所述依次存储对应文件分片中的各个chunk子分片,包括:以队列的形式存储应文件分片中的各个chunk子分片;
所述方法还包括:针对所述队列,建立队列索引,所述队列索引用于指示队列中存储的各个chunk子分片对应的文件分片的标识信息、以及每个文件分片的第一个chunk子分片在队列中的位置信息。
在一实施方式中,所述方法还包括:
确定与所述获取chunk子分片的请求对应的chunk子分片不是一个文件分片的最后一个chunk子分片时,在向所述CDN边缘节点发送对应的chunk子分片时,向所述CDN边缘节点发送文件分片未传输完成的指示信息;
确定与所述获取chunk子分片的请求对应的chunk子分片是一个文件分片的最后一个chunk子分片时,在向所述CDN边缘节点发送对应的chunk子分片时,向所述CDN边缘节点发送文件分片已传输完成的指示信息。
第七实施例
在本公开前述实施例提出的流媒体数据传输方法,进行进一步的举例说明。
本公开第七实施例中,从CDN边缘节点的角度出发,说明流媒体数据传输方法的实现方式。
本公开实施例的流媒体数据传输方法应用于CDN边缘节点中,可以包括:
接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地未查找到所述包含chunk子分片的文件分片的至少一个chunk子分片时,向Package发送获取chunk子分片的请求,其中,所述chunk子分片为能够单独播放的文件;
接收到来自Package的chunk子分片时,向所述终端发送所述来自Package的chunk子分片。
在一实施方式中,所述方法还包括:
接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地查找到所述包含chunk子分片的文件分片中的至少一个chunk子分片时,向终端发送本地查找出的至少一个chunk子分片。
在一实施方式中,所述方法还包括:
接收到来自Package的chunk子分片时,在本地存储所述来自Package的chunk子分片。
在一实施方式中,所述在本地存储所述来自Package的chunk子分片,包括:在本地采用文件分段缓存机制存储来自Package的各个文件分片的chunk子分片。
在一实施方式中,所述获取chunk子分片的请求携带有请求获取的chunk子分片对应的文件分片的标识信息、以及请求获取的chunk子分片的索引。
在一实施方式中,所述方法还包括:在向所述Package发送获取所述文件分片中的第i个chunk子分片的请求后,在接收到文件分片未传输完成的指示信息时,继续向所述Package发送获取所述文件分片中的第i+1个chunk子分片的请求;i为大于或等于1的整数;
在向所述Package发送获取所述文件文件分片中的第i个chunk子分片的请求后,在接收到文件分片已传输完成的指示信息时,向终端发送所述文件分片已传输完成的指示信息。
第八实施例
在本公开前述实施例提出的流媒体数据传输方法,本公开第八实施例提出了一种流媒体数据传输装置,该装置位于Package中;
图3为本公开实施例的一种流媒体数据传输装置的组成结构示意图,如图3所示,所述装置包括第一处理模块301和第二处理模块302,其中,
第一处理模块301,设置为生成至少一个包含一个或者多个文件分片的流媒体数据文件,每个文件分片中包括一个或者多个chunk子分片,每个chunk子分片为能够独立播放的文件;
第二处理模块302,设置为在接收到CDN边缘节点的获取chunk子分片的请求时,根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片。
在一实施方式中,所述第一处理模块301,设置为获取流媒体数据文件,在所述流媒体数据文件中分离出音频数据和视频数据;生成与所述音频数据对应的至少一个包含所述文件分片的流媒体数据文件,生成与所述视频数据对应的至少一个包含所述文件分片的流媒体数据文件。
在一实施方式中,所述获取chunk子分片的请求携带有请求获取的chunk对应的分片文件的标识信息、以及请求获取的chunk子分片的索引。
在一实施方式中,所述第二处理模块302,设置为:在生成的所述文 件分片中查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片。
在一实施方式中,所述第一处理模块301,还设置为在生成一个包含chunk子分片的文件分片后,针对生成的文件分片,按照预先约定的对应文件分片中各chunk子分片的先后顺序,依次存储对应文件分片中的各个chunk子分片;在存储的chunk子分片的数量大于预设值时,按照存储各chunk子分片的先后时序关系,依次删除至少一个已存储的chunk子分片,使存储的chunk子分片的数量小于或等于预设值;
所述第二处理模块302,设置为在当前已存储的chunk子分片中查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片。
在一实施方式中,所述第一处理模块301,设置为在Package的内存中,依次存储对应文件分片中的各个chunk子分片。。
在一实施方式中,所述第一处理模块301,设置为以队列的形式存储应文件分片中的各个chunk;子分片
所述第一处理模块301,还设置为针对所述队列,建立队列索引,所述队列索引用于指示队列中存储的各个chunk子分片对应的文件分片的标识信息、以及每个文件分片的第一个chunk子分片在队列中的位置信息。
在一实施方式中,所述第二处理模块302,还设置为确定与所述获取chunk子分片的请求对应的chunk子分片不是一个文件分片的最后一个chunk子分片时,在向所述CDN边缘节点发送对应的chunk子分片时,向所述CDN边缘节点发送文件分片未传输完成的指示信息;确定与所述获取chunk子分片的请求对应的chunk子分片是一个文件分片的最后一个chunk子分片时,在向所述CDN边缘节点发送对应的chunk子分片时,向所述CDN边缘节点发送文件分片已传输完成的指示信息。
实际应用中,上述第一处理模块301和第二处理模块302均可由位于 Package中的中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)、或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
具体来讲,本实施例中的一种流媒体数据传输方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种流媒体数据传输方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种流媒体数据传输方法的步骤。
基于前述实施例相同的技术构思,参见图4,其示出了本公开实施例提供的一种流媒体数据传输设备40,该设备可以包括:第一存储器41、第一处理器42和第一总线43;其中,
所述第一总线43用于连接所述第一存储器41、第一处理器42和这些器件之间的相互通信;
所述第一存储器41,用于存储计算机程序和数据;
所述第一处理器42,用于执行所述存储器中存储的计算机程序,以实现前述实施例的任意一种流媒体数据传输方法的步骤。
在实际应用中,上述第一存储器41可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM,快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向第一处理器42提供指令和数据。
上述第一处理器42可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、DSP、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本公开实施例不作具体限定。
第九实施例
在本公开前述实施例提出的流媒体数据传输方法,本公开第九实施例提出了另一种流媒体数据传输装置,该装置位于CDN边缘节点中;
图5为本公开实施例的另一种流媒体数据传输装置的组成结构示意图,如图5所示,所述装置包括第三处理模块501和第四处理模块502,其中,
第三处理模块501,设置为在接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地未查找到所述包含chunk子分片的文件分片的至少一个chunk子分片时,向封包器Package发送获取chunk子分片的请求,其中,所述chunk子分片为能够单独播放的文件;
第四处理模块502,设置为接收到来自Package的chunk子分片时,向所述终端发送所述来自Package的chunk子分片。
在一实施方式中,所述第三处理模块501,还设置为接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地查找到所述包含chunk 子分片的文件分片中的至少一个chunk子分片时,向终端发送本地查找出的至少一个chunk子分片。
在一实施方式中,所述第四处理模块502,还设置为接收到来自Package的chunk子分片时,在本地存储所述来自Package的chunk子分片。
在一实施方式中,所述第四处理模块502,设置为在本地采用文件分段缓存机制存储来自Package的各个文件分片的chunk子分片。
在一实施方式中,所述获取chunk子分片的请求携带有请求获取的chunk子分片对应的文件分片的标识信息、以及请求获取的chunk子分片的索引。
在一实施方式中,所述第三处理模块501,还设置为在向所述Package发送获取所述文件分片中的第i个chunk子分片的请求后,在接收到文件分片未传输完成的指示信息时,继续向所述Package发送获取所述文件分片中的第i+1个chunk子分片的请求;i为大于或等于1的整数;
在向所述Package发送获取所述文件文件分片中的第i个chunk子分片的请求后,在接收到文件分片已传输完成的指示信息时,向终端发送所述文件分片已传输完成的指示信息。
实际应用中,上述第三处理模块501和第四处理模块502均可由位于CDN边缘节点中的CPU、MPU、DSP或FPGA等实现。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机 软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
具体来讲,本实施例中的一种流媒体数据传输方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种流媒体数据传输方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种流媒体数据传输方法的步骤。
基于前述实施例相同的技术构思,参见图6,其示出了本公开实施例提供的另一种流媒体数据传输设备60,该设备可以包括:第二存储器61、第二处理器62和第二总线63;其中,
所述第二总线63用于连接所述第二存储器61、第二处理器62和这些器件之间的相互通信;
所述第二存储器61,用于存储计算机程序和数据;
所述第二处理器62,用于执行所述存储器中存储的计算机程序,以实现前述实施例的任意一种流媒体数据传输方法的步骤。
在实际应用中,上述第二存储器61可以是易失性存储器,例如RAM;或者非易失性存储器,例如ROM,快闪存储器,HDD或固态硬盘SSD;或者上述种类的存储器的组合,并向第二处理器62提供指令和数据。
上述第二处理器62可以为特定用途集成电路ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本公开实施例不作具体限定。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘 存储器和光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。

Claims (20)

  1. 一种流媒体数据传输方法,应用于封包器Package中,所述方法包括:
    生成至少一个包含一个或者多个文件分片的流媒体数据文件,每个文件分片中包括一个或者多个chunk子分片,每个chunk子分片为能够独立播放的文件;
    接收到内容分发网络CDN边缘节点的获取chunk子分片的请求时,根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片。
  2. 根据权利要求1所述的方法,其中,所述生成至少一个包含一个或者多个文件分片的流媒体数据文件,包括:
    获取流媒体数据文件,在所述流媒体数据文件中分离出音频数据和视频数据;生成与所述音频数据对应的至少一个包含所述文件分片的流媒体数据文件,生成与所述视频数据对应的至少一个包含所述文件分片的流媒体数据文件。
  3. 根据权利要求1所述的方法,其中,所述获取chunk子分片的请求携带有请求获取的chunk对应的分片文件的标识信息、以及请求获取的chunk子分片的索引。
  4. 根据权利要求1或3所述的方法,其中,所述根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片,包括:在生成的所述文件分片中查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片。
  5. 根据权利要求1或3所述的方法,还包括:在生成一个包含chunk子分片的文件分片后,针对生成的文件分片,按照预先约定的对应文件分片中各chunk子分片的先后顺序,依次存储对应文件分片中的各个chunk子分片;在存储的chunk子分片的数量大于预设值时,按照存储各chunk 子分片的先后时序关系,依次删除至少一个已存储的chunk子分片,使存储的chunk子分片的数量小于或等于预设值;
    所述根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片,包括:在当前已存储的chunk子分片中查找到与所述获取chunk子分片的请求对应的chunk子分片时,向所述CDN边缘节点发送与所述获取chunk子分片的请求对应的chunk子分片。
  6. 根据权利要求5所述的方法,其中,所述依次存储对应文件分片中的各个chunk子分片,包括:在Package的内存中,依次存储对应文件分片中的各个chunk子分片。
  7. 根据权利要求5所述的方法,其中,所述依次存储对应文件分片中的各个chunk子分片,包括:以队列的形式存储应文件分片中的各个chunk子分片;
    所述方法还包括:针对所述队列,建立队列索引,所述队列索引用于指示队列中存储的各个chunk子分片对应的文件分片的标识信息、以及每个文件分片的第一个chunk子分片在队列中的位置信息。
  8. 根据权利要求3所述的方法,还包括:
    确定与所述获取chunk子分片的请求对应的chunk子分片不是一个文件分片的最后一个chunk子分片时,在向所述CDN边缘节点发送对应的chunk子分片时,向所述CDN边缘节点发送文件分片未传输完成的指示信息;
    确定与所述获取chunk子分片的请求对应的chunk子分片是一个文件分片的最后一个chunk子分片时,在向所述CDN边缘节点发送对应的chunk子分片时,向所述CDN边缘节点发送文件分片已传输完成的指示信息。
  9. 一种流媒体数据传输方法,应用于内容分发网络CDN边缘节点中,所述方法包括:
    接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地 未查找到所述包含chunk子分片的文件分片的至少一个chunk子分片时,向封包器Package发送获取chunk子分片的请求,其中,所述chunk子分片为能够单独播放的文件;
    接收到来自Package的chunk子分片时,向所述终端发送所述来自Package的chunk子分片。
  10. 根据权利要求9所述的方法,还包括:
    接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地查找到所述包含chunk子分片的文件分片中的至少一个chunk子分片时,向终端发送本地查找出的至少一个chunk子分片。
  11. 根据权利要求9或10所述的方法,还包括:
    接收到来自Package的chunk子分片时,在本地存储所述来自Package的chunk子分片。
  12. 根据权利要求11所述的方法,其中,所述在本地存储所述来自Package的chunk子分片,包括:在本地采用文件分段缓存机制存储来自Package的各个文件分片的chunk子分片。
  13. 根据权利要求9所述的方法,其中,所述获取chunk子分片的请求携带有请求获取的chunk子分片对应的文件分片的标识信息、以及请求获取的chunk子分片的索引。
  14. 根据权利要求9所述的方法,还包括:
    在向所述Package发送获取所述文件分片中的第i个chunk子分片的请求后,在接收到文件分片未传输完成的指示信息时,继续向所述Package发送获取所述文件分片中的第i+1个chunk子分片的请求;i为大于或等于1的整数;
    在向所述Package发送获取所述文件文件分片中的第i个chunk子分片的请求后,在接收到文件分片已传输完成的指示信息时,向终端发送所述文件分片已传输完成的指示信息。
  15. 一种流媒体数据传输装置,位于封包器Package中,所述装置包括:第一处理模块和第二处理模块;其中,
    第一处理模块,设置为生成至少一个包含一个或者多个文件分片的流媒体数据文件,每个文件分片中包括一个或者多个chunk子分片,每个chunk子分片为能够独立播放的文件;
    第二处理模块,设置为在接收到内容分发网络CDN边缘节点的获取chunk子分片的请求时,根据所述获取chunk子分片的请求,向所述CDN边缘节点发送对应的chunk子分片。
  16. 一种流媒体数据传输装置,其中,所述装置位于内容分发网络CDN边缘节点中,所述装置包括:第三处理模块和第四处理模块;其中,第三处理模块,设置为在接收到终端的获取包含chunk子分片的文件分片的请求时,且在本地未查找到所述包含chunk子分片的文件分片的至少一个chunk子分片时,向封包器Package发送获取chunk子分片的请求,其中,所述chunk子分片为能够单独播放的文件;
    第四处理模块,设置为接收到来自Package的chunk子分片时,向所述终端发送所述来自Package的chunk子分片。
  17. 一种流媒体数据传输设备,位于封包器Package中,所述装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
    所述处理器用于在运行所述计算机程序时,执行权利要求1至8任一项所述方法的步骤。
  18. 一种流媒体数据传输设备,位于内容分发网络CDN边缘节点中,所述设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
    所述处理器用于在运行所述计算机程序时,执行权利要求9至14任一项所述方法的步骤。
  19. 一种计算机存储介质,其上存储有计算机程序,该计算机程序被 处理器执行时实现权利要求1至8任一项所述方法的步骤。
  20. 一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求9至14任一项所述方法的步骤。
PCT/CN2019/111485 2018-10-16 2019-10-16 一种流媒体数据传输方法、设备、装置和计算机存储介质 WO2020078388A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811204623.5 2018-10-16
CN201811204623.5A CN111064969B (zh) 2018-10-16 2018-10-16 一种流媒体数据传输方法、设备、装置和计算机存储介质

Publications (1)

Publication Number Publication Date
WO2020078388A1 true WO2020078388A1 (zh) 2020-04-23

Family

ID=70284039

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/111485 WO2020078388A1 (zh) 2018-10-16 2019-10-16 一种流媒体数据传输方法、设备、装置和计算机存储介质

Country Status (2)

Country Link
CN (1) CN111064969B (zh)
WO (1) WO2020078388A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112104442A (zh) * 2020-08-31 2020-12-18 宁波三星医疗电气股份有限公司 一种电力采集终端的报文回复方法
CN114845132A (zh) * 2022-04-29 2022-08-02 抖动科技(深圳)有限公司 基于哈希算法的低延迟直播缓存方法、装置、设备及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666318B (zh) * 2022-02-17 2024-04-12 网宿科技股份有限公司 流媒体数据的下载方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105165015A (zh) * 2013-03-15 2015-12-16 艾锐势科技公司 利用http自适应流的快速信道改变的增强播放列表定义和传递
US20150371280A1 (en) * 2014-06-24 2015-12-24 Arris Enterprises, Inc. Tracking ad preferences in adaptive bit rate systems
US20170171264A1 (en) * 2015-12-09 2017-06-15 Telefonaktiebolaget Lm Ericsson (Publ) Recording of abr content

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011100901A2 (zh) * 2011-04-07 2011-08-25 华为技术有限公司 媒体内容的传输处理方法、装置与系统
CN104581374B (zh) * 2014-12-31 2018-05-29 深圳市同洲电子股份有限公司 一种获取切片文件和生成子m3u8文件的方法、节点及服务器
CN105049873B (zh) * 2015-05-29 2018-06-15 腾讯科技(北京)有限公司 一种流媒体传输方法、装置和系统
CN106982395B (zh) * 2017-03-02 2020-02-14 上海云熵网络科技有限公司 基于hls的p2p直播系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105165015A (zh) * 2013-03-15 2015-12-16 艾锐势科技公司 利用http自适应流的快速信道改变的增强播放列表定义和传递
US20150371280A1 (en) * 2014-06-24 2015-12-24 Arris Enterprises, Inc. Tracking ad preferences in adaptive bit rate systems
US20170171264A1 (en) * 2015-12-09 2017-06-15 Telefonaktiebolaget Lm Ericsson (Publ) Recording of abr content

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QUALCOMM: "FS_5GMedia_Distribution: Proposed Updates to Technical Report", 3GPP TSG-SA4 MEETING, S4-181093, vol. 100, 15 October 2018 (2018-10-15), pages 4 - 181093, XP051542355 *
QUALCOMM: "Interoperability for Internet TV Services", 3GPP TSG-SA4 MEETING,, vol. 100, 15 October 2018 (2018-10-15), pages 4 - 181093, XP051542356 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112104442A (zh) * 2020-08-31 2020-12-18 宁波三星医疗电气股份有限公司 一种电力采集终端的报文回复方法
CN112104442B (zh) * 2020-08-31 2023-12-05 宁波三星医疗电气股份有限公司 一种电力采集终端的报文回复方法
CN114845132A (zh) * 2022-04-29 2022-08-02 抖动科技(深圳)有限公司 基于哈希算法的低延迟直播缓存方法、装置、设备及介质
CN114845132B (zh) * 2022-04-29 2023-05-12 厦门理工学院 基于哈希算法的低延迟直播缓存方法、装置、设备及介质

Also Published As

Publication number Publication date
CN111064969A (zh) 2020-04-24
CN111064969B (zh) 2023-07-11

Similar Documents

Publication Publication Date Title
US11477262B2 (en) Requesting multiple chunks from a network node on the basis of a single request message
US10116572B2 (en) Method, device, and system for acquiring streaming media data
WO2020078388A1 (zh) 一种流媒体数据传输方法、设备、装置和计算机存储介质
CN106233735B (zh) 管理多播视频传送的方法
WO2011100901A2 (zh) 媒体内容的传输处理方法、装置与系统
WO2016011823A1 (zh) 获取直播视频切片的方法、服务器及存储介质
JP6338709B2 (ja) ストリーミング装置とその方法、これを用いたストリーミングサービスシステム及びコンピュータ読み取り可能な記録媒体(Streaming apparatus and method thereof,streaming service system using the streaming apparatus and computer readable recording medium)
WO2019062050A1 (zh) 直播管控方法、装置及电子设备
US20140074961A1 (en) Efficiently Delivering Time-Shifted Media Content via Content Delivery Networks (CDNs)
JP2015133701A (ja) クライアント端末においてマルチメディアコンテンツのセグメントの来るシーケンスをダウンロードする方法、及び対応する端末
WO2015192683A1 (zh) 一种基于码流自适应技术的内容分发方法、装置及系统
CN110677737A (zh) 一种hls直播快速起播方法及系统
WO2011054319A1 (zh) 一种在httpstreaming系统中实现分层请求内容的方法,装置和系统
KR102356621B1 (ko) 클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법, 및 대응하는 캐시
CN105049873A (zh) 一种流媒体传输方法、装置和系统
JP2015170323A (ja) 配信装置、及び配信方法
CN112203105A (zh) 一种新媒体移动直播方法及系统
WO2020098455A1 (zh) 媒体流的实时递送方法及服务器
CN111193686B (zh) 媒体流的递送方法及服务器
CN110881018B (zh) 媒体流的实时接收方法及客户端
Mekuria et al. Multi-protocol video delivery with late trans-muxing
WO2012071932A1 (zh) 一种分段节目快速启动的方法及系统
JP2017510120A (ja) クライアント端末にマルチメディアコンテンツのコンテンツ部分を提供する方法及び対応するキャッシュ
US9609079B1 (en) Methods for improved cache maintenance and devices thereof
KR102237900B1 (ko) 클라이언트 단말에 의해 멀티미디어 콘텐츠의 콘텐츠 부분을 검색하기 위한 방법

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: 19872551

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19872551

Country of ref document: EP

Kind code of ref document: A1