BANDWIDTH OPTIMIZATION THROUGH AGGREGATED MULTI-CASTING OF MEDIA STREAMS

Systems, devices, and automated processes optimize bandwidth utilization in wireless network systems such as satellite systems, 5G and other cellular networks, and wireless local area networks with multiple distribution nodes. Redundant unicasts of media streams are replaced by multicasts that can be transmitted by a subset of the available distribution nodes. This allows customer devices to receive redundant content over shared bandwidth that is available to the particular customer devices requiring access to the redundant content. Subsets of distribution nodes can be selected for transmitting multi-casts, thereby further reducing the amount of system bandwidth needed to provide high-quality media streams to multiple customer devices operating within the wireless network system.

TECHNICAL FIELD

The following generally relates to wireless data networks, such as satellite networks, 5G mobile networks and wireless local area networks (WLANs). More particularly, the following relates to systems, devices and automated processes to reduce bandwidth utilization of shared network links.

BACKGROUND

Wireless networks that transport digital data are becoming increasingly deployed for personal and commercial use. Satellite networks, for example, are becoming more sophisticated, more capable and more widely used for personal and commercial purposes. At the same time, fifth generation (“5G”) broadband cellular networks are being widely deployed around the world. These 5G networks use emerging technologies to support data and voice communications with millions, if not billions, of mobile phones, computers and other devices. Even further, wireless local area networks (WLANs) such as Wi-Fi networks are becoming more commonplace in the home and other settings. Each of these new wireless technologies is capable of supplying substantial amounts of bandwidth even as customers become increasingly mobile, thereby supporting an ever-increasing number of new applications and uses.

Even as network access improves, challenges nevertheless remain in allocating limited bandwidth amongst the many different customers and customer applications. Media streaming, for example, can quickly consume substantial amounts of bandwidth on any network. Various attempts have been made to mitigate the customer experience in limited bandwidth situations. Modern adaptive streaming techniques, for example, can make very efficient use of bandwidth available to a particular customer for a unicast stream. If multiple unicasts are being simultaneously provided over a common data channel (e.g., a shared satellite link, WLAN or 5G network slice), however, even very efficient unicasts can quickly overwhelm the shared bandwidth. This could ultimately lead to undesirable interruptions or delays. At the very least, when the shared bandwidth becomes constrained, adaptive unicast systems could undesirably degrade the quality of each unicast stream, thereby making the customer experience less optimal.

Substantial technical challenges therefore arise in managing the limited bandwidth within a satellite, cellular or WLAN networking system. A desire therefore exists to build systems, devices and automated processes that allow for intelligent routing of media programs and other bandwidth-intensive digital content within a wireless network that includes multiple distribution nodes. These and other features are described in increasing detail below.

BRIEF SUMMARY

According to various embodiments, bandwidth in a satellite, cellular, WLAN or other wireless communications system can be used more efficiently by replacing parallel unicast media streams with a single multicast stream that can be simultaneously received by all of the customer devices operating within broadcast range of a common distribution node. Popular media programs, for example, can be multicast on shared bandwidth representing a channel that is known to multiple customer devices. Rather than each customer device obtaining its own unicast of the same media program via its own bandwidth, the shared bandwidth of the common distribution node can simultaneously distribute the shared program to each of the devices that are interested in receiving the program.

The concepts described herein may be used in any wireless networking systems in which multiple transmission points are available to customer devices. Examples of such networking systems could include, without limitation, satellite internet systems, WLAN implementations having multiple routers or wireless access points, 5G or other cellular networks, and/or other networks as appropriate. In each of these settings, customer devices can “tune” to receive multi-cast channels available from one or more of the available distribution nodes, thereby further improving the efficiency of the system.

In one example embodiment, an automated process is performed by a distribution management system of a wireless networking system that supports communications with a plurality of customer devices via a plurality of distribution nodes. The automated process suitably comprises: identifying a plurality of shared media programs that are received by more than one of the customer devices; dedicating, for each of a plurality of shared media programs, a multi-cast channel on at least one of the distribution nodes to a multi-cast of the shared media program; obtaining, by the distribution management system for each of the plurality of shared media programs, segments of the shared media program for re-transmission on the multi-cast channel associated with the shared media program; and distributing, to each of the customer devices via the wireless networking system, a manifest describing the shared media programs and identifying the multi-cast channel and distribution node that is dedicated to the multi-cast of the media program to thereby permit each of the customer devices to obtain the segments of the shared media program from the multi-cast of the media program.

