WO2016074149A1 - Distribution de contenu multimédia accélérée - Google Patents

Distribution de contenu multimédia accélérée Download PDF

Info

Publication number
WO2016074149A1
WO2016074149A1 PCT/CN2014/090808 CN2014090808W WO2016074149A1 WO 2016074149 A1 WO2016074149 A1 WO 2016074149A1 CN 2014090808 W CN2014090808 W CN 2014090808W WO 2016074149 A1 WO2016074149 A1 WO 2016074149A1
Authority
WO
WIPO (PCT)
Prior art keywords
media
files
cdn
media segment
user device
Prior art date
Application number
PCT/CN2014/090808
Other languages
English (en)
Inventor
Xingli WU
Original Assignee
21 Vianet Group, Inc.
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 21 Vianet Group, Inc. filed Critical 21 Vianet Group, Inc.
Priority to PCT/CN2014/090808 priority Critical patent/WO2016074149A1/fr
Publication of WO2016074149A1 publication Critical patent/WO2016074149A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Definitions

  • the present invention relates generally to internet communications, and in particular to accelerating media content delivery in computer networks.
  • Video segments of a media program may be accessed as internet-based documents by user devices through universal resource locators (URLs) .
  • a URL for a video segment sometimes may not be hardcoded with a host address; rather, the URL may contain a host name to be translated into a host address.
  • a DNS-based name resolution process that translates a host name into a host address may or may not operate with accurate or updated host address information. Even ifa host address is technically correct, a source of a video segment as indicated by the host address returned from the DNS-based name resolution process may be suboptimal because the source may lack capacity or may be overloaded, as compared with other sources of the same video segment.
  • a URL redirect mechanism such as one based on the HTTP error code 302 can be used to redirect an original HTTP request to a new HTTP request with an optimal host address.
  • a URL redirection mechanism involves operations performed by multiple network elements for each HTTP request. As a result, large overheads are incurred in running media playing applications that may generate a large number of HTTP requests that invoke URL redirections.
  • FIG. 1A illustrates an example configuration for expedited media content delivery
  • FIG. 1B illustrates an alternative configuration for media content delivery
  • FIG. 2A and FIG. 2B illustrate example time sequences of distributing media files of a media program to a user device
  • FIG. 3A and FIG. 3B illustrate example time sequences of distributing media files of a media program to a user device
  • FIG. 4 illustrates an example media index dispatcher
  • FIG. 5 illustrates an example process flow
  • FIG. 6 illustrates an example hardware platform on which a computer or a computing device as described herein may be implemented.
  • Example embodiments which relate to expedited media content delivery, are described herein.
  • numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are not described in exhaustive detail, in order to avoid unnecessarily occluding, obscuring, or obfuscating the present invention.
  • Techniques as described herein can be used to expedite access to media programs in media playing applications that support adaptive bitrate dynamic media streaming.
  • multiple media bitstreams can be encoded for transmission at multiple different target bitrates for the media program beforehand.
  • media bitstream may include, but are not limited to only, any of: a high dynamic range high resolution media bitstream generated from a release version of a media program, a standard dynamic range version of a media program, a down-sampled media bitstream generated from a high dynamic range high resolution media bitstream of a media program, etc.
  • a media bitstream encoded with media content of a media program for transmission at a target bitrate can be segmented into a set of media segment files.
  • Each media segment file in the set of media segment files represents a relatively small time segment of the media program.
  • the set of media segment files can be time-wise ordered by a set of media segment entries in media index files that are generated as a part of segmenting the media bitstream into the media segment files.
  • the media index files comprise multiple sets of media segment entries that reference multiple sets of media segment files for the media program.
  • Media segment files in a particular set of media segment files can be transmitted to a user device at a particular target bitrate.
  • a time segment of the media program can be represented by multiple media segment files each of which is from a corresponding set of the multiple sets of media segment files.
  • a user device may access any media segment files in the multiple sets of media segment files at runtime, and use the accessed media segment files to assemble a bitrate-adaptive media bitstream of the media program for rendering at the user device.
  • the media bitstream of the media program as assembled by the user device may or may not be mixed bitrates.
  • the media index files are hierarchical.
  • the media index files may comprise a non-leaf (e.g., top, etc. ) level that identifies available target bitrates, as well as a leaf level that references, for each of the available target bitrates, a specific set of media segment files among the one or more sets of media segment files.
  • Media index files and media segment files as described herein can be relatively small, simple, standard-based files, such as hypertext transfer protocol (HTTP)-based files, etc.
  • HTTP hypertext transfer protocol
  • the media index files and the media segment files can be transmitted with relatively little delay and retransmission overheads, and can easily pass through various security mechanisms such as firewalls, etc., to reach user devices.
  • a content delivery network is used to distribute media index files and media segment files as described herein to user devices.
  • a webpage or an electronic program guide (EPG) that includes URLs for media index files for various media programs may be presented to a user with a user device.
  • the user can select a specific media program for playing/rendering with the user device by way of selecting a URL for one or more media index files for the specific media program.
  • EPG electronic program guide
  • the user device may invoke a domain name system (DNS) resolution process that resolves a domain name (or a host name) in the URL to a host address of a media index dispatcher. Subsequently, the user device modifies the URL with the host address of the media index dispatcher and sends a request for the one or more media index files with the modified URL.
  • DNS domain name system
  • the media index dispatcher may operate in conjunction with a global server load balancing (GSLB) mechanism that manages and load balances workloads of CDN nodes in the CDN.
  • GSLB global server load balancing
  • the media index dispatcher Upon receiving the modified URL from the user device, the media index dispatcher retrieves the one or more media index files based on the modified URL.
  • the media index dispatcher may retrieve the media index files from the CDN, for example CDN parent nodes therein.
  • the media index dispatcher operating in conjunction with or as a part of the GSLB mechanism, selects optimal CDN nodes that are capable of serving media segment files, as referenced by media segment entries in the media index files, to the user device relatively efficiently as compared with other (e.g., non-optimal, etc. ) CDN nodes in the CDN.
  • a source host address e.g., that of the user device, etc.
  • a network location e.g., in Shanghai, in Guangdong, in a China Mobile network, in a China Telecom network, etc.
  • the optimal CDN nodes can be selected based at least in part on the network location of the user device, the access network from which the user device is located, hops and transmission delays from CDN nodes to the user device, etc.
  • the media index dispatcher modifies the media index files by placing host addresses (e.g., IP addresses, etc. ) of the one or more optimal CDN nodes in media segment entries in the one or more media index files.
  • host addresses e.g., IP addresses, etc.
  • a host address may refer to an explicit computer address such as an IP address, etc. , that requires neither DNS name resolution nor URL redirection for communication.
  • DNS queries and/or URL redirections in accessing a media program is significantly reduced or eliminated.
  • only one DNS name resolution process for a single domain name e.g., that of the media index dispatcher, etc.
  • Subsequent accesses to media segment files and/or any remaining (e.g., continuously updated, etc. ) media index files of the media program can be directed to specific host addresses, for example, given in the media index files by the media index dispatcher.
  • mechanisms as described herein form a part of an information processing system, including but not limited to any of: a media codec, a media bitstreaming server, a media player, a media processing system, a computer server, a network switch, a network element, a router, a gateway, a computer cluster, an application server system, a database system, a handheld device, game machine, television, laptop computer, netbook computer, tablet computer, cellular radiotelephone, electronic book reader, point of sale terminal, desktop computer, computer workstation, computer kiosk, plug-in devices, media accessing devices, or various other kinds of terminals and media processing units.
  • FIG. 1A depicts an example configuration 100 for expedited media content delivery, which comprises a user device 102, a local DNS server 118, a media segment server 104, a media encoder 116, a CDN 114, a media index dispatcher 110, a GSLB mechanism 112, a content-provider DNS server 120, etc.
  • Some or all of the components, devices, systems, modules, etc., in the example configuration (100) of FIG. 1A may be operatively linked through one or more computer networks such as one or more of wide area networks (WANs) , local area networks (LANs) , customer premises networks (CPNs) , wireless networks, wireline networks, optical networks, non-optical networks, telecom networks, non-telecom networks, etc.
  • WANs wide area networks
  • LANs local area networks
  • CPNs customer premises networks
  • wireless networks wireline networks, optical networks, non-optical networks, telecom networks, non-telecom networks, etc.
  • the CDN (114) is hierarchical and comprises CDN nodes at a parent level and other CDN nodes at an edge level.
  • the CDN (114) may comprise one or more CDN parent nodes 106, a plurality of CDN edge nodes 108, etc.
  • one user device has been depicted in FIG. 1A. It should be understood that in various embodiments the configuration (100) of FIG. 1A may be used to support expedited media content delivery to many user devices concurrently, serially, part concurrently part serially, etc.
  • the media encoder (116) comprises software, hardware, a combination of software and hardware, etc., configured to encode source media content (e.g., a studio version, a release version, an intermediate version transcoded from a release version, etc. ) of a media program into one or more media bitstreams. These media bitstreams may be distributed by the media encoder to downstream recipient systems such as the media segment server (104) , etc.
  • the media encoder (116) may be configured to encode source media content of the media program into the media bitstreams in standard-based coding formats, proprietary coding formats, etc.
  • the media bitstream is encoded as a MPEG transport stream in a relatively large size media file (or container) .
  • a media bitstream comprises encoded media content of a media program. It should be understood that in various embodiments a media bitstream may be used to carry/multiplex encoded media content of more than one media program.
  • a media bitstream may comprise a relatively high quality version, a color graded version, a home theater version, an intermedia quality version, a relatively low quality version, a mobile device version, a lossy or lossless compressed version, an up-sampled version, a down-sampled version, a color space transformed version, a transcoded version, etc., of a media program in terms of luminance dynamic range, spatial resolution, color gamut, white points, etc.
  • Examples of media programs include, but are not limited to only, one or more of: movies, TV programs, live broadcast events, radio programs, sports events, internet-based media events, videos from internet content servers, etc.
  • the media segment server (104) comprises software, hardware, a combination of software and hardware, etc., configured to segment one or more media bitstreams into one or more sets of media segment files.
  • a media bitstream corresponds to a relatively long duration (e.g., the entire duration, the entire time length, continuously increasing length, etc. ) of a media program
  • a media segment file corresponds to a relatively short time segment of the media program. Examples of relatively short time segments as described herein may include, but are not limited to only, any of: fixed time intervals, three-second time segments, ten-second time segments, twenty-second time segments, etc.
  • the media segment server (104) can be configured to receive any of the one or more media bitstreams from an upstream media processing device such as a video codec, a media transcoder, a media encoder (e.g., 116, etc. ) , etc., using one or more communication protocols such as UDP, TCP, etc. Additionally, optionally, or alternatively, the media segment server (104) can be configured to retrieve any of the one or more media bitstreams from one or more storage devices, etc., instead of directly from an upstream media encoder. The media segment server (104) may segment any of the one or more media bitstreams in real time, in near real time, in an offiine mode, in a batch mode, etc.
  • Each set in the one or more sets of media segment files comprises media segment files that can be transmitted from an upstream device (e.g., one of the CDN edge nodes 108, etc. ) to a downstream device (e.g., the user device 102, etc. ) at a specific target bitrate.
  • Media segment files in each set in the one or more sets of media segment files collectively represent a media bitstream among the one or more media bitstreams.
  • a media segment file as described herein provides at a specific target bitrate a time segment of a media program.
  • the media segment file can be based on a standard-based format, a proprietary-based format, a standard-based format with proprietary extensions and/or enhancements, etc.
  • the media segment file may be an HTTP file.
  • a media segment file (e.g., HTTP-based files, etc. ) comprises a segment descriptor and a relatively small size media file such as an MPEG transport stream file (e.g., for a three-second time segment of the media program, etc. ) .
  • the relatively small size media file comprises a portion of encoded media content of a corresponding media bitstream.
  • the media content data in the media segment file may comprise pixel values and/or audio samples within a window between the 15 th second and 18 th second of the media program, etc., for rendering on a user device such as a laptop computer, a tablet computer, a mobile device, a television, a personal computer, a multimedia device, etc.
  • the segment descriptor in the media segment file can be stored in one or more data fields (e.g., HTTP tag fields, etc. ) , in a metadata portion of the media segment file, etc.
  • the segment descriptor may comprise segment information. Examples of segment information in a segment descriptor may include, but are not limited to only, any of: a start time point and an end time point (within or in relation to the media program) of the media segment represented by the media segment file; a target bitrate for transmitting the media segment file for live streaming purposes (e.g., rendering the media program on a user device while the media segment files are being transmitted to and received by the user device) ; a luminance dynamic range (e.g., standard dynamic range or SDR, high dynamic range or HDR, etc. ) of the media data encoded in the media segment file; a spatial resolution (e.g., 1920 x 1080, etc. ) of the media data encoded in the media segment file; etc.
  • the same time segment of the media program is represented by one or more media segment files each of which is from a different set in the one or more sets of media segment files.
  • the one or more media segment files representing the same media segment of the media bitstream may be for transmission at one or more different target bitrates.
  • different sets of media segment files for the same media program may be available from different CDN nodes (e.g., different optimal CDN nodes, etc. ) .
  • at least two sets of media segment files for the same media program may be available from a single CDN node.
  • some media segment files in a set of media segment files for a media program may be available from a first CDN node (e.g., a first optimal CDN node, etc. )
  • some other media segment files in the set of media segment files may be available from a second different CDN node (e.g., a second different optimal CDN node, etc. ) .
  • the media segment server (104) As a part of segmenting the one or more media bitstreams into the one or more sets of media segment files, the media segment server (104) generates a media index for the one or more sets of media segment files; the media index can be used by a downstream recipient device to select media segment files from the one or more sets of media segment files and combine the selected media segment files into a reconstructed (e.g., dynamically bitrate adaptive, etc. ) version of the media program.
  • the media index may be represented by one or more media index files (e.g., M3U8 files, etc. ) (1) comprising one or more sets of media segment entries respectively referencing (e.g., via file paths, URLs, etc. ) the one or more sets of media segment files that have been generated by segmenting the one or more media bitstreams, (2) identifying one or more target bitrates supported by the one or more sets of media segment files, etc.
  • a set of media segment entries in the media index files provides a time-based order of a respective set of media segment files in the one or more sets of media segment files. Based on the time-based order, a downstream recipient device (e.g., the user device 102, etc. ) can determine whether a specific media segment file among the set of the media segment files corresponds to the first time segment, the second time segment, etc. , of the media program.
  • a downstream recipient device e.g., the user device 102, etc.
  • the downstream recipient device can select media segment files from different sets in the one or more sets of media segment files based on network conditions, device load conditions, etc., and combine the selected media segment files into a (e.g., smoothly playing, live streaming, with tightly matched continuity between neighboring media segments, a constant bitrate, a dynamically bitrate adaptive, etc. ) version of the media program.
  • a e.g., smoothly playing, live streaming, with tightly matched continuity between neighboring media segments, a constant bitrate, a dynamically bitrate adaptive, etc.
  • the reconstructed version of the media bitstream may be formed by media segment files transmitted at different target bitrates.
  • one or more first media segments of a reconstructed mixed bitrate media bitstream may be provided by one or more first media segment files (from a first set of media segment files in the one or more sets of media segment files) transmitted at a first target bitrate;
  • one or more second media segments of the mixed bitrate media bitstream may be provided by one or more second different media segment files (from a second set of media segment files in the one or more sets of media segment files) transmitted at a second different target bitrate; and so on.
  • the media index, or the media index files constituting the media index may be continuously and/or dynamically updatable as new time segments, or new media segment files representing the new time segments, of the media program (e.g., live streaming media bitstreams with no fixed end time, a live broadcast, etc. ) are produced.
  • new media segment files representing the new time segments, of the media program e.g., live streaming media bitstreams with no fixed end time, a live broadcast, etc.
  • a media index file as described herein may be in a standard-based format, a proprietary-based format, a standard-based format with proprietary extensions and/or enhancements, etc.
  • the media index file itself may or may not contain media content data such as pixel values, audio samples, etc.
  • a media index file is an M3U8 file comprising media segment entries referencing a play list of media segment files.
  • the play list may, but is not required to only, point to some or all media segment files in a set of media segment files segmented from a media bitstream of the media program.
  • Each of the media segment entries in the media index file may identify a file path, a URL, etc., at which a media segment file can be accessed/retrieved.
  • a media segment entry can be a character string, a text-based entry, a Unicode-based entry, a binary string, etc.
  • source media content of a one-hour long media program may be encoded into one or more MPEG-2 media bitstreams.
  • Each of the one or more MPEG-2 media bitstream can be segmented to a set of 1200 HTTP-based media segment files (e.g., in an MPEG Transport Stream format, etc. ) among one or more sets of media segment files segmented from the one or more media bitstreams.
  • Each set of HTTP-based media segment files contains a set of three-second time segments of the one-hour long media program, and comprises media segment files to be transmitted to a recipient device such as the user device (102) at a specific bitrate (e.g., one of 1.5 Mbit/sec, 5 Mbit/sec, 10 Mbit/sec, 25 Mbit/sec, etc. ) .
  • a specific bitrate e.g., one of 1.5 Mbit/sec, 5 Mbit/sec, 10 Mbit/sec, 25 Mbit/sec, etc.
  • the media segment server (104) is configured to distribute one or more sets of media segment files and one or more corresponding media index files into the CDN (114) for further distribution to user devices.
  • the one or more sets of media segment files and the one or more media index files can be transmitted by the media segment server (104) to some or all of the one or more CDN parent nodes (106) .
  • the media segment entries in the media index file as received by the one or more CDN parent nodes (106) from the media segment server (104) may compri se data fields that have not been populated with host addresses of one or more CDN nodes (e.g., one or more CDN edge nodes in the plurality of CDN edge nodes 108, etc. ) from which the media segment files are to be retrieved by a specific user device (e.g., 102, etc. ) .
  • the one or more CDN parent nodes (106) comprise software, hardware, a combination of software and hardware, etc., configured to receive media index files and media segment files such as those from the media segment server (104) , etc. ; store/cache some or all of the received media index files and the received media segment files in one or more first data repositories accessible by the one or more CDN parent nodes (106) ; distribute some or all of the received media index files and the received media segment files to the plurality of CDN edge nodes (108) ; etc.
  • the plurality of CDN edge nodes (108) comprise software, hardware, a combination of software and hardware, etc., configured to receive media segment files such as those originally from the media segment server (104) by way of the one or more CDN parent nodes (106) ; store/cache some or all of the received media segment files in one or more second data repositories accessible by the one or more CDN edge nodes (108) ; transmit some or all of the received media segment files to any of a wide variety of user devices such as the user device (102) in response to media segment requests from the user devices; etc.
  • a CDN node as described herein such as a CDN parent node, a CDN edge node, etc., refers to a cache server node in a CDN (e.g., t 14, etc. ) that is operated by a CDN service provider.
  • the CDN service provider uses the CDN to provide CDN services to clients such as websites, portals, database systems, computer servers, etc. More specifically, contents of CDN service clients such as websites, portals, database systems, computer servers, etc., can be cached by, and served out to user devices from, CDN nodes in the CDN.
  • the CDN nodes in the CDN (114) can be deployed in a wide variety of geographic locations, computer networks, parts of a computer network, etc. These CDN nodes can be used to accelerate caching and distribution of media contents of websites, portals, database systems, computer servers, etc., relative to user devices located in various geographic locations, various computer networks, various parts of a computer network, etc.
  • content access requests to contents of a CDN service client such as a website, a media content provider, etc.
  • a GSLB mechanism e.g., 112, etc.
  • the GSLB mechanism (112) comprises so ftware, hardware, a combination of software and hardware, etc., configured to perform load balancing operations among individual CDN nodes (e.g., the CDN parent nodes 106, the CDN edge nodes 108, etc. ) of the CDN (114) by distributing/directing possibly a very large number of content access requests to a website, a media content provider, etc., as generated from a very large number of users, applications, user devices, etc., to optimal CDN nodes of the CDN (114) where there are both right types of resources and sufficient amounts of resources to response to the content access requests with high performance and fast responses (or low latencies) .
  • a large number of concurrent content access requests (or visits) and a large volume of accompanying data can be distributed/directed by the GSLB mechanism (112) to multiple CDN nodes in the CDN (114) for parallel processing.
  • a content access request from a user device e.g., 102, etc.
  • a computation-intensive task such a task may be further divided among multiple computing processors in the CDN (114) for parallel processing with results properly synchronized and/or aggregated before returning the results to the user device.
  • the CDN (114) and the CDN nodes therein, can handle not only a relatively large number of concurrent content access requests but also a high degree of computation complexity related to some or all of these content access requests.
  • the GSLB mechanism (112) can direct the CDN (114) to provide media segment files associated with a CDN service client such as an internet-based streaming content provider, a media broadcasting system, etc., through CDN nodes or cache nodes that are determined to be relatively close to user devices that makes content access requests for the media segment files.
  • a CDN service client such as an internet-based streaming content provider, a media broadcasting system, etc.
  • Example content access requests as described herein include, but are not limited to only, any of: media index requests (or requests for media index files of a media program) , media segment requests (or requests for media segment files of a media program) , etc.
  • the user device (102) comprises software, hardware, a combination of software and hardware, etc., configured to interact with a user of the user device (102) via one or more user interface elements; based on user input from the user, retrieve media segment files and media index files of media programs from one or more internet-based sources (e.g., CDN nodes in the CDN 114, etc. ) ; run one or more media playing applications for playing/rendering the media programs; etc.
  • one or more internet-based sources e.g., CDN nodes in the CDN 114, etc.
  • a media playing application as described herein refers to a computer application running on a user device (e.g., 102, etc. ) that can be used to play or render a media program on the user device (102) .
  • a media playing application supports adaptive bitrate media streaming.
  • adaptive bitrate media streaming supported by a media playing application may include, but are not limited to only, any of: for example, MPEG dynamic adaptive streaming over HTTP (MPEG-DASH) , HTTP live streaming (HLS) , adaptive HTTP streaming (AHS) , HTTP adaptive streaming (HAS) , Microsoft smooth streaming, etc.
  • a user may provide user input for selecting a media program for playing/rendering on the user device (102) .
  • the user may select a URL on a webpage displayed on the user device (102) , or a media program presented in an electronic program guide on the user device (102) .
  • the user device (102) receives the URL that corresponds to the selected media program.
  • the URL may identify or comprise a network location at which one or more media index files for the media program can be requested and received.
  • the network location identified by the URL may be a host name of the media index dispatcher (110) .
  • the user device (102) or a DNS client (e.g., HTTP, “nslookup” , “dig” , etc. ) thereon, may cause one or more DNS queries to be generated for the host name and to be sent to one or more DNS servers such as the local DNS server (118) , root and zone DNS servers, authoritative DNS servers (or authoritative nameservers) , the content-provider DNS server (120) , etc.
  • DNS servers such as the local DNS server (118) , root and zone DNS servers, authoritative DNS servers (or authoritative nameservers) , the content-provider DNS server (120) , etc.
  • the user device (102) receives from the one or more DNS servers (e.g., the content-provider DNS server 120, etc. ) one or more DNS responses (as responses to the one or more DNS queries) that comprise a host address (e.g., an IP address, etc. ) of the media index dispatcher (110) .
  • the user device (102) sends, to the media index dispatcher (110) , a media program playing request for the selected media program with a modified URL that comprises the host address of the media index dispatcher (110) .
  • the modified URL may be a DNS-resolved resource location for the one or more media index files for the selected media program.
  • the media index dispatcher (110) comprises software, hardware, a combination of software and hardware, etc., configured to receive media program playing requests from user devices and send media program playing responses comprising requested media index files in response to the media program playing requests.
  • the media index dispatcher (110) is a part of, or operates in conjunction with, the GSLB mechanism (112) for the CDN (114) .
  • the media index dispatcher (110) determines a CDN parent node (e.g., one of the CDN parent nodes 106, etc. ) as having stored/cached requested media index files for a media program requested by the media program playing request.
  • the media index dispatcher (110) sends one or more media index requests to the CDN parent node for the media index files and receives the media index files from the CDN parent node as responses to the media index requests.
  • the media index files are HTTP-based files in compliance with an HTTP-based media streaming protocol.
  • the media index files can easily interoperate with a wide variety of CDNs, caching mechanisms, etc., and can be delivered to a wide variety of user devices (e.g., 102, etc. ) over security mechanisms such as firewalls, etc.
  • the media index dispatcher (110) can operate with the GSLB mechanism (112) to intelligently identify an access network (e.g., a customer premises network or CPN in Shanghai, a CPN in Guangdong, etc. ) from which the media program playing request originates, for example, by analyzing one or more DNS queries, one or more source IP addresses of data packets or application level messages, one or more data fields in HTTP messages, etc., caused by or related to the media program playing request.
  • the GSLB mechanism (112) can determine a host address (e.g., an IP address, a non-domain name address, a non-host name address, etc. ) of the user device (102) that generates the media program playing request.
  • the GSLB mechanism (112) may maintain and/or access an up-to-date host address database that is refreshed in real time, in near real time, etc. Using host address information stored in the host address database, the GSLB mechanism (112) can determine the host address or the subnet of the user device (102) , the access network with relatively high accuracy and currency, a host address of a CDN node, etc.
  • the media index dispatcher (110) can be configured to determine/select optimal CDN nodes (e.g., one or more CDN edge nodes in the plurality of CDN edge nodes 108, etc. ) that can be used to serve media segment files, as pointed to by media segment entries in the media index files, to the user device (102) .
  • optimal CDN nodes e.g., one or more CDN edge nodes in the plurality of CDN edge nodes 108, etc.
  • the selection of optimal CDN nodes can be made by the GSLB mechanism (112) based on one or more load balancing criteria, algorithms, etc. Additionally, optionally, or alternatively, the selection of the optimal CDN nodes can be made by the GSLB mechanism (112) based at least in part on the host address or subnet of the user device (102) , the access network from which the media program playing request originates, etc. Examples of optimal CDN nodes may be, but are not limited to only, any of: one or more of CDN nodes relatively close to the user device (102) and/or the access network; CDN nodes located proximate to the user device (102) and/or the access network in terms of geographical locations, network topologies, etc.
  • CDN nodes in the same service provider network as the user device (102) and/or the access network CDN nodes in the same country, region, city, etc., as the access network; CDN nodes that have relatively large capacities, relatively low resource occupancies, etc. ; etc.
  • the CDN (114) may adopt a cloud-based architecture with a high degree of redundancy, diversity, reliability, availability, fault tolerance, resistance to malicious attacks, etc.
  • the GSLB mechanism (112) can be configured to monitor performance and operational states of individual CDN nodes in the CDN (114) . When the GSLB mechanism (112) (e.g., automatically, etc. ) detects that a host address (e.g., an IP address as returned by a DNS name resolution process, etc. ) is associated with a CDN node in an abnormal operational state, the GSLB mechanism (112) avoids selecting the CDN node for media playing/streaming purposes.
  • the GSLB mechanism (112) may be configured to direct the content-provider DNS server (120) , the GSLB mechanism (112) , etc., to return a host address of an optimal CDN node in a normal operating state.
  • the media index files retrieved from the CDN parent node may comprise media segment entries with placeholders, domain names, host names, etc., absent of (non-domain-name) host addresses of the one or more optimal CDN nodes or any URL redirector.
  • the media index dispatcher (110) modifies the media segment entries in the media index files to point to one or more host addresses (e.g., IP addresses, non-domain name addresses, non-host name addresses, etc. ) of the one or more optimal CDN nodes. Subsequently, the media index dispatcher (110) sends the modified media index files with modified media segment entries to the user device (102) .
  • the user device (102) is expressly directed to the selected optimal CDN nodes to retrieve media segment files for the media program requested by the user directly from the optimal CDN nodes without repeatedly making DNS queries/requests or URL redirections for each media segment file to be downloaded. More specifically, the user device can send media segment requests (e.g., HTTP-based messages, etc. ) directly to the one or more optimal CDN nodes based on the host addresses given in the modified media segment entries in the modified media index files.
  • media segment requests e.g., HTTP-based messages, etc.
  • the media index files sent to the user device (102) form a hierarchy of media index files for the purpose of obtaining multiple sets of media segment entries representing multiple media bitstreams of the same media program.
  • a first media index file in the media index files may belong to the top level of the hierarchy and identify all target bitrates that are available for the user device (102) to download media segment files of the media program.
  • the first media index file For each of the available target bitrates identified by the first media index file, the first media index file also points to or comprises a corresponding second media index file among one or more second media index files at a level below the top level; the corresponding second media index file comprises a set of media segment entries pointing to a set of media segment files that can be transmitted/downloaded to the user device (102) at that target bitrate.
  • a second media index file as described herein comprises one, two or more different sets of media segment entries referencing one, two or more corresponding sets of media segment files for one, two or more different media bitstreams of a media program.
  • the one, two or more corresponding sets of media segment files may correspond to one, two, or more different bitrates.
  • a second media index file as described herein comprises a single set of media segment entries referencing a single set of media segment files for a single media bitstream of a media program.
  • the single set of media segment files may correspond to a single bitrate.
  • the media playing application on the user device (102) can select different media segment files-adapted to different bitrates-from different sets of media segment files.
  • a relatively high bitrate media bitstream of a media program may comprise encoded media content of the media program at a relatively high dynamic range, a relatively high spatial resolution, etc.
  • the media playing application on the user device (102) may first default to the highest bitrate of the available bitrates and try to download media segment files that correspond to the highest bitrate media bitstream for playing/rendering on the user device (102) . If the highest bitrate is found to be not sustainable, the media playing application on the user device (102) may adjust to the next highest bitrate, until a supported bitrate under contemporaneous network conditions is found. In some embodiments, the media playing application on the user device (102) can also try to move up bitrates to higher bitrate media bitstreams ifit is determined that such moving up ofbitrates is feasible under contemporaneous network conditions.
  • the user device (102) may perform measurements on supported bitrates between the user device (102) and the one or more optimal CDN nodes (or other candidate CDN nodes) from which the media segment files can be transmitted to the user device (102) . In some embodiments, these measurements can be made in real time, while the media segment files are being accessed and/or rendered with the user device (102) . Based on the measurements on the supported bitrates, the user device (102) may switch between/amongst different sets of media segment entries (e.g., possibly also switching between/amongst different media bitstreaming sources, etc. ) to access media segment files that have been adapted to be transmitted to different bitrates that correspond to the supported bitrates as these media segment files are being accessed and/or being rendered with the user device (102) .
  • media segment entries e.g., possibly also switching between/amongst different media bitstreaming sources, etc.
  • new media segment files may be continuously and/or dynamically generated for the media program (e.g., a live broadcast, etc. )
  • the media index files as described herein may comprise one or more attributes to indicate that new media index files should be (continuously and/or dynamically) retrieved/updated from time to time, periodically, based on notifications/events, etc.
  • the media playing application on the user device (102) may download, from the media index dispatcher (110) , one or more new media index files with new media segment entries identifying (e.g., new, existing, etc. ) optimal CDN nodes from which the new media segment files of the media program can be downloaded from time to time, periodically, based on notifications/events, etc.
  • FIG. 1B depicts an alternative configuration 150 for media content delivery, which comprises a user device 102, a media segment server 104, a media encoder 116, a CDN 114, a URL redirector 122, a content-provider DNS server 120, etc.
  • the CDN (114) comprises one or more CDN parent nodes 106 and a plurality of CDN edge nodes 108.
  • the media encoder (116) may be configured to encode source media content of the media program into media bitstreams.
  • the media segment server (104) segments the media bitstreams into sets of media segment files and generates a media index for the sets of media segment files.
  • the media segment server (104) can distribute the sets of media segment files and media index files into the CDN (114) for further distribution to user devices.
  • the media segment entries in the media index file as received by the one or more CDN parent nodes (106) from the media segment server (104) may comprise a host address of the URL redirector (122) .
  • the user device (102) may receive a URL that corresponds to a selected media program for playing/rendering on the user device (102) .
  • the user device (102) may cause one or more DNS queries to be generated for a domain name specified by the URL and to be sent to the content-provider DNS server (120) .
  • the user device (102) receives from the content-provider DNS server (120) one or more DNS responses that comprise a host address (e.g., an IP address, etc. ) of a first CDN node.
  • the user device (102) subsequently sends, to the first CDN node, a media program playing request for the selected media program with a modified URL that comprise the host address of the first CDN node.
  • the modified URL may be a DNS-resolved resource location for the one or more media index files for the selected media program.
  • the first CDN node retrieves and sends the media index files (e.g., without modifying media segment entries therein, etc. ) to the user device (102) .
  • the user device (102) can send an individual request for a media segment file to the URL redirector (122) .
  • the URL redirector (122) can be configured to generate an HTTP error code 302 each time the URL redirector (122) receives a request for a media segment file and redirect the user device (102) to send a URL redirected request to a selected CDN node for the media segment file. From the CDN node that is selected each time in response to receiving an individual request for a media segment file, the user device (102) can receive the media segment file for the media program requested by the user and assemble the media segment file into a reconstructed version of the media program for playing/rendering on the user device (102) .
  • FIG. 2A illustrates an example time sequence of injecting media index files and media segment files generated from media bitstreams of a media program into a CDN (e.g., 114 of FIG. 1A, etc. ) with the expedited media content delivery configuration (100) of FIG. 1A.
  • a CDN e.g., 114 of FIG. 1A, etc.
  • a media encoder (e.g., 116 of FIG. 1A, etc. ) encodes source media content of the media program into one or more rnedia bitstreams.
  • the media bitstreams comprise encoded media content of the media program in one or more of media bitstream files, media bitstream containers, etc.
  • Each of the media bitstream can be transmitted (e.g., for live streaming, etc. ) at one of one or more target bitrates.
  • the media encoder (116) proceeds to send the one or more media bitstreams to a media segment server (e.g., 104 of FIG. 1A, etc. ) .
  • a media segment server e.g., 104 of FIG. 1A, etc.
  • the media segment server (104) generates one or more sets of media segment files based on the one or more media bitstreams received from the media encoder (116) .
  • the media segment server (104) further generates one or more media index files as a media index for the one or more sets of media segment files.
  • These media segments files and the media index files are injected by the media segment server (104) into the CDN (114) by way of one or more CDN parent nodes (e.g., 106 of FIG. 1A, etc. ) in the CDN (114) .
  • the one or more CDN parent nodes (106) distributes the media segment files to other CDN nodes throughout the CDN (114) .
  • the media segment files may be distributed by the one or more CDN parent nodes ( (106) to a plurality of CDN edge nodes (e.g., 108 of FIG. 1A, etc. ) in the CDN (108) so that these files can be further distributed to user devices from the plurality of CDN edge nodes (108) .
  • the media index files are distributed to the plurality of CDN edge nodes (108) .
  • the media index files are not distributed to the plurality of CDN edge nodes (108) but stay with the CDN parent nodes (106) .
  • FIG. 2B illustrates an example time sequence of serving media index files and media segment files of a media program from a CDN (e.g., 114 of FIG. 1A, etc. ) to user devices with the expedited media segment deliver configuration (100) of FIG. 1A.
  • a CDN e.g., 114 of FIG. 1A, etc.
  • a user may be presented with a webpage or an EPG, displayed on a user device (e.g., 102 of FIG. 1A, etc. ) , that includes URLs for media index files for various media programs.
  • the user can select a specific media program for playing/rendering, which results in the user device (102) receiving a selection of a URL for one or more media index files for the specific media program.
  • the URL may comprise a domain name such as a content provider domain name, etc. , that is to be resolved to a host address,
  • the URL comprises one or more data items identifying a designated DNS server such as a content-provider DNS server (e.g., 120 of FIG. 1A, etc. ) , etc.
  • the user device (102) sends a DNS query for the domain name (e.g., via a local DNS server, etc. ) to the content-provider DNS server (120) .
  • the content-provider DNS server (120) resolves the domain name in the URL to a host address or a media index dispatcher (e.g., 110 of FIG. 1B, etc. ) .
  • the content-provider DNS server (120) proceeds to send a DNS response with the host address of the media index dispatcher (110) to the user device (102) .
  • the user device (102) modifies the URL by replacing the domain name (or host name) in the URL with that of the host address of the media index dispatcher (110) , and sends the modified URL (e.g., in an HTTP-based message, etc. ) to the media index dispatcher (110) as a part of a media program playing request.
  • the media index dispatcher (110) selects a CDN parent node (e.g., one of the CDN parent nodes 106, etc. ) for requesting the media index files associated with the modified URL.
  • the media index dispatcher (110) sends one or more media index requests to the CDN parent node for the media index files.
  • the media index dispatcher (110) receives the media index files from the CDN parent node as responses to the media index requests from the media index dispatcher (110) .
  • at least some media segment entries in the media index files may comprise domain names, host names, placeholders, etc., absent of host addresses of optimal CDN nodes or any URL redirector.
  • the media index dispatcher (110) determines/selects, among the plurality of CDN edge nodes (108) that can be used to serve the media segment files pointed to by the media segment entries of the media index files, one or more optimal CDN nodes for downloading media segment files to the user device (102) .
  • the media index dispatcher (110) may operate in conjunction with, or as a part of, a GSLB mechanism (e.g., 112 of FIG. 1A, etc. ) to select the one or more optimal CDN nodes.
  • the selection of the one or more optimal CDN nodes can be based on one or more factors such as the host address or subnet of the user device (102) , local and global workloads on CDN nodes, network traffic volume, etc.
  • the media index dispatcher (110) updates the media index files by placing or adding in the media segment entries in the media index files with one or more host addresses of the one or more optimal CDN nodes. Once the media index files are so updated, the media index dispatcher (110) proceeds to send a media program playing response with the media index files to the user device (102) .
  • the one or more media index files as received from the selected CDN edge node in the plurality of CDN edge nodes (108) , comprise media segment entries referencing media segment files of the media program.
  • each of the media segment entries is a media segment URL at which a corresponding media segment file can be received.
  • each media segment URL comprises a host address (e.g., an IP address, etc. ) of a CDN edge node in the plurality of CDN edge nodes (108) , as specified by the media index dispatcher (110) .
  • the user device (102) determines that a media segment entry, among the media segment entries in the media index files, references a first media segment file of the media program.
  • the first media segment file of the media program may correspond to a starting time segment of the media program.
  • the media segment entry may comprise a first media segment file URL at which the first media segment file can be requested.
  • the user device (102) proceeds to send a first media segment file request to a host address of one of the optimal CDN nodes in the plurality of CDN edge nodes (108) as indicated by the first media segment file URL.
  • the one of the optimal CDN nodes in the plurality of CDN edge nodes (108) sends the first media segment file for the media program to the user device (102) .
  • the operations as described in blocks 220 and 222 may be repeated so that a media segment file for each subsequent time segment of the media program can be retrieved from one of the optimal CDN nodes in the plurality of CDN edge nodes (108) .
  • the user device (102) determines that a subsequent media segment entry, among the media segment entries in the media index files, references a subsequent media segment file of the media program.
  • the subsequent media segment file of the media program may correspond to a subsequent time segment (e.g., the second time segment, the third time segment, etc. ) of the media program.
  • the media segment entry may comprise a subsequent media segment file URL at which the subsequent media segment file can be requested.
  • the user device (102) proceeds to send a subsequent media segment file request to a host address of one of the optimal CDN nodes in the plurality of CDN edge nodes (108) as indicated by the subsequent media segment file URL. Similar to block 222, the one of the optimal CDN nodes in the plurality of CDN edge nodes (108) as indicated by the subsequent media segment file URL can send the subsequent media segment file to the user device (102) .
  • FIG. 3A illustrates an example time sequence of injecting media index files and media segment files of a media program into a CDN (e.g., 114 of FIG. 1B, etc. ) with the media content delivery configuration (150) of FIG. 1B.
  • a media encoder e.g., 116 of FIG. 1B, etc.
  • the media segment server (104) generates one or more sets of media segment files based on the one or more media bitstreams received from the media encoder (116) .
  • the media segment server (104) further generates one or more media index files for the one or more sets of media segment files.
  • the one or more CDN parent nodes (106) distributes the media segment files and the media index files to a plurality of CDN edge nodes (e.g., 108 of FIG. 1B, etc. ) in the CDN (108) .
  • FIG. 3B illustrates an example time sequence of serving media index files and media segment files of a media program from a CDN (e.g., 114 of FIG. 1B, etc. ) to user devices with a media segment deliver configuration of FIG. 1B.
  • a CDN e.g., 114 of FIG. 1B, etc.
  • a user selects a specific media program for playing/rendering with a user device (e.g., 102 of FIG. 1B, etc. ) .
  • the user device (102) sends a DNS query for a domain name (or a host name) in a URL associated with the specific media program to a content-provider DNS server (e.g., 120 of FIG. 1B, etc. ) .
  • the DNS server (120) resolves the domain name (or host name) in the URL to a host address of a CDN edge node in a plurality of CDN edge nodes (e.g., 108 of FIG. 1B, etc. ) , and sends a DNS response with the host address of the CDN edge node to the user device.
  • the user device (102) modifies the URL by replacing the domain name (or host name) in the URL with that of the host address of the CDN edge node, and sends the modified URL associated with the specific media program to the CDN edge node.
  • the CDN edge node sends one or more media index files for the media program to the user device (102) .
  • the one or more media index files as received from the selected CDN edge node in the plurality of CDN edge nodes (108) , comprise media segment entries referencing media segment files of the media program.
  • each media segment URL comprises a host address (e.g., an IP address, etc. ) of a URL redirector (e.g., 122 of FIG. 1B, etc. ) .
  • the user device (102) determines that a media segment entry, among the media segment entries in the media index files, references a first media segment file of the media program.
  • the first media segment file of the media program may correspond to a starting time segment of the media program.
  • the user device (102) proceeds to send a first media segment file request with the first media segment file URL to the URL redirector (122) .
  • the URL redirector (122) selects a host address of a CDN edge node from among the plurality of CDN edge nodes (108) . Once the CDN edge node is selected, the URL redirector (122) proceeds to send a URL redirection message (e.g., with an HTTP error code 302, etc. ) with the host address of the selected CDN edge node to the user device.
  • a URL redirection message e.g., with an HTTP error code 302, etc.
  • the user device (102) modifies the URL by replacing the host address of the URL redirector (122) in the URL with that of the host address of the selected CDN edge node, and sends the modified URL (e.g., in an HTTP-based message, etc. ) to the selected CDN edge node in the plurality of CDN edge nodes (108) .
  • the selected CDN edge node in the plurality of CDN edge nodes (108) sends the first media segment file for the media program to the user device (102) .
  • the user device (102) determines that a subsequent media segment entry, among the media segment entries in the media index files, references a subsequent media segment file of the media program.
  • the subsequent media segment file of the media program may correspond to a subsequent time segment (e.g., the second time segment, the third time segment, etc. ) of the media program.
  • the user device (102) proceeds to send a subsequent media segment file request with the subsequent media segment file URL to the URL redirector (122) .
  • the URL redirector (122) may select a CDN edge node to send the subsequent media segment file to the user device (102) .
  • an individual request is sent to either a DNS server or a URL redirector so that a CDN edge node can be selected by the DNS server or the URL redirector to return each such file.
  • individual requests for media index files and/or media segment files as generated by a relatively large user population, can place a very large workload on the content-provider DNS server (120) and/or the URL redirector (122) such that either the content-provider DNS server (120) or the URL redirector (122) can become a performance bottleneck.
  • Each time a user device accesses one of the media segment files either the content-provider DNS server (120) or the URL redirector (122) is invoked to select a CDN edge node in the CDN in the configuration (150) of FIG. 1B.
  • redirections to actual CDN nodes are made based on modifying media index files, rather than based on URL redirections (e.g., error code 302, etc. ) .
  • a media index dispatcher can work with a GSLB mechanism to provide, to a user device requested media index files of a media program.
  • the requested media index files are dynamically modified fi-om preconfigured media index files.
  • these dynamically modified media index files comprise host addresses (e.g., IP addresses, etc. ) of CDN nodes after these CDN nodes are detennined to be optimal for downloading media segment files of the media program to the user device.
  • the user device When the user device receives the dynamically modified media index files, the user device have already been given host addresses of the optimal CDN nodes from which the media segment files can be directly requested. Consequently, the media index dispatcher or the GSLB mechanism in the configuration (100) of FIG. 1A can be invoked only once when the request for the media index files are received. For any subsequent requests such as those for media segment files of the media program, neither the media index dispatcher nor the GSLB mechanism needs to be involved in selecting a CDN node from among CDN nodes in the CDN.
  • FIG. 4 illustrates an example media index dispatcher (e.g., 110 of FIG. 1A, etc. ) comprising an index entry modification module 402, a load balancing module 404, a media program playing request processor 406, a CDN interface module 408, a host address data repository 410, etc.
  • an index entry modification module 402 e.g., 110 of FIG. 1A, etc.
  • a load balancing module 404 e.g., a media program playing request processor 406
  • CDN interface module 408 e.g., a CDN interface module
  • the media program playing request processor (406) comprises software, hardware, a combination of hardware and software, etc., configured to process media program playing requests received from a variety of user devices such as mobile computing devices, tablet computers, laptop computers, smart phones, media players, etc. , and in response send media index files as modified by the media index dispatcher (110) to the user devices.
  • the load balancing module (404) comprises software, hardware, a combination of hardware and software, etc., configured to interface with a GSLB mechanism (e.g., 112 of FIG. 1A, etc. ) , and select optimal CDN nodes for direct accessing media files of a media program in response to a specific media program playing request from a specific user device (e.g., 102 of FIG. 1A, etc. ) .
  • a GSLB mechanism e.g., 112 of FIG. 1A, etc.
  • the index entry modification module (402) comprises software, hardware, a combination of hardware and software, etc., configured to modify media segment entries in media index files with host addresses of optimal CDN nodes selected for direct accessing media files of a media program in response to a specific media program playing request from a specific user device (e.g., 102 of FIG. 1A, etc. ) .
  • the CDN interface module (408) comprises software, hardware, a combination of hardware and software, etc., configured to retrieve pre-modified media index files of a media program from one or more CDN nodes (e.g., one or more CDN parent nodes 106 of FIG. 1A, etc. ) in a CDN (e.g., 114 of FIG. 1A, etc. ) , in response to a specific media program playing request from a specific user device (e.g., 102 of FIG. 1 A, etc. ) .
  • CDN nodes e.g., one or more CDN parent nodes 106 of FIG. 1A, etc.
  • a CDN e.g., 114 of FIG. 1A, etc.
  • the host address data repository (410) comprises software, hardware, a combination of hardware and software, etc. , configured to maintain one or more of host addresses of CDN nodes, access networks through which media program playing requests are received from user devices, host addresses of user devices, etc.
  • the host address data repository (410) can be configured to support data access operations, data modification operations, data creation operations, etc., related to host address information maintained in the host address data repository (410) .
  • the host address information may be dynamically updated as changes to the host address information occur.
  • FIG. 5 illustrates an example process flow according to an example embodiment of the present invention.
  • one or more computing devices or components may perform this process flow.
  • a media index dispatcher e.g., 110 of FIG. 1A, etc.
  • the media index dispatcher (110) retrieves the one or more media index files of the media program, the one or more media index files comprising one or more sets of media segment entries, each set in the one or more sets of media segment entries referencing a respective set of media segment files in one or more sets of media segment files of the media program.
  • the media index dispatcher (110) selects one or more optimal content delivery network (CDN) nodes for delivering the one or more sets of media segment files to the user device.
  • CDN content delivery network
  • the media index dispatcher modifies at least one media segment entry in the one or more sets of media segment entries to include a host address of one of the one or more optimal CDN nodes before sending any of the one or more sets of media segment entries to the user device.
  • a resource locator as described herein represents one of a file path, or a universal resource locator (URL) .
  • URL universal resource locator
  • the resource locator comprises a domain name (or a host name) to be resolved by a content-provider domain name system (DNS) server (e.g., 120 of FIG. 1A, etc. ) to the media index dispatcher (110) that operates in conjunction with a global server load balancing (GSLB) mechanism (e.g., 112 of FIG. 1A, etc. ) for a CDN (e.g., 114 of FIG. 1A, etc. ) that includes the one or more optimal CDN nodes (e.g., one or more of a plurality of CDN edge nodes 108, etc. ) .
  • DNS content-provider domain name system
  • GSLB global server load balancing
  • the one or more optimal CDN nodes represent a subset of CDN nodes in a set of CDN nodes of a CDN.
  • each set in the one or more sets of media segment entries sets forth a time-based order for media segment files in a respective set of media segment files in the one or more sets of media segment files of the media program.
  • a set of media segment files in the one or more sets of media segment files of the media program is generated from segmenting a media bitstream of the media program; the media bitstream comprises encoded media content of the media program to be transmitted at a specific target bitrate.
  • the media program comprises a sequence of time segments; a time segment of the media program in the sequence of time segments corresponds to one or more media segment files each of which belongs to a different set of media segment files in the one or more sets of media segment files.
  • the one or more optimal CDN nodes are selected from a plurality of CDN edge nodes (e.g., 108 of FIG. 1A, etc. ) in a CDN (e.g., 114 of FIG. 1A, etc. ) .
  • the one or more optimal CDN nodes are selected based on one or more of a host address or subnet of the user device, an access network from which the media program playing request originates, a geographic proximity of the user device to the one or more optimal CDN nodes, a network proximity of the user device to the one or more optimal CDN nodes, a service provider network shared between the user device and the one or more optimal CDN nodes, remaining capacities of the one or more optimal CDN nodes, or relatively low resource occupancies in the one or more optimal CDN nodes.
  • the one or more media index files as retrieved from one or more CDN nodes in a CDN are absent of the host address of the one of the one or more optimal CDN nodes.
  • At least one of the one or more media index files is retrieved from a non-edge CDN node in a CDN.
  • the one or more media index files of the media program are HTTP-based files.
  • the one or more media index files of the media program identify one or more target bitrates at which the one or more sets of media segment files are to be transmitted from the one or more optimal CDN nodes to the user device.
  • the host address is a non-domain name address (e.g., an explicit network address, an IP address, etc. ) of the one of the one or more optimal CDN nodes.
  • the host address is an internet protocol (IP) address of the one of the one or more optimal CDN nodes.
  • IP internet protocol
  • the media index dispatcher (110) is further configured to send the one or more sets of media segment entries in the one or more media index files to the user device; a plurality of modified media segment entries in the one or more sets of media segment entries enables the user device to directly request any media segment files referenced by any in the plurality of modified media segment entries from a specific CDN node of the one or more optimal CDN nodes.
  • a system, an apparatus, or one or more other computing devices performs any or a part of the foregoing methods as described.
  • a non-transitory computer readable storage medium storing software instructions, which when executed by one or more processors cause performance of any of the foregoing methods.
  • a computing device comprising one or more processors and one or more storage media storing a set of instructions which, when executed by the one or more processors, cause performance of any of the foregoing methods.
  • the techniques described herein are implemented by one or more special-purpose computing devices.
  • the special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination.
  • ASICs application-specific integrated circuits
  • FPGAs field programmable gate arrays
  • Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques.
  • the special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
  • FIG. 6 is a block diagram that illustrates a computer system 600 upon which an example embodiment of the invention may be implemented.
  • Computer system 600 includes a bus 602 or other communication mechanism for communicating information, and a hardware processor 604 coupled with bus 602 for processing information.
  • Hardware processor 604 may be, for example, a general purpose microprocessor.
  • Computer system 600 also includes a main memory 606, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 602 for storing information and instructions to be executed by processor 604.
  • Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 604.
  • Such instructions when stored in non-transitory storage media accessible to processor 604, render computer system 600 into a special-purpose machine that is customized to perform the operations specified in the instructions.
  • Computer system 600 further includes a read only memory (ROM) 608 or other static storage device coupled to bus 602 for storing static information and instructions for processor 604.
  • ROM read only memory
  • a storage device 610 such as a magnetic disk or optical disk, is provided and coupled to bus 602 for storing information and instructions.
  • Computer system 600 may be coupled via bus 602 to a display 612, such as a liquid crystal display, for displaying information to a computer user.
  • a display 612 such as a liquid crystal display
  • An input device 614 is coupled to bus 602 for communicating information and command selections to processor 604.
  • cursor control 616 is Another type of user input device
  • cursor control 616 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612.
  • This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y) , that allows the device to specify positions in a plane.
  • Computer system 600 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 600 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 600 in response to processor 604 executing one or more sequences of one or more instructions contained in main memory 606. Such instructions may be read into main memory 606 from another storage medium, such as storage device 610. Execution of the sequences of instructions contained in main memory 606 causes processor 604 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
  • Non-volatile media includes, for example, optical or magnetic disks, such as storage device 610.
  • Volatile media includes dynamic memory, such as main memory 606.
  • Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
  • Storage media is distinct from but may be used in conjunction with transmission media.
  • Transmission media participates in transferring information between storage media.
  • transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602.
  • transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
  • Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 604 for execution.
  • the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer.
  • the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
  • a modem local to computer system 600 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
  • An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 602.
  • Bus 602 carries the data to main memory 606, from which processor 604 retrieves and executes the instructions.
  • the instructions received by main memory 606 may optionally be stored on storage device 610 either before or after execution by processor 604.
  • Computer system 600 also includes a communication interface 618 coupled to bus 602.
  • Communication interface 618 provides a two-way data communication coupling to a network link 620 that is connected to a local network 622.
  • communication interface 618 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • communication interface 618 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
  • LAN local area network
  • Wireless links may also be implemented.
  • communication interface 618 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • Network link 620 typically provides data communication through one or more networks to other data devices.
  • network link 620 may provide a connection through local network 622 to a host computer 624 or to data equipment operated by an Internet Service Provider (ISP) 626.
  • ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 628.
  • Internet 628 uses electrical, electromagnetic or optical signals that carry digital data streams.
  • the signals through the various networks and the signals on network link 620 and through communication interface 618, which carry the digital data to and from computer system 600, are example forms of transmission media.
  • Computer system 600 can send messages and receive data, including program code, through the network (s) , network link 620 and communication interface 618.
  • a server 630 might transmit a requested code for an application program through Internet 628, ISP 626, local network 622 and communication interface 618.
  • the received code may be executed by processor 604 as it is received, and/or stored in storage device 610, or other non-volatile storage for later execution.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

