Adaptive Content Delivery Network Switching Devices and Methods
By using adaptive content delivery network switching devices and methods, and dynamically switching to a higher-performance content delivery network, the problems of playback interruption and poor quality in existing technologies are solved, and a higher quality streaming experience is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- DIVX LLC
- Filing Date
- 2018-02-15
- Publication Date
- 2026-05-26
AI Technical Summary
Existing technologies fail to effectively utilize the switching between multiple content delivery networks in adaptive bit rate streaming, resulting in playback interruptions and poor content quality.
By employing adaptive content delivery network switching devices and methods, and utilizing content delivery network switching applications in the processor and memory, the minimum performance threshold is determined based on playback variables, and dynamic switching is performed to a higher-performing content delivery network, avoiding HTTP errors and playback interruptions.
It improves the overall quality of content, optimizes bandwidth utilization, reduces playback interruptions, and provides a higher quality streaming experience.
Smart Images

Figure CN116233084B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with application number 201880011071.8, application date February 15, 2018, international application number PCT / US2018 / 018399, national phase entry date August 9, 2019, entitled "System and method for adaptive switching between multiple content delivery networks during adaptive bit rate streaming". Technical Field
[0002] The present invention generally relates to adaptive bit rate streaming systems, and more specifically to adaptive switching between multiple content delivery networks when performing adaptive bit rate streaming. Background Technology
[0003] A significant portion of the growth in internet usage is media streaming, which allows consumers to consume media content directly from the internet, bypassing many traditional delivery methods. Streaming media describes the playback of media on a playback device, where the media is stored on a server and sent over the network to the playback device during playback. Typically, the playback device stores a sufficient amount of media in a buffer at any given time during playback to prevent playback interruptions due to the playback device completing playback of all buffered media before receiving the next portion. Adaptive bitrate streaming, or adaptive streaming, involves detecting current streaming conditions (e.g., the user's network bandwidth and CPU capacity) in real time and adjusting the bitrate of the streaming media accordingly. Typically, the source media is encoded at multiple bitrates, and the playback device or client switches between different encodings for streaming depending on available resources.
[0004] Content streams used in adaptive bitrate streaming systems are typically encoded at a target bitrate. The target bitrate includes the maximum bitrate that a user can expect while streaming content. Streams are often encoded in a non-uniform manner but include an average bitrate. Streams are also often encoded with an average bitrate close to the maximum or target bitrate. Therefore, these maximum bitrates are generally used to make streaming switching decisions.
[0005] The streams used in adaptive bit rate streaming are typically segmented, which can include splitting the stream into short, equal-duration segments within each alternative stream. These segments can be packaged into container files formatted according to the requirements of standards such as MPEG DASH or HLS. These segments can then be published to an HTTP server for distribution.
[0006] Recently, higher resolution video content has become increasingly popular for viewing. "4K" content and televisions are becoming more prevalent in the consumer market. A 4K TV has four times the number of pixels of a standard 1080p TV. Specifically, a 4K TV has a resolution of 3840 x 2160, while a 1080p TV has a resolution of 1920 x 1080.
[0007] A Content Delivery Network (CDN) is a network of proxy servers deployed in different physical data centers around the world. CDNs can be used to provide higher performance and uptime for content delivery. This improved performance is achieved by having multiple servers with identical copies of the content globally. When a user attempts to access content, a CDN that is physically closer, or at least has a shorter digital route, can deliver the content faster than a regular server that is farther away. This is ideal in static streaming scenarios, where the content remains unchanged during streaming. However, in live streaming scenarios, latency must be considered, ideally, as the content is first encoded and then distributed to the CDN network. Furthermore, having multiple copies of the same content reduces the likelihood that the content will be unavailable if one server goes offline or experiences high traffic—which could otherwise impair its ability to deliver content.
[0008] Content delivery networks are operated by many companies, including Akamai Technologies in Cambridge, MA, and Amazon.com in Seattle, WA. Any company looking to accelerate and increase the uptime of its web products can hire a CDN service. Furthermore, companies can leverage multiple CDNs to further increase their revenue. Summary of the Invention
[0009] Systems and methods for adaptive switching between multiple content delivery networks during adaptive bit rate streaming. In one embodiment, the adaptive content delivery network switching device includes a processor, a network interface, and memory connected to the processor, wherein the memory contains a content delivery network switching application, and the content delivery network switching application instructs the processor to receive content from a first content delivery network, determine a minimum performance threshold based on playback variables from the received content, and receive new content from a second content delivery network if the minimum performance threshold is not met.
[0010] In another embodiment, the minimum performance threshold includes satisfying a minimum buffer threshold.
[0011] In another embodiment, the buffer threshold is at least six seconds.
[0012] In yet another embodiment, the minimum performance threshold includes satisfying a minimum playback bit rate threshold.
[0013] In yet another embodiment, if an HTTP 404 error is detected, then the minimum performance threshold is not met.
[0014] In yet another embodiment, if a Hypertext Transfer Protocol (HTTP) error is detected, then the minimum performance threshold is not met.
[0015] In yet another embodiment, the received new content is at the same quality level.
[0016] In another embodiment, the content delivery network switching application also instructs the processor to create a record of any content delivery network that encounters a Hypertext Transfer Protocol (HTTP) error.
[0017] In another embodiment, the content delivery network switching application also instructs the processor to avoid receiving content from a second content delivery network that is among any content delivery networks in the Hypertext Transfer Protocol (HTTP) error log.
[0018] In another additional embodiment, the memory also includes a media playback application that instructs the processor to play back content.
[0019] In another additional embodiment, a method for adaptive content delivery network switching includes receiving content from a first content delivery network, determining a minimum performance threshold based on playback variables from the received content, and receiving new content from a second content delivery network if the minimum performance threshold is not met. Attached Figure Description
[0020] Figure 1 This is a network diagram of an adaptive CDN switching system according to an embodiment of the present invention.
[0021] Figure 2 A playback device according to an embodiment of the present invention is illustrated conceptually.
[0022] Figure 3 This is a flowchart illustrating a process for adaptive CDN switching according to an embodiment of the present invention.
[0023] Figure 4 This is a flowchart illustrating a process according to an embodiment of the present invention for implementing an ideal video streaming level used in adaptive CDN switching.
[0024] Figure 5 This is a flowchart illustrating a process for handling a rebuffering problem according to an embodiment of the present invention.
[0025] Figure 6 This is a flowchart illustrating the process of achieving optimal video quality across multiple CDNs according to an embodiment of the present invention.
[0026] Figure 7This is a flowchart illustrating the processing of HTTP 404 errors across multiple CDNs according to an embodiment of the present invention.
[0027] Figure 8 This is a flowchart illustrating the processing of HTTP errors across multiple CDNs according to an embodiment of the present invention. Detailed Implementation
[0028] Turning now to the accompanying drawings, systems and methods according to various embodiments of the invention are illustrated for performing adaptive bit-rate streaming involving adaptive switching between multiple content delivery networks. In several embodiments, multiple pieces of content can be streamed over multiple content delivery networks. Traditionally, once a CDN provider is selected to stream content, only that CDN provider is used during the streaming of that content on a particular playback device. Adaptive CDN switching systems according to many embodiments of the invention utilize playback devices configured to switch between multiple CDN providers during a streaming session. In several embodiments, the goal of the adaptive CDN switching system is to increase the overall quality level of content received by the playback device and / or avoid service interruptions. In some embodiments, the adaptive CDN switching system can operate in a manner that optimally utilizes the available bandwidth of all playback devices, thereby allowing an increase in the number of playback devices on the system or providing a higher quality streaming experience for those playback devices already on the system.
[0029] Many current streaming systems employ adaptive bitrate streaming. Adaptive bitrate streaming decisions are typically based on the relationship between the currently available bandwidth (i.e., the network capacity at the playback device) and the maximum bitrate used in content encoding. In addition to the currently available bandwidth and the maximum bitrate used in content encoding, playback devices used in adaptive CDN switching systems according to many embodiments of the present invention also utilize information about the media content to generate stream switching decisions.
[0030] While much of the discussion below pertains to systems and methods for adaptive switching between multiple content delivery networks during video content streaming, similar techniques can be used to perform adaptive CDN switching on a variety of data, including programs, audio, web pages, and / or interactive content. Therefore, adaptive CDN switching systems should not be considered limited to performing adaptive CDN switching only for video content. Systems and methods for performing adaptive CDN switching of content according to various embodiments of the present invention are further discussed below.
[0031] Adaptive CDN switching system
[0032] exist Figure 1The figure illustrates an adaptive CDN switching system according to an embodiment of the present invention. The adaptive CDN switching system 100 begins with content 101 to be made available for streaming. A codec 105 processes the content into an alternative stream and delivers the processed content to a first content delivery network server 110 connected to a network 140. A second content delivery network server 120 and a third content delivery network server 130 may also be connected to the network 140 and receive alternative streams from the codec 105. Furthermore, the system includes various playback devices that can communicate with various content delivery networks via the network. These playback devices include (but are not limited to) personal computers 180, stand-alone playback devices 170, mobile phones 190, and personal computing devices 160, some of which may be connected to the network 140 via a wireless access point 150.
[0033] The adaptive CDN switching system 100 includes a code converter 105 that receives content 101 for processing into an alternative stream. In some embodiments, for real-time streaming scenarios, this processing can be done on the fly, requiring the transcoding of short content segments and delivery to the CDN network for immediate distribution. The adaptive CDN switching system 100 also includes a first CDN server 110 configured to deliver content. In many cases, media content (such as, but not limited to, video) is encoded at different maximum bit rates and segmented into smaller parts. In some embodiments, segments are stored in a single file accessible via byte-range requests. In other embodiments, each content segment is stored in a separate file. In several embodiments, content segments are conceptual and are simply blocks of content within a content stream. In the illustrated embodiment, the first CDN server is an HTTP server. In other embodiments, the first CDN server can be any processing device with sufficient resources to perform processing and delivery of source media (including, but not limited to, video, audio, quality analysis, and / or subtitles). Various playback devices can request segments of content from the first CDN server based on a manifest via a network 140, such as the Internet.
[0034] In many embodiments, the adaptive CDN switching system 100 includes a second CDN server 120 and a third CDN server 130 configured similarly to the first CDN server 110. In several embodiments, the first, second, and third CDN servers are operated by different companies. In some embodiments, the first CDN server 110 is different from and / or may be located in different data centers than the second and third CDN servers 130. As can be readily appreciated, the specific location and distribution of CDN servers depend heavily on the requirements of a given application.
[0035] Playback devices can decode and present content for viewing. As will be readily appreciated, some devices can implement playback client applications to stream content. In several embodiments, the playback device streams content via network 140. In many embodiments, the playback device requests segments of content from a first CDN server 110 defined in a manifest or other URL. In many embodiments, analytical data about the system can be stored for future use. For example, adaptive CDN switching analytics can be used to create any number of switching recommendations, buffering decisions, and / or source content preprocessing tasks. In many embodiments, the adaptive CDN switching system accumulates data about content segments selected for playback and can reposition and / or rebalance content segments to provide content more likely to achieve the desired quality given observed network bandwidth. As will be readily appreciated, the use of data collected by the CDN server or adaptive CDN switching player is logically limited only to the requirements of a given application. In the illustrated embodiments, the playback device is represented by a specific device, but may also include (but is not limited to) consumer electronics, DVD players, Blu-ray players, televisions, video game consoles, tablets, and other devices capable of connecting to the server and playing back content.
[0036] Although the above reference Figure 1 Various adaptive CDN switching systems have been described, but the specific components used within an adaptive CDN switching system and the method of selecting a CDN for streaming based on achieving a target quality of life or user experience given network bandwidth and / or processing resources depend heavily on the requirements of the specific application. Adaptive CDN switching and playback devices that can be used in adaptive CDN switching systems according to various embodiments of the present invention are further discussed below.
[0037] Adaptive CDN switching playback device
[0038] Many embodiments of the present invention utilize CDN servers to deliver content segments for streaming content under different playback conditions. Such systems rely on playback devices that simply request content indicated in a quality-based list or URL based on measured playback conditions. However, in several embodiments, the playback device evaluates local playback conditions and searches for alternative CDN providers from which segments can be downloaded. These players then utilize locally stored data about playback and bandwidth conditions to determine the CDN from which subsequent content segments will be requested. These CDN switching decisions can be determined not only by requesting segments that achieve a specific rate of access, but also by formatting to improve the overall performance of the network, thereby allowing more users to access content and / or increasing the selected quality of the streamed content.
[0039] exist Figure 2The illustration depicts a playback device 200 that can be used to perform adaptive CDN switching of content according to an embodiment of the present invention. Playback device 200 typically includes a processor 210, a graphics subsystem 220, an I / O device 230, a mass storage device 240, a network interface 250, an interconnect 260, and a memory subsystem 270. The memory subsystem may include an operating system 271, a user interface 272, and a playback module 280. Many embodiments of the present invention include playback device 200 having playback module 280, which further includes a CDN switching optimization application 281, a video level optimization application 282, and a content streaming application 283. Some embodiments of the present invention may have playback device 200 that receives content via an interface to a communication network, including (but not limited to) the Internet. Furthermore, other embodiments of the present invention may include a display device 202 connected to playback device 200. Still other embodiments of the present invention may include user I / O 201 that interfaces with playback device 200.
[0040] Although the above reference Figure 2 Various playback device systems have been described, but other playback devices can be used in combination with any of the various hardware types that enable the downloading and playback of content segments across multiple CDNs based on any of the various different processes used for selecting content segments across multiple CDNs, depending on the requirements of a specific application according to various embodiments of the invention. For example, in some embodiments, a home gateway or other edge network device may select the content delivery network for streaming based on each client's capabilities, characteristics, local bandwidth, and requirements. The following explores processes that can be used by playback devices to provide adaptive CDN switching for content according to various embodiments of the invention.
[0041] Adaptive CDN switching processing
[0042] At a high level, the process for performing adaptive CDN switching involves connecting to a first CDN provider for streaming and replaying content, evaluating local playback conditions, determining the desired playback level, checking the conditions required to explore switching to another CDN provider, and performing the search if the conditions are met. If an alternative CDN provider is found that can deliver the necessary content with better performance, then the continued streaming can be influenced by the alternative CDN replacing the first CDN. In many embodiments, the conditions required to initiate an alternative CDN search may include, but are not limited to, the bandwidth of the first CDN, the time spent streaming at the desired playback level, load balancing issues, usage frequency, and / or rebuffering conditions. Figure 3 The diagram illustrates a process for performing adaptive CDN switching according to an embodiment of the present invention.
[0043] Processing 300 may include determining (302) a default CDN from which (304) the streaming content begins. In many embodiments, the default CDN may be provided as a first URL in a manifest sent by the server, or may be explicitly signaled to the best CDN by the server hosting the manifest. During streaming, the determination (306) of playback variables may occur. These playback variables may include, but are not limited to, playback position, buffer duration, and / or bit rate estimates. Using the playback variables, the player may determine (308) the desired playback level of the streaming content. In some embodiments, the playback level may be determined by the current buffer duration and the available bit rate estimate. During playback, adaptive CDN switching: The player may evaluate (310) switching conditions that may require searching for alternative CDN providers. When conditions are sufficient, the player may switch (312) CDN providers to improve performance.
[0044] Although the above reference Figure 3 Specific processes for performing adaptive CDN switching have been described, but any of the various processes for performing adaptive CDN switching may be utilized depending on the requirements of a specific application according to various embodiments of the invention. For example, many embodiments of the invention include client-driven selection of CDN providers, which may include, but is not limited to, the selection of premium CDNs for clients paying for increased service levels. The following further discusses how bitrate switching for desired playback is performed in an adaptive CDN switching system according to several embodiments of the invention.
[0045] Achieve the desired playback bit rate level processing
[0046] Video-level performance applications can be used to evaluate and adjust the video bitrate level of streaming content during playback. As conditions in the playback environment change, decisions regarding the quality or bitrate of content being streamed may need to be adjusted.
[0047] Figure 4The diagram illustrates a process for evaluating the performance of streaming content according to an embodiment of the present invention. Process 400 may begin by downloading (402) at least one content segment from a CDN provider. The downloaded content may be loaded into a buffer for playback. The duration of this buffer may be determined (406). The previously downloaded content may be evaluated for the generation (406) of a bitrate estimate. For example, in several embodiments, the bitrate estimate may be obtained based on the first four seconds of the downloaded content. Process 400 may then determine (408) the current video level. In many embodiments, this current video level may be determined from local playback conditions, including but not limited to metadata present in the currently streaming content segment, buffer duration, and the current bitrate estimate. Process 400 may also determine (410) an efficient video level based on all available data. In many embodiments, this data may include, but is not limited to, the current bitrate estimate. In some embodiments, the determination of the efficient video level (410) may result in (but is not limited to) seeking a higher bitrate for the streaming content for better quality, or seeking a lower bitrate stream to avoid depleting buffer material that could cause playback interruption. The comparison (412) can occur between the current video level and a possible efficient video level. This comparison (412) can be implemented in various ways, including but not limited to evaluating the bit rate observed in the current bit rate estimate and the bit rate estimates of other efficient video levels. Based on this comparison (412), the video level performance application can switch (414) to a lower bit rate content stream, switch (416) to a higher bit rate content stream, or jump directly to evaluating (420) other possible playback problems. In many embodiments, it may be desirable to switch (414) to a lower bit rate content stream to avoid the current buffer running out (underflow) before downloading the next content segment. In several embodiments, switching (416) to a higher bit rate content stream is only permitted if content of an arbitrary duration (e.g., six seconds of content) can be downloaded before the buffer runs out to ensure a conservative approach to switching and avoiding rebuffering events. Processing 400 can also evaluate (418) any other types of playback problems that may occur when achieving the desired bit rate level. These playback issues may include, but are not limited to, rebuffering problems, streaming content that is not played at an optimized level, HTTP 404 errors, or other HTTP errors that may cause an interrupted playback experience. Processing 400 can then evaluate (420) the content to determine if the downloaded segment is the last segment in the stream. If not, then in many embodiments, processing 400 then restarts and downloads (402) the next segment from the CDN.
[0048] Although the above reference Figure 4Specific processing related to video-level performance in an adaptive CDN switching system has been described, but any of the various processing methods can be utilized to improve video-level performance for adaptive CDN switching according to various embodiments of the invention. Examples of processing methods for handling playback problems such as buffering that can be used during adaptive CDN switching according to various embodiments of the invention are further discussed below.
[0049] Handling buffering issues in adaptive CDN switching systems
[0050] One of the problems that can occur when streaming content is playback interruption. Playback interruptions can be caused by a number of factors, including exhaustion of the playback buffer. To avoid this, in many embodiments, the video level can be switched to a lower level to allow more content to be downloaded on the available bandwidth. In further embodiments, the amount of content in the buffer is routinely checked against the available bandwidth and bitrate estimates to better determine whether a playback interruption is likely to occur. In cases where a playback error may seem imminent, many embodiments of the invention can search for alternative CDN providers to attempt to find the necessary content segments. In several embodiments, the video bitrate level sought at the alternative CDN provider is equal to the current video bitrate level to ensure a smooth transition between segments without the user noticing the switch.
[0051] Figure 5The diagram illustrates a process for handling buffering issues in an adaptive CDN switching system according to an embodiment of the invention. Process 500 determines (502) whether appropriate rebuffering conditions have been met. In some embodiments, these rebuffering conditions may include, but are not limited to, determining that the current video bitrate level is at the lowest bitrate level (verifying that the content required to avoid rebuffering issues at the current CDN provider is not yet available), and that the playback duration of the buffered content itself is less than a preset threshold. In a further embodiment, the threshold for the buffered content required to avoid rebuffering issues is set to a static threshold (e.g., six seconds). In other embodiments, a search for alternative CDN providers may be initiated during an adaptive bitrate streaming session, depending on the requirements of a given application, using any of a variety of alternative thresholds and / or requirements associated with the state of the playback device. When met, a search for alternative CDN providers may occur (504). If available, content is then downloaded from the alternative CDN provider (506). In several embodiments, only segments different from the currently downloaded segment are searched at alternative CDNs to allow the buffer to be filled with valid data, thereby increasing the chance of avoiding buffer underflow. A bandwidth measurement (508) between the current and alternative CDN providers can occur. In several embodiments, the bandwidth detector can download a sufficient amount of data to provide an accurate measurement. In some embodiments, the required amount of data may be two seconds of video data. As can be readily appreciated, the amount of data may correspond to any duration of content suitable for the requirements of a given application. Process 500 can then determine (510) the CDN provider with the highest bandwidth available for downloading the remaining content segments. The adaptive CDN switching system can then switch (512) the CDN provider to increase the buffer duration as needed.
[0052] Although the above reference Figure 5 Specific processing related to handling buffer issues in an adaptive CDN switching system has been described; however, according to various embodiments of the invention, any of the various processing methods can be used to handle buffer issues to avoid playback errors. Examples of processing for handling playback issues according to various embodiments of the invention are further discussed below, such as enhancing the content bitrate level that can be used during adaptive CDN switching.
[0053] Enhance content bitrate level in adaptive CDN switching system
[0054] In typical streaming applications, only a single CDN is considered when determining and selecting content segments to stream. However, this approach does not account for the potential availability of higher-quality or faster-access content on other CDN provider systems. Adaptive CDN switching systems can be used to improve the quality of streamed content by accessing content segments in alternative CDN systems that offer users higher bandwidth.
[0055] Figure 6 The diagram illustrates a process for increasing the content bitrate level for an adaptive CDN switching system according to an embodiment of the invention. Process 600 may determine (602) the highest bitrate level of available content is available for download. Certain conditions may be evaluated (604) to determine whether an alternative CDN search should occur. In some embodiments of the invention, these conditions may include, but are not limited to, the necessary duration since the highest bitrate stream occurred, and having a sufficient amount of buffer space. If the conditions are met, then a search for an alternative CDN provider may occur (606). Content fragments can then be downloaded (608) from the alternative CDN provider. In several embodiments, the bitrate level of the downloaded content is the same as the current bitrate level of the content downloaded from the current CDN to avoid a significant switch between downloading content from the current CDN and downloading content from the alternative CDN. Process 600 may then evaluate (610) the instantaneous bandwidth of the content downloaded from the alternative CDN provider for the bandwidth provided by the current CDN provider. If necessary, a switch to an alternative CDN provider can occur (612) to enable the download of content encoded at a higher bit rate level, which can translate to content with higher perceived quality when downloaded and played back by a playback device.
[0056] Although the above reference Figure 6 Specific processing related to enhancing bitrate download performance in an adaptive CDN switching system has been described. However, according to various embodiments of the invention, any of these processing methods can be utilized to increase the bitrate level to improve playback quality. Examples of processing for handling playback problems such as HTTP 404 errors, which can be used during adaptive CDN switching, are further discussed below according to various embodiments of the invention.
[0057] Handling HTTP 404 errors in an adaptive CDN switching system
[0058] A Hypertext Transfer Protocol (HTTP) 404 error occurs when a requested piece of data is unavailable. When downloading multiple segments of streaming content, numerous download requests are sent via HTTP. HTTP 404 errors are significant because they can directly lead to playback interruption. When an HTTP 404 error is encountered, the request for the content can be resent to verify the error. Furthermore, requests can be sent for different bitrates of the same content segment or to different servers on the same content delivery network. However, if the requested content is simply unavailable on the CDN, an HTTP 404 error cannot be avoided. In many implementations, adaptive CDN switching systems can handle HTTP 404 errors by searching for the same content on alternative CDN providers, thus allowing uninterrupted playback to continue.
[0059] exist Figure 7 The diagram illustrates a process for handling HTTP 404 errors in an adaptive CDN switching system according to an embodiment of the present invention. When the adaptive CDN switching system receives (702) an HTTP 404 error, an evaluation (704) is performed to determine whether a sufficient amount of buffer exists compared to a preset threshold. In many embodiments, this preset threshold may be the minimum required buffer time and may be set to a static value (e.g., six seconds) or a dynamic value that varies based on playback conditions (including, but not limited to, the state of the playback device and / or the bitrate level of the current streaming content). If the buffer is sufficient, then process 700 may then retry (706) downloading the content again at the same bitrate video level. If the buffer is insufficient, then process 700 may attempt (708) downloading content encoded at a lower bitrate level. After either retrying (706) or attempting (708), an evaluation (710) is performed to determine whether the download was successful. If the download is available from the current CDN (712), then a CDN switch is not required. However, if the download (712) is not available from any available server on the CDN, then alternative CDN providers can be searched (714). Processing 700 can then download (716) content from the alternative CDN to avoid playback interruption. In several embodiments, the download from the alternative CDN provider is done at the lowest bitrate level to ensure recovery from HTTP 404 errors as quickly as possible. An evaluation is performed to determine if the download (718) is available from any other CDN. If no CDN can provide the necessary content, then playback moves (720) to the next segment. If the download (718) is available from multiple CDN sources, then processing 700 can select (722) a CDN provider with higher bandwidth. An optimal content bitrate level can then be selected (724) to maximize playback conditions.
[0060] Although the above reference Figure 7 Specific handling procedures related to handling HTTP 404 errors in an adaptive CDN failover system have been described. However, according to various embodiments of the invention, any of these procedures can be used to handle unavailable content to reduce playback interruptions. Examples of handling playback issues involving other HTTP errors according to various embodiments of the invention are further discussed below, which can be used during adaptive CDN failover.
[0061] Handling other HTTP errors in an adaptive CDN switching system
[0062] When requesting data via HTTP, other HTTP errors may occur. Examples of these types of errors include, but are not limited to, server disconnection and server unavailability errors. HTTP errors of this nature often cause playback interruptions on traditional systems. However, on an adaptive CDN switching system, unavailable content can be found on another CDN system, thus allowing uninterrupted playback.
[0063] exist Figure 8 The diagram illustrates a process for handling HTTP errors used in an adaptive CDN switching system according to an embodiment of the present invention. When the adaptive CDN switching system receives (802) an HTTP error, it evaluates (804) a list of known CDN providers to determine if any alternative CDN providers are still available for downloading the necessary content. In some embodiments, this step may include removing the CDN provider experiencing the HTTP error. A search may then be performed for any alternative CDN providers not experiencing the HTTP error (806). Process 800 may then evaluate (808) whether alternative CDN providers are available for downloading content. If an alternative CDN provider is unavailable, that CDN may be removed (810) from the list of available content providers, and the process re-evaluates (804) the list of available CDNs. If a CDN is available, process 800 may download (812) content from the alternative CDN provider. A successful download may then be evaluated for their instantaneous bandwidth speed (814). If multiple CDNs are available, process 800 may select (816) the CDN provider with the highest available bandwidth. Once selected, process 800 can determine (818) a higher bit rate content level. In several embodiments, this bit rate level can be determined by the amount of playback buffer duration.
[0064] In many embodiments, the adaptive CDN switching system playback device can maintain a record of known CDNs and their historical status, including but not limited to the amount of time a requested download might take and whether a known CDN is reachable. In this way, due to the time-consuming nature of determining timeouts and / or download errors, the adaptive switching system can avoid selecting alternative CDNs that are known to be unreachable or unreliable. In several embodiments, these stored records are periodically purged. In some embodiments, the stored records of known CDNs stored in the playback device can be sent to a server for further processing. In a further embodiment of the invention, the URL request may include information about the geographic location and capabilities of the adaptive CDN switching system playback device. In a further embodiment, the playback device may receive a list of known CDNs from a central server. In still other embodiments, the server may evaluate the status of the CDN system based on stored records sent from one or more adaptive CDN switching system playback devices. These evaluations may include, but are not limited to, geographic regions and the capabilities of the playback devices. In still other embodiments, the server may filter the CDNs provided in the list based on evaluations made from stored records sent from the adaptive CDN switching system playback device. Those skilled in the art will recognize that any of the various processes for generating top-level index files based on geographic location can be used in an adaptive CDN switching system, depending on the requirements of a specific application according to embodiments of the present invention, including but not limited to the automatic generation of top-level index files disclosed in U.S. Patent No. 8,787,570. The disclosure of U.S. Patent No. 8,787,570, which relates to the dynamic generation of top-level index files, is incorporated herein by reference in its entirety.
[0065] Although the above reference Figure 8 Specific processing related to handling HTTP errors in an adaptive CDN switching system has been described. However, according to various embodiments of the invention, any of these processing methods can be used to handle network outages to reduce playback interruptions. Examples of processing methods for handling playback issues involving other HTTP errors, according to various embodiments of the invention, are further discussed below and can be used during adaptive CDN switching.
[0066] While the invention has been described in certain specific aspects, many other modifications and variations will be apparent to those skilled in the art. Therefore, it should be understood that the invention can be practiced in ways different from those specifically described (including various changes in implementation) without departing from its scope and spirit. Consequently, embodiments of the invention should be considered illustrative rather than restrictive in all respects.
Claims
1. A playback device, comprising: processor; Network interface; as well as Memory connected to the processor, wherein the memory contains media playback applications; The media playback application indicates the processor: Receive the list from the server; Identify the first content delivery network from the received list; Based on the list, request at least one content fragment from the first content delivery network; Download the at least one content fragment from the first content delivery network into the buffer; The current video level is determined based on local playback conditions, wherein the local playback conditions include metadata present in at least one downloaded content segment, buffer duration, and a current bitrate estimate generated by evaluating the at least one downloaded content segment; A high-efficiency video level is determined based on the current bit rate estimate, wherein the high-efficiency video level indicates a bit rate that is higher or lower than the current bit rate; Compare the current video level with the high-efficiency video level; Based on the comparison results between the current video level and the efficient video level, determine whether a switch to an alternative content delivery network should occur; In response to determining that a switch to an alternative content delivery network should occur, download content from the alternative content delivery network; After verifying that one or more buffer conditions have been met, the instantaneous bandwidth of content downloaded from the alternative content delivery network is evaluated for the content downloaded from the first content delivery network; and Based on the assessment results, content downloads will be switched to alternative content delivery networks. The media playback application instructs the processor to play back content downloaded from the first content delivery network and content downloaded from the alternative content delivery network.
2. The playback device of claim 1, wherein the media playback application further instructs the processor to receive new content from an alternative content delivery network when a Hypertext Transfer Protocol (HTTP) 404 error is detected.
3. The playback device of claim 1, wherein the media playback application further instructs the processor to receive new content from an alternative content delivery network when a Hypertext Transfer Protocol (HTTP) error is detected.
4. The playback device of claim 1, wherein the content downloaded from the alternative content delivery network is at the same quality level as the content downloaded from the first content delivery network.
5. The playback device of claim 1, wherein the media playback application further instructs the processor to create a record of any content delivery network encountering a Hypertext Transfer Protocol (HTTP) error.
6. The playback device of claim 1, wherein the media playback application further instructs the processor to avoid receiving content from a second content delivery network that is in a Hypertext Transfer Protocol (HTTP) error log.
7. The playback device of claim 1, wherein determining whether a switch to an alternative content delivery network should occur further includes determining a predetermined duration since the highest bit rate stream occurred, and determining whether the buffer has a predetermined amount of download content.
8. The playback device of claim 1, wherein selecting an alternative content delivery network comprises selecting from a list of alternative content delivery networks determined to have the highest available bandwidth.
9. The playback device of claim 1, wherein the list includes a URL to an alternative content delivery network.
10. A method for playing back media using a playback device, comprising: Use the media playback application on the playback device to perform this: Receive the list from the server; Identify the first content delivery network from the received list; Based on the list, request at least one content fragment from the first content delivery network; The at least one content fragment is received from the first content delivery network and downloaded into the buffer; The current video level is determined based on local playback conditions, wherein the local playback conditions include metadata present in at least one downloaded content segment, buffer duration, and a current bitrate estimate generated by evaluating the at least one downloaded content segment; A high-efficiency video level is determined based on the current bit rate estimate, wherein the high-efficiency video level indicates a bit rate that is higher or lower than the current bit rate; Compare the current video level with the high-efficiency video level; Based on the comparison results between the current video level and the efficient video level, determine whether a switch to an alternative content delivery network should occur; In response to determining that a switch to an alternative content delivery network should occur, download content from the alternative content delivery network; After verifying that one or more buffer conditions have been met, the instantaneous bandwidth of content downloaded from an alternative content delivery network is evaluated for the bandwidth of content received from the first content delivery network; and Based on the assessment results, content downloads will be switched to alternative content delivery networks. The media playback application instructs the playback device to play back content downloaded from the first content delivery network and content downloaded from the alternative content network.
11. The method of claim 10, further comprising receiving new content from an alternative content delivery network when a Hypertext Transfer Protocol (HTTP) 404 error is detected.
12. The method of claim 10, wherein the content downloaded from the alternative content delivery network is at the same quality level as the content downloaded from the first content delivery network.
13. The method of claim 10, further comprising using the media playback application to create a record of any content delivery network encountering a Hypertext Transfer Protocol (HTTP) error.
14. The method of claim 10, further comprising using the media playback application to avoid receiving content from a second content delivery network in a Hypertext Transfer Protocol (HTTP) error log.
15. The method of claim 10, further comprising receiving new content from an alternative content delivery network when a Hypertext Transfer Protocol (HTTP) error is detected.
16. The method of claim 10, wherein determining whether a switch to an alternative content delivery network should occur further includes determining a predetermined duration since the highest bit rate streaming occurred, and determining whether the buffer has a predetermined amount of download content.
17. The method of claim 10, wherein selecting an alternative content delivery network comprises selecting from a list of alternative content delivery networks determined to have the highest available bandwidth.
18. The method of claim 10, wherein the list includes URLs to alternative content delivery networks.