Other embodiments relate to a network distribution management system for a wireless networking system. The distribution management system suitably comprises a processor, a non-transitory data storage and an interface to support communications with a plurality of customer devices via a plurality of distribution nodes, wherein the non-transitory data storage comprises computer-executable instructions that, when executed by the processor, perform an automated process.

These and other example embodiments are described in increasing detail below.

DETAILED DESCRIPTION

The following detailed description is intended to provide several examples that will illustrate the broader concepts that are set forth herein, but it is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background or the following detailed description.

According to various embodiments, bandwidth within a satellite, cellular, WLAN or other network system is conserved by replacing unicast media streams sent to multiple customer devices with a shared multicast that can be simultaneously received by each of the customer devices operating within the broadcast range of the multicast. Bandwidth can be further optimized by multicasting via only one (or a few) of the multiple distribution nodes operating within range of the various customer devices requesting the multicast. Customer devices within the broadcast range of the selected distribution node are able to tune in to the multicast and receive the desired media stream from shared bandwidth, thereby reducing the need for a separate unicast that could otherwise consume substantial amounts of bandwidth within the distribution system. US Patent Publication 2023/0128962, incorporated herein by reference, describes several systems and processes to efficiently allocate shared bandwidth on a wireless link, although other embodiments may use other systems and techniques as appropriate.

The multicasts supplied within the wireless network system can be dynamically updated in real-time (or near real-time, considering some delays inherent in data processing and transmission) as conditions change. Different media programs, for example, may be added or removed from a multicast as demand for the programs changes over time. Similarly, different satellites, access points or other distribution nodes can be tasked with transmitting the appropriate multicasts, with nodes updated over time based upon changes in demand, node position and/or other conditions as warranted.

Shared programs can be recognized in any number of different ways. Some embodiments could recognize the shared programs by monitoring and comparing requests for media programs as the requests transit the distribution system. In other embodiments, customer and/or distribution nodes could share state tables or other information that advertises channels where program segments can be located. Timing issues in the shared stream can be addressed through caching by the distribution system and/or the customer device, and additional error correction can be added to the multi-cast if desired.

Bandwidth can be further optimized by selecting only a subset of the distribution nodes to transmit the multi-cast. If a satellite ground station simultaneously communicates with several different overhead satellites, for example, different channels associated with multicasts of different programs can be efficiently assigned across the available satellites to avoid duplication, thereby further improving the allocation of bandwidth in the system. Similarly, terrestrial networks that place nodes in simultaneous contact with multiple routers, gateways or other access points can allocate multicast channels across the different data links to reduce duplication of data transmissions in the overall system.

The general concepts set forth herein could be implemented across any number of different network environments. In some implementations, a satellite internet system that uses a cluster of satellites orbiting the earth could identify parallel (or near-parallel, e.g., accepting some differences in time) unicasts of media streams or the like, and replace those parallel streams with a single multi-cast transmitted on a satellite that is within range of the various customer devices interested in receiving the multicast program. As satellites move out of range of the customer devices initially receiving the multicast, other satellites coming into range can be tasked with continuing delivery of the multicast so that the stream is not interrupted. One example of a satellite network system that uses a large cluster of satellites in polar orbit is the STARLINK satellite network operated by the SPACEX Corporation of Hawthorne, California. Other examples of satellite networks include the HUGHES JUPITER, HX, HT and HUGHESNET services operated by Hughes Network Systems of Germantown, Maryland. Any number of equivalent embodiments could be implemented using other satellite network systems as desired.

In other implementations, a wireless local area network (WLAN) system has multiple routers, gateways or other access points each providing network access to various customer nodes. Multicasts can be initiated on certain access points to reduce the number of parallel unicast streams that would otherwise by handled by the system. Access points may use, for example, any of the various IEEE 802.11 (“Wi-Fi”) standards promulgated and updated from time to time, or any other network protocols or standards as desired. Multi-point WLAN networks could be implemented across a home, office, campus, stadium, hotel, apartment complex, airport, train or bus station, and/or other environment as desired. Still other embodiments could be implemented within a 5G or other cellular network having multiple cellular access points, as appropriate. Again, any number of alternate but equivalent embodiments could be formulated using any terrestrial, cellular, satellite or other wireless networks, as desired.