La présente invention concerne une demande de lecture de programme multimédia, comprenant un localisateur de ressource pour des fichiers de répertoire multimédia d'un programme multimédia, qui est reçue en provenance d'un dispositif utilisateur. Les fichiers de répertoire multimédia du programme multimédia sont récupérés, ces derniers comprennent des ensembles d'entrées de segment multimédia, chaque ensemble dans les ensembles d'entrées de segment multimédia référençant un ensemble respectif de fichiers de segment multimédia dans des ensembles de fichiers de segment multimédia du programme multimédia. Des nœuds de réseau de distribution de contenu (CDN) optimaux sont sélectionnés pour distribuer des fichiers de segment multimédia dans les ensembles de fichiers de segment multimédia au dispositif utilisateur. Des entrées de segment multimédia dans les ensembles d'entrées de segment multimédia sont modifiés pour comporter les adresses hôtes de nœuds CDN optimaux.
PCT/CN2014/090808 2014-11-11 2014-11-11 Distribution de contenu multimédia accélérée WO2016074149A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/090808 WO2016074149A1 (fr) 2014-11-11 2014-11-11 Distribution de contenu multimédia accélérée

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/090808 WO2016074149A1 (fr) 2014-11-11 2014-11-11 Distribution de contenu multimédia accélérée