FIG.1illustrates one example of a network distribution system100that includes any number of distribution nodes120A-C that communicate with any number of dispersed customer devices130A-C. Distribution of data can be controlled by a distribution control system110, as described more fully below.

In operation, each of the customer devices130A-C use distribution system100to obtain data, messages and other communications via services102on the Internet or another network105. Various services could include email, voice or text messaging, web browsing, media streaming and/or any other services as desired. Customer devices130A-C may obtain streams of media programs from a media streaming service102, for example, using conventional media streaming techniques and protocols. Other embodiments could equivalently process other types of data, including messaging, static or dynamic web content, file transfers, and/or the like.

As noted above, system100may be configured to replace parallel unicast streams delivered to different customer devices130A-C with a multicast that can be simultaneously received by multiple customer devices130A-C that are viewing the same media stream. InFIG.1, for example, customer devices130A and130B are both in communication with distribution node120B. If both devices130A and130B are viewing simultaneous media streams of the same program, the simultaneous multicasts could be replaced with a shared multicast provided by distribution node120B. Rather than each node obtaining its own unicast of a popular stream, then, customer devices130A-C could simply opt to receive the multicast, thereby reducing bandwidth consumption within system100.

Customer nodes130A-C are made aware of available multicasts in any manner. In one example, a distribution control system110executes an automated process115that directs different distribution nodes120A-C to allocate channels to certain multicasts as appropriate. A manifest or other table116may be created and maintained to track the various multicasts provided by nodes120A-C. Manifest116can be shared with the various customer devices130A-C on any regular or irregular time basis to permit each of the devices130A-C to locate and receive multicasts of desired programs. Other embodiments allow customer devices130A-C and/or distribution nodes120A-C to share tables of data indicating the locations of available media segments and/or multi-casts. These and other techniques are described in increasing detail below.

In some implementations, system100is a satellite communications system that uses geosynchronous, polar-orbiting or other satellites as distribution nodes120A-C to communicate with various customer devices130A-C that may be spread over a wide (or narrow) geographic area. The various satellites acting as distribution nodes120A-C may have overlapping service areas that change frequently with satellite orbit, thereby necessitating dynamic change in the multicast channels allocated to the various satellites. In this example, distribution control system110may be provided in a terrestrial (or space-based) data processing system that includes one or more processors111, as well as magnetic, optical and/or solid state non-transitory data storage112and appropriate input/output interfaces113as desired. The distribution control functions115could equivalently be distributed across space-based processing (e.g., on one or more satellite nodes120A-C) and/or implemented using cloud-based processing resources, if desired.

In other implementations, system100relates to a terrestrial distribution network such as a 5G or other cellular network, a WLAN implementation, and/or the like. Distribution nodes120A-C could therefore represent wireless gateways, routers or other access points that communicate with phones, tablets, personal computers and/or other devices130A-C operating in the WLAN environment. In still other equivalent embodiments, nodes120A-C represent cellular access points providing wireless communications to mobile phones or other cellular enabled devices130A-C as desired. Distribution nodes120A-C may therefore be implemented with any sort of router, gateway, access point or the like having conventional hardware such as a processor121, memory or other non-transitory data storage122and input/output interfaces123as desired. In each of these different settings, multi-cast channels can be allocated on one or more distribution nodes120A-C to provide transmissions of media streams or other content for simultaneous reception by multiple customer devices130A-C as desired.

Again, distribution control functions115could be provided by a distribution control system110executing on conventional computing hardware (including cloud-based hardware). Control functions115could equivalently be distributed across one or more distribution nodes120A-C, if desired. Generally speaking, control system110will identify popular media streams that are candidates for multicast distribution, will coordinate data acquisition of media segments or the like from content source102, and will direct one or more distribution nodes120A-C to allocate a multi-cast channel for distributing the segments of the media stream. Multi-cast channel information may be kept in a manifest, digest or other table116that is shared with the customer devices130A-C to assist in locating the various multicasts that may be available. Generally speaking, manifest116will include an identifier of the program, as well as identifiers of the nodes130A-C and channels where the multicast is being transmitted. Various embodiments may also include timing information relating to the start time of the media stream, the current time of the media stream (e.g., by MPEG presentation time stamp (PTS) or the like), or any other reference as desired. Distribution control system110may also have access to additional non-transitory data storage114that can be used to temporarily cache media segments or other data prior to transmission, if desired. Equivalent embodiments could additionally or alternatively rely on caching at distribution nodes120A-C and/or customer devices130A-C, as appropriate.