Publications (1)

Publication Number Publication Date
WO2016074149A1 true WO2016074149A1 (fr) 2016-05-19

Family

ID=55953555

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/090808 WO2016074149A1 (fr) 2014-11-11 2014-11-11 Distribution de contenu multimédia accélérée

Country Status (1)

Country Link
WO (1) WO2016074149A1 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106803967A (zh) * 2017-02-13 2017-06-06 北京奇虎科技有限公司 一种直播数据的处理方法和装置
CN106982395A (zh) * 2017-03-02 2017-07-25 上海云熵网络科技有限公司 基于hls的p2p直播系统及方法
WO2019120506A1 (fr) * 2017-12-20 2019-06-27 Telefonaktiebolaget Lm Ericsson (Publ) Procédés et appareil de distribution de contenu
CN110958279A (zh) * 2018-09-26 2020-04-03 阿里巴巴集团控股有限公司 一种数据处理方法及其装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534204A (zh) * 2008-03-10 2009-09-16 中国网通集团宽带业务应用国家工程实验室有限公司 流媒体信息分发系统和方法及客户端
CN101677328A (zh) * 2008-09-19 2010-03-24 中兴通讯股份有限公司 一种基于内容分片的多媒体分发系统和方法
CN103685263A (zh) * 2013-12-06 2014-03-26 乐视致新电子科技(天津)有限公司 轮播媒体资源的方法、服务器及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534204A (zh) * 2008-03-10 2009-09-16 中国网通集团宽带业务应用国家工程实验室有限公司 流媒体信息分发系统和方法及客户端
CN101677328A (zh) * 2008-09-19 2010-03-24 中兴通讯股份有限公司 一种基于内容分片的多媒体分发系统和方法
CN103685263A (zh) * 2013-12-06 2014-03-26 乐视致新电子科技(天津)有限公司 轮播媒体资源的方法、服务器及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106803967A (zh) * 2017-02-13 2017-06-06 北京奇虎科技有限公司 一种直播数据的处理方法和装置
WO2018145537A1 (fr) * 2017-02-13 2018-08-16 北京奇虎科技有限公司 Procédé et dispositif de traitement de données de diffusion en direct
CN106982395A (zh) * 2017-03-02 2017-07-25 上海云熵网络科技有限公司 基于hls的p2p直播系统及方法
WO2019120506A1 (fr) * 2017-12-20 2019-06-27 Telefonaktiebolaget Lm Ericsson (Publ) Procédés et appareil de distribution de contenu
CN110958279A (zh) * 2018-09-26 2020-04-03 阿里巴巴集团控股有限公司 一种数据处理方法及其装置