FIG.2illustrates examples of automated processes performed by content source102, distribution system110/120and customer device130to distribute multicasts of shared media programs. The various processes will typically be carried out by computing hardware that is programmed with software or firmware instructions stored in non-transitory data storage of the appropriate device. Again, the various functions and routines illustrated inFIG.2could be modified or implemented in any other way.

FIG.2illustrates an example process200to distribute multicasts of shared media content across multiple distribution nodes120A-C to multiple customer devices130A-C. In the example ofFIG.2, a user of customer device130appropriately selects a media program for viewing in any manner (function202). In various embodiments, the user may select the program using a program guide or other interface feature of a media player application, although other implementations may function in other ways. Customer device130transmits a request204for the selected program via communications system100; the request may be addressed to the content source102on network105and/or to the distribution system110/120as desired.

In the example ofFIG.2, distribution system110/120suitably monitors requests204received from the various customer devices130A-C for various programs. This monitoring could assist in identifying which programs are most popular within network100, and/or which devices130A-C would most benefit from a multicast. If multiple customer devices130are within range of a common distribution node120, for example, then that node120would make an excellent candidate to host the multicast, as opposed to a different node120that currently services fewer customer devices130that are interested in the particular program.

In conventional adaptive media streaming, distribution system110/120forwards the program request204to the content source102via network105(function228). The content source204may be a media service, content delivery network (CDN) and/or the like that provides segments of the requested program in response to client-generated requests, which are often formatted as conventional hypertext transport protocol (HTTP) requests. The content source102receives the request228and responsively forwards a digest209of the requested program that identifies uniform resource locators (URLs) or other addresses of the various segments making up the media stream. Digest209may also describe different bit rates or other quality parameters that may be available. Typically, the client device uses the address data in the digest209to identify and obtain segments of the media stream having an appropriate quality for the user's device while also maintaining playback without interruption due to network congestion, changes in bandwidth or other issues that may be encountered throughout the duration of the media stream. If the requested program is not available via a multicast (function210), then the distribution system110/120suitably forwards the digest209to the customer device130to permit client-driven unicast streaming as appropriate. Customer device130therefore requests segments of the unicast stream directly from the content source102using the addresses contained in digest209(function212), and responsively receives the requested segments (function213) from the content source in a unicast session with the content source102. US Patent Publication No. 2023/0128962 describes several techniques for adaptive media streaming that make use of client requests for different segments of the stream, although other embodiments could use other streaming techniques as desired.

Distribution system110/120may select programs for multicasting in any manner. In various embodiments, multicast programs are selected by an operator based upon expected popularity or other factors. In other embodiments, system110/120recognizes popular programs based upon the program requests204that are received from the various customer devices130and dynamically reacts by dedicating multicast channels on various nodes120for the more popular programs (function214). In the example ofFIG.1, the distribution system110/120places appropriate segment requests216to content source102using information from digest209and responsively receives segments217. Segments may be requested using URLs contained in digest209previously requested by one or more customer devices130, if desired. Alternatively, distribution system110/120can independently request and receive its own digest for the program. Received segments217can be uploaded to the appropriate distribution node(s)120for re-transmission on the allocated multicast channel (function220) as desired.

Quality of media segments requested by distribution system110/120could be configured in any manner. In various embodiments, the quality selected may be relatively high in comparison to the quality allowed for unicast streams, owing to the efficient usage of bandwidth within the broadcast/multicast structure. In some implementations, more than one multicast channel can be allocated on the same or different nodes120to accommodate different segment qualities. A mobile phone customer device130may use a different segment quality than a media player attached to a 5K digital television, for example. To that end, different multicast streams could be provided to accommodate different quality streams of the same program if enough demand for each different quality exists. Even if multiple multicasts of a stream are provided at different qualities, bandwidth is still conserved if each multicast prevents multiple unicasts of that stream at a particular quality that would otherwise be needed.

Multicast channels may be fashioned in any manner (function214). In the example illustrated inFIG.2, the distribution channels can be implemented using internet protocol (IP) multicasting based upon a dedicated address on a network interface of one or more distribution nodes120. A media player application or the like executing on customer device130can therefore “tune” to the multicast (function222) by attaching (e.g., with a socket structure of the like) to the appropriate multicast address and receiving the various packets that are transmitted by node120using that address.