Similar Documents

Publication Publication Date Title
US10616301B2 (en) Request-based encoding for streaming content portions
US10757067B2 (en) Just in time transcoding and packaging in IPV6 networks
US10771527B2 (en) Caching and streaming of digital media content subsets
US9509784B2 (en) Manifest chunking in content delivery in a network
Kesavan et al. An investigation on adaptive HTTP media streaming Quality-of-Experience (QoE) and agility using cloud media services
US11477262B2 (en) Requesting multiple chunks from a network node on the basis of a single request message
Lederer et al. Adaptive multimedia streaming in information-centric networks
JP6014870B2 (ja) ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム
US20180227648A1 (en) Method for live broadcast based on hls protocol and electronic device
US10819767B2 (en) Information centric network for content data networks
CN109791557B (zh) 用于管理资产存储的计算机实现的方法以及存储系统
US20170041422A1 (en) Method and system for retrieving a content manifest in a network
EP4111700A1 (fr) Identification d'éléments dans un groupe pour remplacement d'élément dynamique
WO2016074149A1 (fr) Distribution de contenu multimédia accélérée
KR20220133938A (ko) 원격 엘리먼트 리졸루션들의 클라이언트 기반 저장
US9876841B2 (en) Context-aware content delivery
Pathan Cloud‐Based Content Delivery and Streaming
TW201528806A (zh) 提供多媒體內容之內容部分至用戶端之方法及對應之快取
van der Hooft et al. Performance characterization of low-latency adaptive streaming from video portals
US20230171441A1 (en) Method providing to a user terminal a target multimedia content available at a master server
Episkopos Peer-to-Peer video content delivery optimization service in a distributed network

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

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

Country of ref document: EP

Kind code of ref document: A1