Customer devices130receive, cache, stage/arrange and playback the various segments of the media stream in any manner (function224). In various embodiments, segments received via unicast and multicast delivery mechanisms could be combined as appropriate, thereby providing even more flexibility. If a viewer is watching a program at a playback point that is delayed behind the multicast, for example, a media player on customer device130could be configured to immediately tune to the multicast and to store the received segments for future playback while simultaneously using unicast mechanisms to retrieve segments up to the point that cached segments are available. Even if different customers are watching the same program at different playback points, then, the multicast may still be useful if it reduces (but does not quite eliminate) the amount of unicast traffic sent to the customer device130. Caching may be most effective if the cache is local to the playback device130since this will minimize data transmissions from distribution node120. Caching at distribution control system110and/or distribution node(s)120may be used to supplement or replace local caching, if desired.

Unicasts may also be used to prevent playback interruptions if a multicast becomes unavailable for any reason (e.g., a satellite providing the multicast moves out of broadcast range). Unicasts may also supplement a multicast stream in the event that one or more segments of the multicast are corrupted, since the customer device130could simply obtain replacements for the corrupt segments while continuing to view or cache the multicast remainder of the stream. Even though some unicast streams may persist over network100, the unicasts will be shorter lived, and will conserve bandwidth of the overall system over time.

Customer devices130may be configured in any manner. In various embodiments, a media player application or the like executing on the customer device130can be programmed to perform various functions and actions as described herein.FIG.3is a flowchart illustrating an example automated process300performed by the various customer devices130A-C operating within network distribution system100. In the example ofFIG.3, customer devices130A-C are able to combine unicast and multicast techniques to obtain a media stream of a desired program. The various functions and features shown inFIG.3may be combined with each other and/or supplemented in any manner to implement any number of alternate but equivalent embodiments.

As illustrated inFIG.3, customer device130A-C suitably receives manifest116of multicast programs in any manner (function302). Manifests116may be broadcast systemwide on a regular or irregular temporal basis, if desired; equivalently, manifests116could be sent on an as-needed basis (e.g., whenever the manifest is updated with new information). Manifests116could be fashioned so that all customer nodes130A-C in system100receive a complete manifest116. In other embodiments, the manifest116is tailored to a geographic region, a type of customer device and/or in any other manner so that customer devices130A-C receive a subset of the multicasts available in system100, recognizing that many of the multicasts may not be of interest to all devices130. Some multicasts may be transmitted by nodes120that are out of range of the customer device130, for example, or some of the multicasts may provide quality levels that are not of interest to that particular device130. Other factors (user demographics, type of device, system status, device status, etc.) could be considered as well in generating multicast manifests116for customer devices130A-C operating within system100.

As noted above, customer device130receives an input from a user that indicates a desired program to obtain and play back (function304). In the example ofFIG.3, the customer device130determines whether the requested program is available as a multicast (function306). If not, unicast streaming based upon client requests for segments described in digest209can commence (function308). If the requested program is one of the programs described in the received manifest116, however, then the multicast can be “tuned” (function310) and segments can be received and cached as desired (function316). If the currently transmitted segments of the multicast are for future portions of the program (function312), then the customer device130can begin caching the segments of the multicast while simultaneously requesting and receiving unicast segments (function314) directly from media source102until the playback point of the cached segments is reached. Again, caching the segments by the customer device130allows for variations of playback time between different customer devices130receiving the same multicast. For certain types of programs (e.g., live broadcasts of sports programming), the variations in playback time between different viewers may be particularly small, since many viewers will want to remain relatively close to the live broadcast. Other programs may have widely varying playback times, but if suitable cache storage is available, viewing time can be shifted from the live multicast as appropriate.

As noted above, manifests116may be updated in any manner (function320). Manifests116may be received at regular time intervals, on an as-needed basis, or in any other manner. In some implementations, distribution system110/120could send an updated manifest if the monitoring function206(FIG.2) recognizes a request204/308for a unicast stream that is already available to the customer device130as a multicast. Note that multicasts could be interrupted (e.g., by the discontinued availability of a node120supplying the multicast), and/or new multicasts could be added as distribution system110/120generates new multicasts. New multicasts may also become available as new satellite nodes120come into range, or as the customer device130moves to a new geographic location that is covered by a different access point node120. The dynamic nature of the multicasts described by manifest116creates a system that is both efficient and flexible.

Distribution systems110/120may also be configured in any manner. In many embodiments, a centralized distribution management system110will handle most, if not all, of the multicast configuration and manifest generation functions. Some implementations, however, will distribute some or all of this functionality amongst one or more distribution nodes120A-C as desired. Reference to “distribution systems110/120” herein, then, is intended to recognize that distribution functions are not limited to ground based or other centralized processing systems110but may be augmented or replaced with processing on the distribution nodes130A-C, as desired.

FIG.4is a flowchart illustrating one example of an automated process400performed by a distribution system110/120operating in a network system100. In the example ofFIG.4, distribution system110/120suitably monitors media streaming requests passing through the system100to identify duplicate media streams (function402). Duplicate streams (function404) can be assigned to multicast channels (function408), if desired, while non-duplicate streams can be handled as unicast streams (function406). Duplicate streams can be automatically detected, as described above. In other embodiments, however, the particular programs selected for multicast are determined based upon historical data (e.g., which programs are known to be most popular), possibly as modified by demographic or geographic data, or other factors as appropriate. Automatic detection of duplicate streams may be a useful feature in many embodiments, but it is not necessary in all implementations.

As noted above, multicast streams can be described in one or more manifests116that are distributed to customer devices130A-C on any temporal basis (function408). Manifests116may be updated in real-time as new multicasts are added or removed, if desired, or manifests116may simply be distributed according to a pre-determined time schedule. Some embodiments could generate manifests116for each distribution node120A-C that are broadcast to customer devices130A-C, thereby permitting each customer device130to see the particular multicasts available from each of the distribution nodes120A-C that are within range. Manifests116may be transmitted via an out-of-band or control channel provided by the distribution node120, or in any other manner.

Media content that is transmitted on the multicast channels may be obtained in any manner (function412). In the example ofFIG.2, the distribution system110/120requests media segments of a desired quality from the content source102using conventional media streaming protocols, as appropriate. These media segments can be reformatted for transmission on an address associated with the multicast (e.g., a multicast IP address on a network interface of one or more nodes120) in any manner (function414). In some implementations, multicasts are formatted as user datagram protocol (UDP) packets that contain media segment data. By attaching to the appropriate multicast address, customer device130can receive, cache, decode and provide the packets transmitted on that address for playback as desired.

Customer devices130may be directed away from unicast streams and toward one or more multicast streams in any manner. In some embodiments, customer devices130are configured to review updated manifest received from the distribution system110/120to check for any relevant multicasts so that the device130A-C can request future segments on the multicast stream. In other embodiments, distribution system110and/or120can issue redirect instructions (e.g., hypertext transport protocol (HTTP) redirects) to relevant customer devices130so that the customer devices130are able to obtain future segments from the multicast stream without necessarily reviewing the manifest. Other embodiments may operate in any other manner desired.

The various techniques and concepts described herein may be modified or supplemented in any manner. Additional intelligence could be used, for example, to identify particular distribution nodes120A-C that would be most efficient providers of certain multicasts based upon location, demographics of users connected to each node120A-C, and/or other factors as desired. One example of a segment mesh distribution system is described in U.S. Pat. No. 11,539,768 (which is incorporated herein by reference), although other mesh techniques could be equivalently used, if desired. Still other embodiments could use enhancements to content source102that provide more optimal formatting or delivery of multicast content for delivery within system100, if desired.

Various embodiments therefore provide systems, devices and processes to replace multiple parallel unicasts distributed to multiple customer devices with multi-casts of the shared content that are transmitted by certain distribution nodes available to each of the multiple customer devices. Consolidating shared media programing into multi-cast channels that are provided by selected distribution nodes can provide substantial bandwidth savings to the overall network, as well as to individual distribution nodes. The improved bandwidth utilization provided by the multicast may further provide better quality media streams in some situations, thereby further improving the customer experience. Other embodiments may provide additional benefits and features, as desired.

The general concepts set forth herein may be adapted to any number of alternate but equivalent embodiments. The term “exemplary” is used herein to represent one example, instance or illustration that may have any number of alternates. Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other implementations, nor is it necessarily intended as a model that must be duplicated in other implementations. While several exemplary embodiments have been presented in the foregoing detailed description, it should be appreciated that a vast number of alternate but equivalent variations exist, and the examples presented herein are not intended to limit the scope, applicability, or configuration of the invention in any way. To the contrary, various changes may be made in the function and arrangement of elements described without departing from the scope of the claims and their legal equivalents.