WO2015200484A1 - Streaming and downloading of video content according to available bandwidth - Google Patents

Streaming and downloading of video content according to available bandwidth Download PDF

Info

Publication number
WO2015200484A1
WO2015200484A1 PCT/US2015/037421 US2015037421W WO2015200484A1 WO 2015200484 A1 WO2015200484 A1 WO 2015200484A1 US 2015037421 W US2015037421 W US 2015037421W WO 2015200484 A1 WO2015200484 A1 WO 2015200484A1
Authority
WO
WIPO (PCT)
Prior art keywords
video content
configuration
network
stream
bandwidth
Prior art date
Application number
PCT/US2015/037421
Other languages
French (fr)
Inventor
Arnaud RETUREAU
Juan NOGUEROL
Victor Wang
Samir Ahmed
Chris Muench
Original Assignee
Thomson Licensing
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 Thomson Licensing filed Critical Thomson Licensing
Publication of WO2015200484A1 publication Critical patent/WO2015200484A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4126The peripheral being portable, e.g. PDAs or mobile phones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • H04N21/2356Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages by altering the spatial resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet

Definitions

  • the present disclosure generally, relates to video content and, more specifically, relates to streaming and downloading of video content according to available bandwidth.
  • a viewer may sometimes desire to watch video content that is offered by a content provider.
  • the content provider may have the video content stored on its servers.
  • the content provider may offer the viewer the option of streaming the video content over a network.
  • Video content can be recorded and played for viewing at relatively high resolutions.
  • the available bandwidth of the network may be limited. Limitations to the available bandwidth of the network may prevent streaming of such high resolution video content.
  • the viewer may need to download the high resolution video content before being able to view it.
  • the duration for downloading the high resolution video content may be lengthy. Waiting for the video content to download may be inconvenient for the viewer, especially if the viewer is eager to watch the video content as soon as possible. Accordingly, enhancements that address such limitations can improve the overall experience of the viewer.
  • the present disclosure provides a method of providing video content.
  • the method may be performed by a server device.
  • the method may include determining whether a bandwidth to stream the video content according to a first configuration exceeds an available bandwidth in a network.
  • the method may also include providing the video content to stream according to a second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the method may also include providing the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration.
  • the present disclosure provides an apparatus for delivering content.
  • the apparatus may be a server device.
  • the apparatus includes a memory and at least one processor communicatively coupled to the memory.
  • the at least one processor is configured to determine whether the bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network.
  • the at least one processor may also be configured to provide the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the at least one processor may also be configured to provide the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration.
  • the present disclosure provides a computer-readable medium including computer-executable instructions.
  • the computer-readable medium may be included in a server device.
  • the computer-executable instructions may be configured to determine whether the bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network.
  • the computer-executable instructions may also be configured to provide the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the computer- executable instructions may also be configured to provide the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration.
  • the present disclosure provides another method.
  • the method may be performed by a client device.
  • the method may include receiving a user input to stream the video content according to a first configuration.
  • the method may also include receiving the video content to stream according to a second configuration that is different from the first configuration when a bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network.
  • the method may also include receiving the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration.
  • the present disclosure provides another apparatus.
  • the apparatus may be a client device.
  • the apparatus may include a memory and at least one processor communicatively coupled to the memory.
  • the at least one processor may be configured to receive a user input to stream the video content according to the first configuration.
  • the at least one processor may also be configured to receive the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network.
  • the at least one processor may also be configured to receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration.
  • the present disclosure provides another computer-readable medium.
  • the computer-readable medium may be included in a client device.
  • the computer-readable medium may include computer-executable instructions.
  • the computer-executable instructions may be configured to receive the user input to stream the video content according to the first configuration.
  • the computer-executable instructions may also be configured to receive the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network.
  • the computer-readable medium may also be configured to receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration.
  • FIG. 1 is a diagram illustrating an example of communication between a server device and client devices according to various aspects of the present disclosure.
  • FIG. 2 is a diagram illustrating an example of bandwidth assessment according to various aspects of the present disclosure.
  • FIG. 3 is a diagram illustrating an example of providing video content according to various aspects of the present disclosure.
  • FIG. 4 is another diagram illustrating another example of providing video content according to various aspects of the present disclosure.
  • FIG. 5 is a diagram illustrating an example of methods and/or processes performed by the server device according to various aspects of the present disclosure.
  • FIG. 6 is a diagram illustrating an example of methods and/or processes performed by the client device according to various aspects of the present disclosure.
  • FIG. 7 is a diagram illustrating an example of hardware implementation of the server device according to various aspects of the present disclosure.
  • FIG. 8 is a diagram illustrating an example of hardware implementation of a client device according to various aspects of the present disclosure.
  • FIG. 1 is a diagram 100 illustrating an example of a server device in communication with various client devices according to various aspects of the present disclosure.
  • the server device may be a server 102.
  • one client device may be a set top box 114, and another client device may be a smartphone 124.
  • alternative examples of client devices may include desktop computers, laptop computers, tablet computers, wearable devices (e.g., glasses, watches, etc.), and various other suitable devices.
  • the set top box 114 may be communicatively coupled to a display 116, and the smartphone 124 may have a build-in display 126.
  • the server device may be located locally (e.g., within the same network and/or physical location) or remotely (e.g., within a different network and/or physical location) in relation to the client devices.
  • the server device may be associated with an Internet-based (e.g., "cloud" -based) computing environment 104. Communications between the client devices and the server device may be performed via a wired connection and/or a wireless connection. Such communications may be performed using various types of technologies without deviating from the scope of the present disclosure.
  • the server device may communicate with a first client device via a first network, and the server device may also communicate with a second client device via a second network (that is different from the first network).
  • the server 102 may communicate with the set top box 114 via a local area network (LAN) that utilizes a wireless access point (AP) 112, and the server 102 may also communicate with the smartphone 124 via a cellular network that utilizes an access node 122.
  • LAN may implement various types of technologies without deviating from the scope of the present disclosure.
  • the LAN may implement protocols and/or algorithms that comply with various communication standards of the Institute of Electrical and Electronics Engineers (IEEE), such as IEEE 802.11.
  • IEEE Institute of Electrical and Electronics Engineers
  • the cellular network may implement various types of technologies without deviating from the scope of the present disclosure.
  • the cellular network may implement protocols and/or algorithms that comply with various communication standards of the Third Generation Partnership Project (3GPP) and 3GPP2, such as 3G and 4G (Long Term Evolution), and of the Next Generation Mobile Networks (NGMN) Alliance, such as 5G.
  • 3GPP Third Generation Partnership Project
  • 3GPP2 3G and 4G (Long Term Evolution)
  • NVMN Next Generation Mobile Networks
  • FIG. 2 is a diagram 200 illustrating an example of bandwidth assessment for providing video content from a server device to a client device.
  • the video content may be provided in various configurations without deviating from the scope of the present disclose.
  • the 'configuration' of the video content may refer to any aspect of the video content.
  • some example provided herein describe the configuration of the video content in relation to the resolution of the video content, one of ordinary skill in the art will understand that the configuration of the video content can additionally or alternatively include various other aspects of the video content without deviating from the scope of the present disclosure.
  • the server device may determine the available bandwidth in the network.
  • the term 'bandwidth' may refer to a data rate (e.g., bit rate, etc.) of a logical or physical communication path in a communication system.
  • the term 'available bandwidth' may refer to the data rate (e.g., bit rate, etc.) that is currently obtainable in the network based on current network conditions.
  • the available bandwidth can vary based on various factors, such as channel capability, channel availability, channel efficiency, network congestion, and various other suitable factors.
  • the server device may determine the available bandwidth by various techniques without deviating from the scope of the present disclosure. For example, the server 102 may run a bandwidth test to determine the maximum throughput of the network. As another example, the server 102 may transmit a ping signal to another device (e.g., set top box 114), measure the amount of time that elapsed for receiving a reply signal in response to the ping signal, and determining the available bandwidth of the network based on that measured amount of time. A relatively greater amount of elapsed time may indicate relatively low bandwidth availability in the network, and vice versa.
  • the available bandwidth in the network may be based on historical bandwidth information associated with the network.
  • the server device e.g., server 102 may store historical bandwidth information pertaining to the time periods during the day when network congestion is relatively high and, thus, the available bandwidth likely to be relatively low.
  • the server device e.g., server 102 may store historical bandwidth information pertaining to the time periods during the day when the number of client devices (e.g., set top box 114, smartphone 124) is relatively low and, thus, the available bandwidth likely to be relatively high.
  • the server device e.g., server 102) may utilize such historical information to predict the available bandwidth at the current time.
  • FIG. 2 also includes a graph 202 illustrating an example of the available bandwidth in relation to the bandwidth for streaming video content at various resolutions.
  • the video content may be provided at various resolutions without deviating from the scope of the present disclosure.
  • the video content may be provided at a relatively high resolution (e.g., which is designated in the graph 202 as "Resolutioni”) or at any lower resolution (e.g., which is designated in the graph 202 as "Resolution 2 ").
  • the bandwidth 204 needed to stream the video content at the high resolution (Resolutioni) is higher than the bandwidth 208 needed to stream the video content at the lower resolution (Resolution ⁇ .
  • the high resolution video content may be provided at a resolution sometime referred to as 4K Ultra High Definition (UHD), which may refer to the characteristic of having a horizontal resolution of at least 4,000 pixels.
  • UHD Ultra High Definition
  • one of ordinary skill in the art will understand that this resolution is not necessarily a limitation of the present disclosure, and the aspects described herein can be readily extended to any other resolution currently known or known in the future without deviating from the scope of the present disclosure.
  • video content may refer to any data that has characteristics known to one of ordinary skill in the art as video, video streams, video clips, moving images, motion pictures, and/or other suitable types of media.
  • video content may include two or more layers, such as a base layer, an enhancement layer, and possibly additional layers.
  • the term 'video content' is not necessarily limited to a specific number of such layers.
  • video content may refer to the base layer.
  • video content may refer to the enhancement layer.
  • video content may refer to a plurality of layers (e.g., the combination of the base layer and the enhancement layer).
  • the term 'streaming' may refer to the characteristic of providing (e.g., by the server 102) and/or receiving (e.g., by the set top box 114) of video content at a time that is nearly concurrent or nearly simultaneous with a time that the video content is displayed to the viewer.
  • Segments of the video content may be streamed sequentially. For example, a first segment of the video content may be streamed during a first time period, and a second segment of the video content may be streamed during a second time period that immediately follows the first time segment.
  • each segment of the video content may be stored in a short-term memory module (which may sometimes be referred to as a 'buffer') until that segment of the video content is ready to be displayed to the viewer.
  • a short-term memory module which may sometimes be referred to as a 'buffer'
  • the streamed video content may be temporarily stored as stream data 831 in the memory 814 of the client device 802 illustrated in FIG. 8.
  • the term 'downloading' may refer to the characteristic of providing (e.g., by the server 102) and/or receiving (e.g., by the set top box 114) of video content at a time that is disassociated with a time that the video content is displayed to the viewer.
  • the downloaded video content may be temporarily stored as download data 830 in the memory 814 of the client device 802 illustrated in FIG. 8.
  • the entire video content may be completely downloaded during a particular day but not viewed by the viewer until the viewer initiates playback, which may happen on that same day or any future day.
  • streaming of the high resolution video content requires a bandwidth that cannot be supported by the network.
  • the available bandwidth 206 in the network is lower than the bandwidth 204 needed to stream the video content at the higher resolution (e.g., Resolutioni).
  • some video content may be at a resolution that is too high to be concurrently streamed as the video content is provided from the server device (e.g., server 102) to the client device (e.g., set top box 114).
  • the high resolution video content may need to be downloaded to the client device (e.g., set top box 114) prior to being ready for playback for the viewer.
  • the viewer may not wish to wait the time needed to download the high resolution video content, especially if the viewer is eager and/or interested to immediately view that video content at any resolution. For example, the viewer may tolerate watching a relatively lower-resolution version of the video content before the high resolution video content has finished downloading.
  • FIG. 3 is a diagram 300 illustrating an example of the video content provided for streaming and downloading according to various aspects of the present disclosure.
  • the server device determines that the bandwidth to stream the video content at the high resolution (e.g., ResolutionO exceeds the available bandwidth in the network.
  • the server device may provide the video content to stream according to a second configuration (e.g., Resolution) that is different from the first configuration (e.g., ResolutionO.
  • a second configuration e.g., Resolution
  • the server 102 provides the video content 302 to stream at Resolution (which is lower than ResolutionO when the server 102 determines that the bandwidth the video content at Resolutioni exceeds the available bandwidth in the network.
  • Resolution which is lower than ResolutionO when the server 102 determines that the bandwidth the video content at Resolutioni exceeds the available bandwidth in the network.
  • the server client may also provide the video content to download according to the first configuration concurrently with providing the video content to stream according to the second configuration.
  • the server 102 provides the video content 304 to download at Resolutioni while concurrently providing the video content 302 to stream at Resolution 2 .
  • the viewer can enjoy the 'instant gratification' associated with almost instantly being able to view the video content while downloading the higher-resolution version of the video content for later viewing.
  • the server device may determine whether to postpone at least a portion of the video content to download according to the first configuration based on the available bandwidth in the network. For example, under some circumstances (e.g., network congestion, network overloading, etc.), the available bandwidth may fluctuate during a period of time. In such circumstances, the server 102 may determine whether to postpone providing the video content to download at the higher resolution (ResolutionO until network conditions return to normal conditions.
  • ResolutionO until network conditions return to normal conditions.
  • the server device provides the video content to download (at ResolutionO an d to stream (at Resolution) the video content at the same client device. That is, the server 102 provides the video content 304 to download (at ResolutionO at the set top box 114 and concurrently provides the video content 302 to stream (at Resolution ⁇ also at the set top box 114.
  • the server device provides the video content to download (at ResolutionO an d to stream (at Resolution ⁇ at different client devices. For example, as illustrated in FIG. 3, the server 102 provides the video content 304 (at ResolutionO to download at the set top box 114 and concurrently provides the video content 306 (at Resolution 2 ) to stream at the smartphone 124.
  • the client devices may be on different networks.
  • the set top box 114 may be included in a LAN that includes the wireless AP 112, and the smartphone may be included in a cellular network that includes the access node 122.
  • the server 102 may provide the video content 304 (at ResolutionO to download via the LAN to the set top box 114 and concurrently provide the video content (at Resolution 2 ) to stream via the cellular network to the smartphone 124.
  • FIG. 4 is another diagram 400 illustrating another example of video content provided for streaming and downloading according to various aspects of the present disclosure. More specifically, the diagram 400 illustrated in FIG. 4 provides an example application of the concepts described herein with respect to a home environment. Various aspects described herein apply to the diagram 400 illustrated in FIG. 4 (but will not be repeated for the sake of brevity).
  • FIG. 5 is a diagram 500 illustrating an example of various methods and/or processes performed by the server device.
  • the server device may determine whether a bandwidth to stream video content according to a first configuration exceeds an available network in the network. For example, referring to the graph 202 illustrated in FIG. 2, the server 102 may determine whether the bandwidth 204 to stream the video content at Resolutioni exceeds the available bandwidth 206 in the network.
  • the first configuration may provide a resolution associated with 4K UHD.
  • the server device may provide the video content to stream according to a second configuration. For example, as illustrated in the graph 202 in FIG. 2, the bandwidth 204 to stream the video content at Resolutioni exceeds the available bandwidth 206 in the network. Accordingly, in some configurations, the server 102 may provide the video content to stream at a resolution lower than 4K UHD.
  • the server device may determine whether to postpone providing the video content to download according to the first configuration based on the available bandwidth in the network. For example, the server 102 may (i) determine how much bandwidth remains after streaming the video content according to the second configuration, and (ii) determine whether that remaining bandwidth is sufficient to support concurrent downloading of the video content according to the first configuration. If sufficient bandwidth does not remain in the network to support concurrent downloading of the video content according to the first configuration, the server 102 may postpone the downloading of the video content according to the first configuration until a future time.
  • the server device may provide the video content to download at Resolutioni concurrently with the providing of the video content 302 to stream according to the second configuration.
  • the server 102 may provide the video content 304 to download according to the first configuration while concurrently providing of the video content 302 to stream at Resolution 2 .
  • the server device may provide the video content to a first device via a first network to download according to the first configuration and concurrently provide the video content to a second device via a second network to stream according to the second configuration.
  • the server 102 may provide the video content 304 to the set top box 114 via a LAN to download at Resolutioni while concurrently providing the video content 306 to the smartphone 124 via a cellular network to stream at Resolution ⁇
  • FIG. 6 is a diagram 600 illustrating an example of various methods and/or processes performed by the client device.
  • the client device may receive a user input to stream video content according to a first configuration.
  • the user may provide an input to the set top box 114 to initiate a stream of video content at Resolution i.
  • the client device may receive video content to stream according to a second configuration that is different from the first configuration when a bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network.
  • the set top box 114 may receive the video content 302 to stream at Resolution 2 (which is lower than Resolutioni) when the bandwidth 204 to stream the video content according to the first configuration exceeds the available bandwidth 206 in the network.
  • the smartphone 124 may receive the video content 306 to stream at Resolution (which is lower than Resolutioni) when the bandwidth 204 to stream the video content according to the first configuration exceeds the available bandwidth 206 in the network.
  • the set top 114 may be connected to a first network (e.g., LAN), and the smartphone may be connected to a second network (e.g., cellular network), as described in greater detail herein.
  • the client device may receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration.
  • the set top box 114 may receive the video content 304 to download at Resolutioni while concurrently receiving the video content 302 to stream at Resolution 2 .
  • the set top box 114 may receive the video content 304 to download at Resolutioni while concurrently receiving the video content 302 to stream at Resolution 2 .
  • the client device may postpone the providing of the video content for download based on the available bandwidth in the network.
  • at least a portion of the video content to stream according to the second configuration is received at a first time
  • at least a portion of the video content to download according to the first configuration is received at a time that is after the first time.
  • the set top box 114 may receive at least a portion of the video content 304 to stream at Resolution 2 at Timei
  • the set top box 114 may receive at least a portion of the video content 302 to download at Resolutioni at Time 2 (wherein Time 2 > Timei).
  • FIG. 7 is a diagram 700 illustrating an example of hardware implementation of a server device 702 in accordance with various aspects of the present disclosure.
  • the server device 702 may be the same as the server 102 described in greater detail above.
  • the server device 702 may include a transceiver 710.
  • the transceiver 710 may be configured to receive data and/or transmit data in communication with another apparatus.
  • the transceiver 710 provides enables communication with another apparatus via a wired or wireless transmission medium.
  • the transceiver 710 may be configured to perform such communications using various types of technologies.
  • One of ordinary skill in the art will understand that many types of technologies may perform such communication without deviating from the scope of the present disclosure.
  • the server device 702 may also include a memory 714, one or more processors 704, a computer- readable medium 706, and a bus interface 708.
  • the bus interface 708 may provide an interface between a bus 716 and the transceiver 710.
  • the memory 714, the one or more processors 704, the computer-readable medium 706, and the bus interface 708 may be connected together via the bus 716.
  • the processor 704 may be communicatively coupled to the transceiver 710 and/or the memory 714.
  • the processor 704 may include a bandwidth circuit 720.
  • the bandwidth circuit 720 may be configured to determine whether a bandwidth to stream the video content according to a first configuration exceeds an available bandwidth in a network.
  • the bandwidth circuit 720 may include hardware components that determine whether the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the bandwidth circuit 720 may also include software modules that provide algorithms for determining whether the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the processor 704 may also include a transmission circuit 721.
  • the transmission circuit 721 The transmission circuit
  • the transmission circuit 721 may be configured to provide the video content to stream according to a second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the transmission circuit 721 may include hardware components that provide the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the transmission circuit 721 may also include software modules that provide algorithms for providing the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the transmission circuit 721 may also be configured to provide the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration.
  • the transmission circuit 721 may also include hardware components that providing the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration.
  • the transmission circuit 721 may also include software modules that provide algorithms for providing the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration.
  • the video content may be provided to a first device via a first network to download according to the first configuration, and the video content may be concurrently provided to a second device via a second network to stream according to the second configuration.
  • the processor 704 may also include a control circuit 722.
  • the control circuit 722 may be configured to determine whether to postpone the providing the video content to download according to the first configuration based on the available bandwidth in the network.
  • the control circuit 722 may include hardware components that determine whether to postpone the providing the video content to download according to the first configuration based on the available bandwidth in the network.
  • the control circuit 722 may also include software modules that provide algorithms for determining whether to postpone the providing the video content to download according to the first configuration based on the available bandwidth in the network.
  • processor 704 may also include various other circuits 723 that are in addition and/or alternative(s) to circuits 720, 721, 722. Such other circuits 723 may provide the means for performing any one or more of the functions, methods, processes, features and/or aspects described herein.
  • the computer-readable medium 706 may include various computer-executable instructions.
  • the computer-executable instructions may include computer-executable code configured to perform various functions and/or enable various aspects described herein.
  • the computer-executable instructions may be executed by various hardware components (e.g., processor 704) of the server device 702.
  • the instructions may be a part of various software programs and/or software modules.
  • the computer-readable medium 706 may include bandwidth instructions 740.
  • the bandwidth instructions 740 may include computer-executable instructions configured to determine whether the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the computer-readable medium 706 may also include transmission instructions 721.
  • the transmission instructions 721 may include computer-executable instructions configured to provide the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the transmission instructions 721 may also include computer- executable instructions configured to provide the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration.
  • the video content may be provided to a first device via a first network to download according to the first configuration, and the video content may be concurrently provided to a second device via a second network to stream according to the second configuration.
  • the computer-readable medium 706 may also include control instructions 722.
  • the control instructions 722 may include computer-executable instructions configured to determine whether to postpone the providing the video content to download according to the first configuration based on the available bandwidth in the network.
  • the foregoing description provides a non-limiting example of the computer-readable medium 706 of the server device 702.
  • various instructions e.g., computer-executable code
  • the computer-readable medium 706 may also include various other instructions 743 that are in addition and/or alternative(s) to instructions 740, 741, 742.
  • Such other instructions 743 may include computer-executable code configured for performing any one or more of the functions, methods, processes, features and/or aspects described herein.
  • the memory 714 may include various memory modules.
  • the memory modules may be configured to store, and have read therefrom, various values and/or information by the processor 704, or any of its circuits 720, 721, 722, 723.
  • the memory modules may also be configured to store, and have read therefrom, various values and/or information upon execution of the computer-executable code included in the computer-readable medium 706, or any of its instructions 740, 741, 742, 743.
  • the memory 714 may include download data 730.
  • the download data 730 may include video content that is provided to a client device according to the first configuration, as described in greater detail herein.
  • the memory 714 may also include stream data.
  • the stream data 731 may include video content that is provided to a client device according to the second configuration, as described in greater detail herein.
  • the memory 714 may also include various other data (not shown) that is in addition and/or alternative to the aforementioned data 730, 731.
  • Such other data may include data performing any one or more of the functions, methods, processes, features and/or aspects described herein.
  • server device 702 may include alternative and/or additional features without deviating from the scope of the present disclosure.
  • an element, or any portion of an element, or any combination of elements may be implemented with a processing system that includes one or more processors 704.
  • the one or more processors 704 include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure.
  • DSPs digital signal processors
  • FPGAs field programmable gate arrays
  • PLDs programmable logic devices
  • state machines gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure.
  • the processing system may be implemented with a bus architecture, represented generally by the bus 716 and bus interface 708.
  • the bus 716 may include any number of interconnecting buses and bridges depending on the specific application of the processing system and the overall design constraints.
  • the bus 716 may link together various circuits including the one or more processors 704, the memory 714, and the computer- readable media 706.
  • the bus 716 may also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art.
  • the one or more processors 704 may be responsible for managing the bus 716 and general processing, including the execution of software stored on the computer-readable medium 706.
  • the software when executed by the one or more processors 704, causes the processing system to perform the various functions described below for any one or more apparatuses.
  • the computer-readable medium 706 may also be used for storing data that is manipulated by the one or more processors 704 when executing software.
  • Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
  • the software may reside on the computer-readable medium 706.
  • the computer-readable medium 706 may be a non-transitory computer-readable medium.
  • a non-transitory computer-readable medium includes, by way of example, a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD)), a smart card, a flash memory device (e.g., a card, a stick, or a key drive), a random access memory (RAM), a read only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a register, a removable disk, and any other suitable medium for storing software and/or instructions that may be accessed and read by a computer.
  • a magnetic storage device e.g., hard disk, floppy disk, magnetic strip
  • an optical disk e.g., a
  • the computer-readable medium 706 may also include, by way of example, a carrier wave, a transmission line, and any other suitable medium for transmitting software and/or instructions that may be accessed and read by a computer.
  • the computer-readable medium 706 may reside in the processing system, external to the processing system, or distributed across multiple entities including the processing system.
  • the computer-readable medium 706 may be embodied in a computer program product.
  • a computer program product may include a computer-readable medium in packaging materials.
  • FIG. 8 is a diagram 800 illustrating an example of hardware implementation of a client device 802 in accordance with various aspects of the present disclosure.
  • the client device 802 may be the same as the set top box 114, the smartphone 124, and/or any other suitable device configured to display video content in accordance with aspects of the present disclosure.
  • the client device 802 may include a user interface 812.
  • the user interface may be configured to receive inputs from a user of the client device 802.
  • the user interface also may be configured to display information (e.g., video content).
  • the user interface 812 of the client device 802 may be similar to the display 126 of the smartphone 124 illustrated in FIGS. 1-3.
  • the client device 802 may include a transceiver 810.
  • the transceiver 810 may be configured to receive data and/or transmit data in communication with another apparatus.
  • the transceiver 810 enables communication with another apparatus via a wired or wireless transmission medium.
  • the transceiver 810 may be configured to perform such communications using various types of technologies. One of ordinary skill in the art will understand that many types of technologies may perform such communication without deviating from the scope of the present disclosure.
  • the client device 802 may also include a memory 814, one or more processors 804, a computer-readable medium 806, and a bus interface 808.
  • the bus interface 808 may provide an interface between a bus 816 and the transceiver 810.
  • the memory 814, the one or more processors 804, the computer-readable medium 806, and the bus interface 808 may be connected together via the bus 816.
  • the processor 804 may be communicatively coupled to the transceiver 810 and/or the memory 814.
  • the processor 804 may include an input circuit 820.
  • the input circuit 820 may be configured to receive a user input to stream the video content according to the first configuration.
  • the input circuit 820 may include hardware components that receive the user input to stream the video content according to the first configuration.
  • the input circuit 820 may also include software modules that provide algorithms for receiving the user input to stream the video content according to the first configuration.
  • the processor 804 may also include a reception circuit 821.
  • the reception circuit 821 may be configured to receive the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the reception circuit 821 may include hardware components that receive the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the reception circuit 821 may also include software modules that provide algorithms for receiving the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the reception circuit 821 may also be configured to receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration.
  • the reception circuit 821 may also include hardware components that receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration.
  • the reception circuit 821 may also include software modules that provide algorithms for receiving the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration. In some configurations, at least a portion of the video content to stream according to the second configuration is received at a first time, and at least a portion of the video content to download according to the first configuration is received at a time that is after the first time, as described in greater detail above.
  • processor 804 of the client device 802. may also include various other circuits 822 that are in addition and/or alternative(s) to circuits 820, 821. Such other circuits 822 may provide the means for performing any one or more of the functions, methods, processes, features and/or aspects described herein.
  • the computer-readable medium 806 may include various computer-executable instructions.
  • the computer-executable instructions may include computer-executable code configured to perform various functions and/or enable various aspects described herein.
  • the computer-executable instructions may be executed by various hardware components (e.g., processor 804) of the client device 802.
  • the instructions may be a part of various software programs and/or software modules.
  • the computer-readable medium 806 may include input instructions 840.
  • the input instructions 840 may include computer-executable instructions configured to receive the user input to stream the video content according to the first configuration.
  • the computer-readable medium 806 may also include reception instructions 841.
  • the reception instructions 841 may include computer-executable instructions configured to receive the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
  • the reception instructions 841 may also include computer-executable instructions configured to receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration.
  • at least a portion of the video content to stream according to the second configuration is received at a first time
  • at least a portion of the video content to download according to the first configuration is received at a time that is after the first time, as described in greater detail above.
  • the computer-readable medium 806 may also include various other instructions 842 that are in addition and/or alternative(s) to instructions 840, 841.
  • Such other instructions 842 may include computer-executable code configured for performing any one or more of the functions, methods, processes, features and/or aspects described herein.
  • the memory 814 may include various memory modules.
  • the memory modules may be configured to store, and have read therefrom, various values and/or information by the processor 804, or any of its circuits 820, 821, 822.
  • the memory modules may also be configured to store, and have read therefrom, various values and/or information upon execution of the computer- executable code included in the computer-readable medium 806, or any of its instructions 840, 841, 842.
  • the memory 814 may include download data 830.
  • the download data 830 may include video content that is received from a server device according to the first configuration, as described in greater detail herein.
  • the memory 814 may also include stream data.
  • the stream data 831 may include video content that is received from a server device according to the second configuration, as described in greater detail herein.
  • the memory 814 may also include various other data (not shown) that is in addition and/or alternative to the aforementioned data 830, 831.
  • Such other data may include data performing any one or more of the functions, methods, processes, features and/or aspects described herein.
  • an element, or any portion of an element, or any combination of elements may be implemented with a processing system that includes one or more processors 804.
  • the one or more processors 804 include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure.
  • the processing system may be implemented with a bus architecture, represented generally by the bus 816 and bus interface 808.
  • the bus 816 may include any number of interconnecting buses and bridges depending on the specific application of the processing system and the overall design constraints.
  • the bus 816 may link together various circuits including the one or more processors 804, the memory 814, and the computer- readable media 806.
  • the bus 816 may also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art.
  • the one or more processors 804 may be responsible for managing the bus 816 and general processing, including the execution of software stored on the computer-readable medium 806.
  • the software when executed by the one or more processors 804, causes the processing system to perform the various functions described below for any one or more apparatuses.
  • the computer-readable medium 806 may also be used for storing data that is manipulated by the one or more processors 804 when executing software.
  • Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
  • the software may reside on the computer-readable medium 806.
  • the computer-readable medium 806 may be a non-transitory computer-readable medium.
  • a non-transitory computer-readable medium includes, by way of example, a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD)), a smart card, a flash memory device (e.g., a card, a stick, or a key drive), a random access memory (RAM), a read only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a register, a removable disk, and any other suitable medium for storing software and/or instructions that may be accessed and read by a computer.
  • a magnetic storage device e.g., hard disk, floppy disk, magnetic strip
  • an optical disk e.g., a
  • the computer-readable medium 806 may also include, by way of example, a carrier wave, a transmission line, and any other suitable medium for transmitting software and/or instructions that may be accessed and read by a computer.
  • the computer-readable medium 806 may reside in the processing system, external to the processing system, or distributed across multiple entities including the processing system.
  • the computer-readable medium 806 may be embodied in a computer program product.
  • a computer program product may include a computer-readable medium in packaging materials.

Landscapes

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

Abstract

Various methods, apparatuses, and computer-readable medium are described herein. A server device (702) may determine (502) whether a bandwidth (204) to stream the video content according to a first configuration exceeds an available bandwidth (206), provide (504) the video content (302, 306) to stream according to a second configuration different from the first configuration, and provide (508) the video content (304) to download according to the first configuration concurrently with the providing (504) of the video content (302, 306) to stream according to the second configuration. A client device (802) may receive (602) a user input to stream the video content according to the first configuration, receive (604) the video content (302, 306) to stream according to the second configuration different from the first configuration, and receive (606) the video content (304) to download according to the first configuration concurrently with the receiving (604) of the video content (302, 306) to stream according to the second configuration.

Description

STREAMING AND DOWNLOADING OF VIDEO CONTENT ACCORDING TO
AVAILABLE BANDWIDTH
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority to and benefit of provisional patent application number 62/016,520 filed in the United States Patent and Trademark Office on June 24, 2014, and provisional patent application number 62/060,341 filed in the United States Patent and Trademark Office on October 6, 2014, the entire contents of which are hereby incorporated herein by reference.
TECHNICAL FIELD
The present disclosure, generally, relates to video content and, more specifically, relates to streaming and downloading of video content according to available bandwidth.
INTRODUCTION
A viewer may sometimes desire to watch video content that is offered by a content provider. The content provider may have the video content stored on its servers. The content provider may offer the viewer the option of streaming the video content over a network. Video content can be recorded and played for viewing at relatively high resolutions. However, in some circumstances, the available bandwidth of the network may be limited. Limitations to the available bandwidth of the network may prevent streaming of such high resolution video content. In such circumstances, the viewer may need to download the high resolution video content before being able to view it. However, the duration for downloading the high resolution video content may be lengthy. Waiting for the video content to download may be inconvenient for the viewer, especially if the viewer is eager to watch the video content as soon as possible. Accordingly, enhancements that address such limitations can improve the overall experience of the viewer.
SUMMARY OF SOME EMBODIMENTS
Various aspects of methods, apparatuses, and computer-readable medium are described throughout the present disclosure. The following description provides various non-limiting examples and is not intended to limit the scope of the present disclosure.
In an aspect, the present disclosure provides a method of providing video content. The method may be performed by a server device. The method may include determining whether a bandwidth to stream the video content according to a first configuration exceeds an available bandwidth in a network. The method may also include providing the video content to stream according to a second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The method may also include providing the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration.
In another aspect, the present disclosure provides an apparatus for delivering content. The apparatus may be a server device. The apparatus includes a memory and at least one processor communicatively coupled to the memory. The at least one processor is configured to determine whether the bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network. The at least one processor may also be configured to provide the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The at least one processor may also be configured to provide the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration.
In yet another aspect, the present disclosure provides a computer-readable medium including computer-executable instructions. The computer-readable medium may be included in a server device. The computer-executable instructions may be configured to determine whether the bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network. The computer-executable instructions may also be configured to provide the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The computer- executable instructions may also be configured to provide the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration.
In a further aspect, the present disclosure provides another method. The method may be performed by a client device. The method may include receiving a user input to stream the video content according to a first configuration. The method may also include receiving the video content to stream according to a second configuration that is different from the first configuration when a bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network. The method may also include receiving the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration.
In another aspect, the present disclosure provides another apparatus. The apparatus may be a client device. The apparatus may include a memory and at least one processor communicatively coupled to the memory. The at least one processor may be configured to receive a user input to stream the video content according to the first configuration. The at least one processor may also be configured to receive the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network. The at least one processor may also be configured to receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration.
In yet another aspect, the present disclosure provides another computer-readable medium. The computer-readable medium may be included in a client device. The computer-readable medium may include computer-executable instructions. The computer-executable instructions may be configured to receive the user input to stream the video content according to the first configuration. The computer-executable instructions may also be configured to receive the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network. The computer-readable medium may also be configured to receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration. The foregoing is merely a summary of various features described in greater detail herein. Additional features are also described herein. The embodiments described herein may be implemented in any combination or sub-combination, even if not explicitly described herein. These and other aspects of the present disclosure will become more fully understood upon a review of the detailed description, which follows. Other aspects, features, and embodiments of the present disclosure will become apparent to those of ordinary skill in the art, upon reviewing the following description of specific, exemplary embodiments of the present disclosure in conjunction with the accompanying figures.
BRIEF DESCRIPTION OF DRAWINGS FIG. 1 is a diagram illustrating an example of communication between a server device and client devices according to various aspects of the present disclosure.
FIG. 2 is a diagram illustrating an example of bandwidth assessment according to various aspects of the present disclosure.
FIG. 3 is a diagram illustrating an example of providing video content according to various aspects of the present disclosure.
FIG. 4 is another diagram illustrating another example of providing video content according to various aspects of the present disclosure.
FIG. 5 is a diagram illustrating an example of methods and/or processes performed by the server device according to various aspects of the present disclosure.
FIG. 6 is a diagram illustrating an example of methods and/or processes performed by the client device according to various aspects of the present disclosure.
FIG. 7 is a diagram illustrating an example of hardware implementation of the server device according to various aspects of the present disclosure.
FIG. 8 is a diagram illustrating an example of hardware implementation of a client device according to various aspects of the present disclosure.
DESCRIPTION OF SOME EMBODIMENTS
The detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
FIG. 1 is a diagram 100 illustrating an example of a server device in communication with various client devices according to various aspects of the present disclosure. For illustrative purposes, the server device may be a server 102. For illustrative purposes, one client device may be a set top box 114, and another client device may be a smartphone 124. Although not illustrated in FIG. 1, alternative examples of client devices may include desktop computers, laptop computers, tablet computers, wearable devices (e.g., glasses, watches, etc.), and various other suitable devices. The set top box 114 may be communicatively coupled to a display 116, and the smartphone 124 may have a build-in display 126. Although the non-limiting example illustrated in FIG. 1 shows two client devices, one of ordinary skill in the art will also understand that any number of client devices may be implemented without deviating from the scope of the present disclosure. The server device may be located locally (e.g., within the same network and/or physical location) or remotely (e.g., within a different network and/or physical location) in relation to the client devices. For example, the server device may be associated with an Internet-based (e.g., "cloud" -based) computing environment 104. Communications between the client devices and the server device may be performed via a wired connection and/or a wireless connection. Such communications may be performed using various types of technologies without deviating from the scope of the present disclosure. One of ordinary skill in the art will understand that various types of communication technologies may be used without deviating from the scope of the present disclosure. Without deviating from the scope of the present disclosure, such communications may be facilitated by various other computers, servers, gateways, routers, and other hardware devices, even if not illustrated in FIG. 1.
In some configurations, the server device may communicate with a first client device via a first network, and the server device may also communicate with a second client device via a second network (that is different from the first network). For example, the server 102 may communicate with the set top box 114 via a local area network (LAN) that utilizes a wireless access point (AP) 112, and the server 102 may also communicate with the smartphone 124 via a cellular network that utilizes an access node 122. The LAN may implement various types of technologies without deviating from the scope of the present disclosure. For example, the LAN may implement protocols and/or algorithms that comply with various communication standards of the Institute of Electrical and Electronics Engineers (IEEE), such as IEEE 802.11. The cellular network may implement various types of technologies without deviating from the scope of the present disclosure. For example, the cellular network may implement protocols and/or algorithms that comply with various communication standards of the Third Generation Partnership Project (3GPP) and 3GPP2, such as 3G and 4G (Long Term Evolution), and of the Next Generation Mobile Networks (NGMN) Alliance, such as 5G.
FIG. 2 is a diagram 200 illustrating an example of bandwidth assessment for providing video content from a server device to a client device. The video content may be provided in various configurations without deviating from the scope of the present disclose. Generally, the 'configuration' of the video content may refer to any aspect of the video content. Although some example provided herein describe the configuration of the video content in relation to the resolution of the video content, one of ordinary skill in the art will understand that the configuration of the video content can additionally or alternatively include various other aspects of the video content without deviating from the scope of the present disclosure. Other non- limiting examples of the configuration of the video content include brightness, color capability, dynamic range (e.g., high dynamic range), color gamut (e.g., wide color gamut), color range, color spacing, hues, and/or various other suitable aspects pertaining to video content. Prior to providing the video content to the client device, the server device may determine the available bandwidth in the network. Generally, the term 'bandwidth' may refer to a data rate (e.g., bit rate, etc.) of a logical or physical communication path in a communication system. Generally, the term 'available bandwidth' may refer to the data rate (e.g., bit rate, etc.) that is currently obtainable in the network based on current network conditions. The available bandwidth can vary based on various factors, such as channel capability, channel availability, channel efficiency, network congestion, and various other suitable factors. The server device may determine the available bandwidth by various techniques without deviating from the scope of the present disclosure. For example, the server 102 may run a bandwidth test to determine the maximum throughput of the network. As another example, the server 102 may transmit a ping signal to another device (e.g., set top box 114), measure the amount of time that elapsed for receiving a reply signal in response to the ping signal, and determining the available bandwidth of the network based on that measured amount of time. A relatively greater amount of elapsed time may indicate relatively low bandwidth availability in the network, and vice versa.
In some configurations, the available bandwidth in the network may be based on historical bandwidth information associated with the network. For example, the server device (e.g., server 102) may store historical bandwidth information pertaining to the time periods during the day when network congestion is relatively high and, thus, the available bandwidth likely to be relatively low. As another example, the server device (e.g., server 102) may store historical bandwidth information pertaining to the time periods during the day when the number of client devices (e.g., set top box 114, smartphone 124) is relatively low and, thus, the available bandwidth likely to be relatively high. The server device (e.g., server 102) may utilize such historical information to predict the available bandwidth at the current time.
FIG. 2 also includes a graph 202 illustrating an example of the available bandwidth in relation to the bandwidth for streaming video content at various resolutions. One of ordinary skill in the art will understand that the video content may be provided at various resolutions without deviating from the scope of the present disclosure. For example, the video content may be provided at a relatively high resolution (e.g., which is designated in the graph 202 as "Resolutioni") or at any lower resolution (e.g., which is designated in the graph 202 as "Resolution2"). As illustrated in the graph 202, the bandwidth 204 needed to stream the video content at the high resolution (Resolutioni) is higher than the bandwidth 208 needed to stream the video content at the lower resolution (Resolution^ . In some configurations, the high resolution video content may be provided at a resolution sometime referred to as 4K Ultra High Definition (UHD), which may refer to the characteristic of having a horizontal resolution of at least 4,000 pixels. However, one of ordinary skill in the art will understand that this resolution is not necessarily a limitation of the present disclosure, and the aspects described herein can be readily extended to any other resolution currently known or known in the future without deviating from the scope of the present disclosure.
Generally, the term 'video content' may refer to any data that has characteristics known to one of ordinary skill in the art as video, video streams, video clips, moving images, motion pictures, and/or other suitable types of media. In some configurations, video content may include two or more layers, such as a base layer, an enhancement layer, and possibly additional layers. The term 'video content' is not necessarily limited to a specific number of such layers. In some configuration, video content may refer to the base layer. In some configurations, video content may refer to the enhancement layer. In some configurations, video content may refer to a plurality of layers (e.g., the combination of the base layer and the enhancement layer). Generally, the term 'streaming' may refer to the characteristic of providing (e.g., by the server 102) and/or receiving (e.g., by the set top box 114) of video content at a time that is nearly concurrent or nearly simultaneous with a time that the video content is displayed to the viewer. Segments of the video content may be streamed sequentially. For example, a first segment of the video content may be streamed during a first time period, and a second segment of the video content may be streamed during a second time period that immediately follows the first time segment. In some configurations, each segment of the video content may be stored in a short-term memory module (which may sometimes be referred to as a 'buffer') until that segment of the video content is ready to be displayed to the viewer. (For example, the streamed video content may be temporarily stored as stream data 831 in the memory 814 of the client device 802 illustrated in FIG. 8.) Generally, the term 'downloading' may refer to the characteristic of providing (e.g., by the server 102) and/or receiving (e.g., by the set top box 114) of video content at a time that is disassociated with a time that the video content is displayed to the viewer. (For example, the downloaded video content may be temporarily stored as download data 830 in the memory 814 of the client device 802 illustrated in FIG. 8.) For instance, the entire video content may be completely downloaded during a particular day but not viewed by the viewer until the viewer initiates playback, which may happen on that same day or any future day.
In some circumstances, streaming of the high resolution video content requires a bandwidth that cannot be supported by the network. For example, as illustrated in the graph 202, the available bandwidth 206 in the network is lower than the bandwidth 204 needed to stream the video content at the higher resolution (e.g., Resolutioni). In other words, some video content may be at a resolution that is too high to be concurrently streamed as the video content is provided from the server device (e.g., server 102) to the client device (e.g., set top box 114). In such circumstances, the high resolution video content may need to be downloaded to the client device (e.g., set top box 114) prior to being ready for playback for the viewer. However, the viewer may not wish to wait the time needed to download the high resolution video content, especially if the viewer is eager and/or interested to immediately view that video content at any resolution. For example, the viewer may tolerate watching a relatively lower-resolution version of the video content before the high resolution video content has finished downloading.
FIG. 3 is a diagram 300 illustrating an example of the video content provided for streaming and downloading according to various aspects of the present disclosure. In the circumstances described above, the server device determines that the bandwidth to stream the video content at the high resolution (e.g., ResolutionO exceeds the available bandwidth in the network. When the server device determines that the bandwidth to stream the video content according to a first configuration (e.g., ResolutionO exceeds the available bandwidth in the network, the server device may provide the video content to stream according to a second configuration (e.g., Resolution) that is different from the first configuration (e.g., ResolutionO. For example, as illustrated in FIG. 3, the server 102 provides the video content 302 to stream at Resolution (which is lower than ResolutionO when the server 102 determines that the bandwidth the video content at Resolutioni exceeds the available bandwidth in the network. By providing the video content 302 at Resolution, the viewer is provided with 'instant gratification.' Accordingly, the viewer does not have to wait for the video content to completely download before having the opportunity to view that video content.
In some configurations, the server client may also provide the video content to download according to the first configuration concurrently with providing the video content to stream according to the second configuration. For example, as illustrated in FIG. 3, the server 102 provides the video content 304 to download at Resolutioni while concurrently providing the video content 302 to stream at Resolution2. By providing the video content 304 to download at Resolutioni while concurrently providing the video content 302 to stream at Resolution2, the viewer can enjoy the 'instant gratification' associated with almost instantly being able to view the video content while downloading the higher-resolution version of the video content for later viewing.
In some configurations, the server device may determine whether to postpone at least a portion of the video content to download according to the first configuration based on the available bandwidth in the network. For example, under some circumstances (e.g., network congestion, network overloading, etc.), the available bandwidth may fluctuate during a period of time. In such circumstances, the server 102 may determine whether to postpone providing the video content to download at the higher resolution (ResolutionO until network conditions return to normal conditions.
In the configurations described above, the server device provides the video content to download (at ResolutionO and to stream (at Resolution) the video content at the same client device. That is, the server 102 provides the video content 304 to download (at ResolutionO at the set top box 114 and concurrently provides the video content 302 to stream (at Resolution^ also at the set top box 114. However, one of ordinary skill in the art will understand such aspects are not necessarily limitations of the present disclosure. In some configurations, the server device provides the video content to download (at ResolutionO and to stream (at Resolution^ at different client devices. For example, as illustrated in FIG. 3, the server 102 provides the video content 304 (at ResolutionO to download at the set top box 114 and concurrently provides the video content 306 (at Resolution2) to stream at the smartphone 124.
Furthermore, in such configurations, the client devices may be on different networks. As described in greater detail with reference to FIG. 1, the set top box 114 may be included in a LAN that includes the wireless AP 112, and the smartphone may be included in a cellular network that includes the access node 122. (Details pertaining to those networks are provided above with reference to FIG. 1 and therefore will not be repeated.) Accordingly, in such configurations, the server 102 may provide the video content 304 (at ResolutionO to download via the LAN to the set top box 114 and concurrently provide the video content (at Resolution2) to stream via the cellular network to the smartphone 124.
FIG. 4 is another diagram 400 illustrating another example of video content provided for streaming and downloading according to various aspects of the present disclosure. More specifically, the diagram 400 illustrated in FIG. 4 provides an example application of the concepts described herein with respect to a home environment. Various aspects described herein apply to the diagram 400 illustrated in FIG. 4 (but will not be repeated for the sake of brevity).
FIG. 5 is a diagram 500 illustrating an example of various methods and/or processes performed by the server device. At block 502, the server device may determine whether a bandwidth to stream video content according to a first configuration exceeds an available network in the network. For example, referring to the graph 202 illustrated in FIG. 2, the server 102 may determine whether the bandwidth 204 to stream the video content at Resolutioni exceeds the available bandwidth 206 in the network. As described in greater detail herein, the first configuration may provide a resolution associated with 4K UHD.
If the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network, at block 504, the server device may provide the video content to stream according to a second configuration. For example, as illustrated in the graph 202 in FIG. 2, the bandwidth 204 to stream the video content at Resolutioni exceeds the available bandwidth 206 in the network. Accordingly, in some configurations, the server 102 may provide the video content to stream at a resolution lower than 4K UHD.
At block 506, the server device may determine whether to postpone providing the video content to download according to the first configuration based on the available bandwidth in the network. For example, the server 102 may (i) determine how much bandwidth remains after streaming the video content according to the second configuration, and (ii) determine whether that remaining bandwidth is sufficient to support concurrent downloading of the video content according to the first configuration. If sufficient bandwidth does not remain in the network to support concurrent downloading of the video content according to the first configuration, the server 102 may postpone the downloading of the video content according to the first configuration until a future time.
Alternatively, if sufficient bandwidth does remain in the network to support concurrent downloading of the video content according to the first configuration, at block 508, the server device may provide the video content to download at Resolutioni concurrently with the providing of the video content 302 to stream according to the second configuration. For example, referring to FIG. 3, the server 102 may provide the video content 304 to download according to the first configuration while concurrently providing of the video content 302 to stream at Resolution2.
In some configurations, the server device may provide the video content to a first device via a first network to download according to the first configuration and concurrently provide the video content to a second device via a second network to stream according to the second configuration. For example, referring to FIG. 3, the server 102 may provide the video content 304 to the set top box 114 via a LAN to download at Resolutioni while concurrently providing the video content 306 to the smartphone 124 via a cellular network to stream at Resolution^ One of ordinary skill in the art will understand that the sequence and order of operations described herein are provided for illustrative purposes and shall not be construed as a limitation of the present disclosure. The methods and/or processes described with reference to FIG. 5 are provided for illustrative purposes and are not intended to limit the scope of the present disclosure. The methods and/or processes described with reference to FIG. 5 may be performed in sequences different from those illustrated therein without deviating from the scope of the present disclosure. Additionally, some or all of the methods and/or processes described with reference to FIG. 5 may be performed individually and/or together without deviating from the scope of the present disclosure. It is to be understood that the specific order or hierarchy of steps in the methods disclosed is an illustration of exemplary processes. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the methods may be rearranged. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented unless specifically recited therein.
FIG. 6 is a diagram 600 illustrating an example of various methods and/or processes performed by the client device. At block 602, the client device may receive a user input to stream video content according to a first configuration. For example, referring to FIG. 2, the user may provide an input to the set top box 114 to initiate a stream of video content at Resolution i.
At block 604, the client device may receive video content to stream according to a second configuration that is different from the first configuration when a bandwidth to stream the video content according to the first configuration exceeds an available bandwidth in the network. For example, referring to FIGS. 2-3, the set top box 114 may receive the video content 302 to stream at Resolution2 (which is lower than Resolutioni) when the bandwidth 204 to stream the video content according to the first configuration exceeds the available bandwidth 206 in the network. As another example, again referring to FIGS. 2-3, the smartphone 124 may receive the video content 306 to stream at Resolution (which is lower than Resolutioni) when the bandwidth 204 to stream the video content according to the first configuration exceeds the available bandwidth 206 in the network. In some configurations, the set top 114 may be connected to a first network (e.g., LAN), and the smartphone may be connected to a second network (e.g., cellular network), as described in greater detail herein. In some configurations, at block 606, the client device may receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration. For example, referring to FIG. 3, the set top box 114 may receive the video content 304 to download at Resolutioni while concurrently receiving the video content 302 to stream at Resolution2. In some embodiments, as described in greater detail above (e.g., with reference to block 506 in FIG. 5), the client device may postpone the providing of the video content for download based on the available bandwidth in the network. In such embodiments, at least a portion of the video content to stream according to the second configuration is received at a first time, and at least a portion of the video content to download according to the first configuration is received at a time that is after the first time. For example, referring to FIG. 3, the set top box 114 may receive at least a portion of the video content 304 to stream at Resolution2 at Timei, and the set top box 114 may receive at least a portion of the video content 302 to download at Resolutioni at Time2 (wherein Time2 > Timei).
One of ordinary skill in the art will understand that the sequence and order of operations described herein are provided for illustrative purposes and shall not be construed as a limitation of the present disclosure. The methods and/or processes described with reference to FIG. 6 are provided for illustrative purposes and are not intended to limit the scope of the present disclosure. The methods and/or processes described with reference to FIG. 6 may be performed in sequences different from those illustrated therein without deviating from the scope of the present disclosure. Additionally, some or all of the methods and/or processes described with reference to FIG. 6 may be performed individually and/or together without deviating from the scope of the present disclosure. It is to be understood that the specific order or hierarchy of steps in the methods disclosed is an illustration of exemplary processes. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the methods may be rearranged. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented unless specifically recited therein.
FIG. 7 is a diagram 700 illustrating an example of hardware implementation of a server device 702 in accordance with various aspects of the present disclosure. The server device 702 may be the same as the server 102 described in greater detail above. The server device 702 may include a transceiver 710. The transceiver 710 may be configured to receive data and/or transmit data in communication with another apparatus. The transceiver 710 provides enables communication with another apparatus via a wired or wireless transmission medium. The transceiver 710 may be configured to perform such communications using various types of technologies. One of ordinary skill in the art will understand that many types of technologies may perform such communication without deviating from the scope of the present disclosure. The server device 702 may also include a memory 714, one or more processors 704, a computer- readable medium 706, and a bus interface 708. The bus interface 708 may provide an interface between a bus 716 and the transceiver 710. The memory 714, the one or more processors 704, the computer-readable medium 706, and the bus interface 708 may be connected together via the bus 716. The processor 704 may be communicatively coupled to the transceiver 710 and/or the memory 714.
The processor 704 may include a bandwidth circuit 720. The bandwidth circuit 720 may be configured to determine whether a bandwidth to stream the video content according to a first configuration exceeds an available bandwidth in a network. The bandwidth circuit 720 may include hardware components that determine whether the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The bandwidth circuit 720 may also include software modules that provide algorithms for determining whether the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
The processor 704 may also include a transmission circuit 721. The transmission circuit
721 may be configured to provide the video content to stream according to a second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The transmission circuit 721 may include hardware components that provide the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The transmission circuit 721 may also include software modules that provide algorithms for providing the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The transmission circuit 721 may also be configured to provide the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration. The transmission circuit 721 may also include hardware components that providing the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration. The transmission circuit 721 may also include software modules that provide algorithms for providing the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration. In some configurations, the video content may be provided to a first device via a first network to download according to the first configuration, and the video content may be concurrently provided to a second device via a second network to stream according to the second configuration.
The processor 704 may also include a control circuit 722. The control circuit 722 may be configured to determine whether to postpone the providing the video content to download according to the first configuration based on the available bandwidth in the network. The control circuit 722 may include hardware components that determine whether to postpone the providing the video content to download according to the first configuration based on the available bandwidth in the network. The control circuit 722 may also include software modules that provide algorithms for determining whether to postpone the providing the video content to download according to the first configuration based on the available bandwidth in the network. The foregoing description provides a non-limiting example of the processor 704 of the server device 702. Although various circuits have been described above, one of ordinary skill in the art will understand that the processor 704 may also include various other circuits 723 that are in addition and/or alternative(s) to circuits 720, 721, 722. Such other circuits 723 may provide the means for performing any one or more of the functions, methods, processes, features and/or aspects described herein.
The computer-readable medium 706 may include various computer-executable instructions. The computer-executable instructions may include computer-executable code configured to perform various functions and/or enable various aspects described herein. The computer-executable instructions may be executed by various hardware components (e.g., processor 704) of the server device 702. The instructions may be a part of various software programs and/or software modules. The computer-readable medium 706 may include bandwidth instructions 740. The bandwidth instructions 740 may include computer-executable instructions configured to determine whether the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The computer-readable medium 706 may also include transmission instructions 721. The transmission instructions 721 may include computer-executable instructions configured to provide the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The transmission instructions 721 may also include computer- executable instructions configured to provide the video content to download according to the first configuration concurrently with the providing of the video content to stream according to the second configuration. In some configurations, the video content may be provided to a first device via a first network to download according to the first configuration, and the video content may be concurrently provided to a second device via a second network to stream according to the second configuration. The computer-readable medium 706 may also include control instructions 722. The control instructions 722 may include computer-executable instructions configured to determine whether to postpone the providing the video content to download according to the first configuration based on the available bandwidth in the network. The foregoing description provides a non-limiting example of the computer-readable medium 706 of the server device 702. Although various instructions (e.g., computer-executable code) have been described above, one of ordinary skill in the art will understand that the computer-readable medium 706 may also include various other instructions 743 that are in addition and/or alternative(s) to instructions 740, 741, 742. Such other instructions 743 may include computer-executable code configured for performing any one or more of the functions, methods, processes, features and/or aspects described herein.
The memory 714 may include various memory modules. The memory modules may be configured to store, and have read therefrom, various values and/or information by the processor 704, or any of its circuits 720, 721, 722, 723. The memory modules may also be configured to store, and have read therefrom, various values and/or information upon execution of the computer-executable code included in the computer-readable medium 706, or any of its instructions 740, 741, 742, 743. The memory 714 may include download data 730. The download data 730 may include video content that is provided to a client device according to the first configuration, as described in greater detail herein. The memory 714 may also include stream data. The stream data 731 may include video content that is provided to a client device according to the second configuration, as described in greater detail herein. The foregoing is an example of some data included in the memory 714 of the server device 702. One of ordinary skill in the art will understand that the memory 714 may also include various other data (not shown) that is in addition and/or alternative to the aforementioned data 730, 731. Such other data (not shown) may include data performing any one or more of the functions, methods, processes, features and/or aspects described herein.
One of ordinary skill in the art will also understand that the server device 702 may include alternative and/or additional features without deviating from the scope of the present disclosure. In accordance with various aspects of the present disclosure, an element, or any portion of an element, or any combination of elements may be implemented with a processing system that includes one or more processors 704. Examples of the one or more processors 704 include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. The processing system may be implemented with a bus architecture, represented generally by the bus 716 and bus interface 708. The bus 716 may include any number of interconnecting buses and bridges depending on the specific application of the processing system and the overall design constraints. The bus 716 may link together various circuits including the one or more processors 704, the memory 714, and the computer- readable media 706. The bus 716 may also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art.
The one or more processors 704 may be responsible for managing the bus 716 and general processing, including the execution of software stored on the computer-readable medium 706. The software, when executed by the one or more processors 704, causes the processing system to perform the various functions described below for any one or more apparatuses. The computer-readable medium 706 may also be used for storing data that is manipulated by the one or more processors 704 when executing software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. The software may reside on the computer-readable medium 706. The computer-readable medium 706 may be a non-transitory computer-readable medium. A non-transitory computer-readable medium includes, by way of example, a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD)), a smart card, a flash memory device (e.g., a card, a stick, or a key drive), a random access memory (RAM), a read only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a register, a removable disk, and any other suitable medium for storing software and/or instructions that may be accessed and read by a computer. The computer-readable medium 706 may also include, by way of example, a carrier wave, a transmission line, and any other suitable medium for transmitting software and/or instructions that may be accessed and read by a computer. The computer-readable medium 706 may reside in the processing system, external to the processing system, or distributed across multiple entities including the processing system. The computer-readable medium 706 may be embodied in a computer program product. By way of example and not limitation, a computer program product may include a computer-readable medium in packaging materials. Those skilled in the art will recognize how best to implement the described functionality presented throughout this disclosure depending on the particular application and the overall design constraints imposed on the overall system.
FIG. 8 is a diagram 800 illustrating an example of hardware implementation of a client device 802 in accordance with various aspects of the present disclosure. The client device 802 may be the same as the set top box 114, the smartphone 124, and/or any other suitable device configured to display video content in accordance with aspects of the present disclosure. In some configurations, the client device 802 may include a user interface 812. The user interface may be configured to receive inputs from a user of the client device 802. The user interface also may be configured to display information (e.g., video content). (For example, the user interface 812 of the client device 802 may be similar to the display 126 of the smartphone 124 illustrated in FIGS. 1-3.) The client device 802 may include a transceiver 810. The transceiver 810 may be configured to receive data and/or transmit data in communication with another apparatus. The transceiver 810 enables communication with another apparatus via a wired or wireless transmission medium. The transceiver 810 may be configured to perform such communications using various types of technologies. One of ordinary skill in the art will understand that many types of technologies may perform such communication without deviating from the scope of the present disclosure. The client device 802 may also include a memory 814, one or more processors 804, a computer-readable medium 806, and a bus interface 808. The bus interface 808 may provide an interface between a bus 816 and the transceiver 810. The memory 814, the one or more processors 804, the computer-readable medium 806, and the bus interface 808 may be connected together via the bus 816. The processor 804 may be communicatively coupled to the transceiver 810 and/or the memory 814.
The processor 804 may include an input circuit 820. The input circuit 820 may be configured to receive a user input to stream the video content according to the first configuration. The input circuit 820 may include hardware components that receive the user input to stream the video content according to the first configuration. The input circuit 820 may also include software modules that provide algorithms for receiving the user input to stream the video content according to the first configuration.
The processor 804 may also include a reception circuit 821. The reception circuit 821 may be configured to receive the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The reception circuit 821 may include hardware components that receive the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The reception circuit 821 may also include software modules that provide algorithms for receiving the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network.
The reception circuit 821 may also be configured to receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration. The reception circuit 821 may also include hardware components that receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration. The reception circuit 821 may also include software modules that provide algorithms for receiving the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration. In some configurations, at least a portion of the video content to stream according to the second configuration is received at a first time, and at least a portion of the video content to download according to the first configuration is received at a time that is after the first time, as described in greater detail above. The foregoing description provides a non-limiting example of the processor 804 of the client device 802. Although various circuits have been described above, one of ordinary skill in the art will understand that the processor 804 may also include various other circuits 822 that are in addition and/or alternative(s) to circuits 820, 821. Such other circuits 822 may provide the means for performing any one or more of the functions, methods, processes, features and/or aspects described herein.
The computer-readable medium 806 may include various computer-executable instructions. The computer-executable instructions may include computer-executable code configured to perform various functions and/or enable various aspects described herein. The computer-executable instructions may be executed by various hardware components (e.g., processor 804) of the client device 802. The instructions may be a part of various software programs and/or software modules. The computer-readable medium 806 may include input instructions 840. The input instructions 840 may include computer-executable instructions configured to receive the user input to stream the video content according to the first configuration. The computer-readable medium 806 may also include reception instructions 841. The reception instructions 841 may include computer-executable instructions configured to receive the video content to stream according to the second configuration that is different from the first configuration when the bandwidth to stream the video content according to the first configuration exceeds the available bandwidth in the network. The reception instructions 841 may also include computer-executable instructions configured to receive the video content to download according to the first configuration concurrently with the receiving of the video content to stream according to the second configuration. In some configurations, at least a portion of the video content to stream according to the second configuration is received at a first time, and at least a portion of the video content to download according to the first configuration is received at a time that is after the first time, as described in greater detail above. The foregoing description provides a non-limiting example of the computer-readable medium 806 of the client device 802. Although various instructions (e.g., computer-executable code) have been described above, one of ordinary skill in the art will understand that the computer-readable medium 806 may also include various other instructions 842 that are in addition and/or alternative(s) to instructions 840, 841. Such other instructions 842 may include computer-executable code configured for performing any one or more of the functions, methods, processes, features and/or aspects described herein.
The memory 814 may include various memory modules. The memory modules may be configured to store, and have read therefrom, various values and/or information by the processor 804, or any of its circuits 820, 821, 822. The memory modules may also be configured to store, and have read therefrom, various values and/or information upon execution of the computer- executable code included in the computer-readable medium 806, or any of its instructions 840, 841, 842. The memory 814 may include download data 830. The download data 830 may include video content that is received from a server device according to the first configuration, as described in greater detail herein. The memory 814 may also include stream data. The stream data 831 may include video content that is received from a server device according to the second configuration, as described in greater detail herein. The foregoing is an example of some data included in the memory 814 of the client device 802. One of ordinary skill in the art will understand that the memory 814 may also include various other data (not shown) that is in addition and/or alternative to the aforementioned data 830, 831. Such other data (not shown) may include data performing any one or more of the functions, methods, processes, features and/or aspects described herein.
One of ordinary skill in the art will also understand that the client device 802 may include alternative and/or additional features without deviating from the scope of the present disclosure. In accordance with various aspects of the present disclosure, an element, or any portion of an element, or any combination of elements may be implemented with a processing system that includes one or more processors 804. Examples of the one or more processors 804 include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. The processing system may be implemented with a bus architecture, represented generally by the bus 816 and bus interface 808. The bus 816 may include any number of interconnecting buses and bridges depending on the specific application of the processing system and the overall design constraints. The bus 816 may link together various circuits including the one or more processors 804, the memory 814, and the computer- readable media 806. The bus 816 may also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art.
The one or more processors 804 may be responsible for managing the bus 816 and general processing, including the execution of software stored on the computer-readable medium 806. The software, when executed by the one or more processors 804, causes the processing system to perform the various functions described below for any one or more apparatuses. The computer-readable medium 806 may also be used for storing data that is manipulated by the one or more processors 804 when executing software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. The software may reside on the computer-readable medium 806. The computer-readable medium 806 may be a non-transitory computer-readable medium. A non-transitory computer-readable medium includes, by way of example, a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD)), a smart card, a flash memory device (e.g., a card, a stick, or a key drive), a random access memory (RAM), a read only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a register, a removable disk, and any other suitable medium for storing software and/or instructions that may be accessed and read by a computer. The computer-readable medium 806 may also include, by way of example, a carrier wave, a transmission line, and any other suitable medium for transmitting software and/or instructions that may be accessed and read by a computer. The computer-readable medium 806 may reside in the processing system, external to the processing system, or distributed across multiple entities including the processing system. The computer-readable medium 806 may be embodied in a computer program product. By way of example and not limitation, a computer program product may include a computer-readable medium in packaging materials. Those skilled in the art will recognize how best to implement the described functionality presented throughout this disclosure depending on the particular application and the overall design constraints imposed on the overall system.
The foregoing description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but are to be accorded the full scope consistent with the language of the claims, wherein reference to an element in the singular is not intended to mean "one and only one" unless specifically so stated, but rather "one or more." Unless specifically stated otherwise, the term "some" refers to one or more. A phrase referring to "at least one of a list of items refers to any combination of those items, including single members. As an example, "at least one of: a, b, or c" is intended to cover: a; b; c; a and b; a and c; b and c; and a, b and c. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. § 112(f), unless the element is expressly recited using the phrase "means for" or, in the case of a method claim, the element is recited using the phrase "step for."

Claims

1. A method (500) of providing video content, the method (500) comprising:
determining (502) whether a bandwidth (204) to stream the video content according to a first configuration exceeds an available bandwidth (206) in a network;
providing (504) the video content (302, 306) to stream according to a second configuration that is different from the first configuration when the bandwidth (204) to stream the video content according to the first configuration exceeds the available bandwidth (206) in the network; and
providing (508) the video content (304) to download according to the first configuration concurrently with the providing (504) of the video content (302, 306) to stream according to the second configuration.
2. The method (500) of claim 1, wherein the providing (508) the video content (304) to download according to the first configuration concurrently with the providing (504) of the video content (302, 306) to stream according to the second configuration comprises:
providing the video content (304) to a first device (114) via a first network to download according to the first configuration; and
concurrently providing the video content (306) to a second device (124) via a second network to stream according to the second configuration.
3. The method (500) of claim 2, wherein:
the first network comprises a local area network; and
the second network comprises a cellular network.
4. The method (500) of claim 1, further comprising:
determining (506) whether to postpone the providing the video content (304) to download according to the first configuration based on the available bandwidth (206) in the network.
5. The method (500) of claim 1, wherein the available bandwidth (206) is based on historical bandwidth information associated with the network.
6. The method (500) of claim 1, wherein the first configuration comprises a horizontal resolution of at least 4,000 (4K) pixels.
7. An apparatus (702) configured to provide video content, the apparatus (702) comprising: a memory (714) for storing data;
at least one processor (704) communicatively coupled to the memory (714) and configured to:
determine (502) whether a bandwidth (204) to stream the video content according to a first configuration exceeds an available bandwidth (206) in a network;
provide (504) the video content (302, 306) to stream according to a second configuration that is different from the first configuration when the bandwidth (204) to stream the video content according to the first configuration exceeds the available bandwidth (206) in the network; and
provide (508) the video content (304) to download according to the first configuration concurrently with the providing (504) of the video content (302, 306) to stream according to the second configuration.
8. The apparatus (702) of claim 7, wherein the providing (508) the video content (304) to download according to the first configuration concurrently with the providing (504) of the video content (302, 306) to stream according to the second configuration comprises:
providing the video content (304) to a first device (114) via a first network to download according to the first configuration; and
concurrently providing the video content (306) to a second device (124) via a second network to stream according to the second configuration.
9. The apparatus (702) of claim 8, wherein:
the first network comprises a local area network; and
the second network comprises a cellular network.
10. The apparatus (702) of claim 7, wherein the at least one processor (704) is further configured to:
determine (506) whether to postpone the providing the video content (304) to download according to the first configuration based on the available bandwidth (206) in the network.
11. The apparatus (702) of claim 7, wherein the available bandwidth (206) is based on historical bandwidth information associated with the network.
12. The apparatus (702) of claim 7, wherein the first configuration comprises a horizontal resolution of at least 4,000 (4K) pixels.
13. A computer-readable medium (706) comprising computer-executable instructions configured to:
determine (502) whether a bandwidth (204) to stream a video content according to a first configuration exceeds an available bandwidth (206) in a network;
provide (504) the video content (302, 306) to stream according to a second configuration that is different from the first configuration when the bandwidth (204) to stream the video content according to the first configuration exceeds the available bandwidth (206) in the network; and
provide (508) the video content (304) to download according to the first configuration concurrently with the providing (504) of the video content (302, 306) to stream according to the second configuration.
14. The computer-readable medium (706) of claim 13, wherein the providing (508) the video content (304) to download according to the first configuration concurrently with the providing (504) of the video content (302, 306) to stream according to the second configuration comprises: providing the video content (304) to a first device (114) via a first network to download according to the first configuration; and
concurrently providing the video content (306) to a second device (124) via a second network to stream according to the second configuration.
15. The computer-readable medium (706) of claim 14, wherein:
the first network comprises a local area network; and
the second network comprises a cellular network.
16. The computer-readable medium (706) of claim 13, wherein the computer-executable instructions are further configured to:
determine (506) whether to postpone the providing the video content (304) to download according to the first configuration based on the available bandwidth (206) in the network.
17. The computer-readable medium (706) of claim 13, wherein the available bandwidth (206) is based on historical bandwidth information associated with the network.
18. The computer-readable medium (706) of claim 13, wherein the first configuration comprises a horizontal resolution of at least 4,000 (4K) pixels.
19. A method (600) of receiving video content, the method (600) comprising:
receiving (602) a user input to stream the video content according to a first configuration; receiving (604) the video content (302, 306) to stream according to a second configuration that is different from the first configuration when a bandwidth (204) to stream the video content according to the first configuration exceeds an available bandwidth (206) in a network; and receiving (606) the video content (304) to download according to the first configuration concurrently with the receiving (604) of the video content (302, 306) to stream according to the second configuration.
20. The method (600) of claim 19, wherein:
at least a portion of the video content (302, 306) to stream according to the second configuration is received at a first time; and
at least a portion of the video content (304) to download according to the first configuration is received at a time that is after the first time.
21. The method (600) of claim 19, wherein the available bandwidth (206) is based on historical bandwidth information associated with the network.
22. The method (600) of claim 19, wherein the first configuration comprises a horizontal resolution of at least 4,000 (4K) pixels.
23. An apparatus (802) configured to receive video content, the apparatus (802) comprising: a memory (814) for storing data; and
at least one processor (804) communicatively coupled to the memory (814) and configured to:
receive (602) a user input to stream the video content according to a first configuration;
receive (604) the video content (302, 306) to stream according to a second configuration that is different from the first configuration when a bandwidth (204) to stream the video content according to the first configuration exceeds an available bandwidth (206) in a network; and
receive (606) the video content (304) to download according to the first configuration concurrently with the receiving (604) of the video content (302, 306) to stream according to the second configuration.
24. The apparatus (802) of claim 23, wherein:
at least a portion of the video content (302, 306) to stream according to the second configuration is received at a first time; and
at least a portion of the video content (304) to download according to the first configuration is received at a time that is after the first time.
25. The apparatus (802) of claim 23, wherein the available bandwidth (206) is based on historical bandwidth information associated with the network.
26. The apparatus (802) of claim 23, wherein the first configuration comprises a horizontal resolution of at least 4,000 (4K) pixels.
27. A computer-readable medium (806) comprising computer-executable instructions configured to:
receive (602) a user input to stream video content according to a first configuration;
receive (604) the video content (302, 306) to stream according to a second configuration that is different from the first configuration when a bandwidth (204) to stream the video content according to the first configuration exceeds an available bandwidth (206) in a network; and
receive (606) the video content (304) to download according to the first configuration concurrently with the receiving (604) of the video content (302, 306) to stream according to the second configuration.
28. The computer-readable medium (806) of claim 27, wherein:
at least a portion of the video content (302, 306) to stream according to the second configuration is received at a first time; and
at least a portion of the video content (304) to download according to the first configuration is received at a time that is after the first time.
29. The computer-readable medium (806) of claim 27, wherein the available bandwidth (206) is based on historical bandwidth information associated with the network.
30. The computer-readable medium (806) of claim 27, wherein the first configuration comprises a horizontal resolution of at least 4,000 (4K) pixels.
PCT/US2015/037421 2014-06-24 2015-06-24 Streaming and downloading of video content according to available bandwidth WO2015200484A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462016520P 2014-06-24 2014-06-24
US62/016,520 2014-06-24
US201462060341P 2014-10-06 2014-10-06
US62/060,341 2014-10-06

Publications (1)

Publication Number Publication Date
WO2015200484A1 true WO2015200484A1 (en) 2015-12-30

Family

ID=53719945

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/037421 WO2015200484A1 (en) 2014-06-24 2015-06-24 Streaming and downloading of video content according to available bandwidth

Country Status (1)

Country Link
WO (1) WO2015200484A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600668A (en) * 2019-01-10 2019-04-09 京东方科技集团股份有限公司 VR helmet, display system and method
US20220248103A1 (en) * 2019-05-20 2022-08-04 Sky Italia S.R.L. Device, method and program for computer and system for distributing content based on the quality of experience
CN117478934A (en) * 2023-12-26 2024-01-30 南昌航天广信科技有限责任公司 Video stream data transmission method and system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204057A1 (en) * 2006-02-28 2007-08-30 Maven Networks, Inc. Systems and methods for providing a similar offline viewing experience of online web-site content
EP1853061A1 (en) * 2006-05-05 2007-11-07 APS-ASTRA Platform Services GmbH Digital television and/or audio reception device and mobile processing unit
US20100325193A1 (en) * 2009-06-17 2010-12-23 Microsoft Corporation Dynamic media asset delivery
US20120144444A1 (en) * 2010-12-06 2012-06-07 Hunt Neil D Variable Bit Video Streams for Adaptive Streaming
WO2012166094A1 (en) * 2011-05-27 2012-12-06 Thomson Licensing Method, apparatus and system for multiple screen media experience
US20140052846A1 (en) * 2012-08-20 2014-02-20 Google Inc. Adaptive video streaming over a content delivery network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204057A1 (en) * 2006-02-28 2007-08-30 Maven Networks, Inc. Systems and methods for providing a similar offline viewing experience of online web-site content
EP1853061A1 (en) * 2006-05-05 2007-11-07 APS-ASTRA Platform Services GmbH Digital television and/or audio reception device and mobile processing unit
US20100325193A1 (en) * 2009-06-17 2010-12-23 Microsoft Corporation Dynamic media asset delivery
US20120144444A1 (en) * 2010-12-06 2012-06-07 Hunt Neil D Variable Bit Video Streams for Adaptive Streaming
WO2012166094A1 (en) * 2011-05-27 2012-12-06 Thomson Licensing Method, apparatus and system for multiple screen media experience
US20140052846A1 (en) * 2012-08-20 2014-02-20 Google Inc. Adaptive video streaming over a content delivery network

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600668A (en) * 2019-01-10 2019-04-09 京东方科技集团股份有限公司 VR helmet, display system and method
CN109600668B (en) * 2019-01-10 2021-03-30 京东方科技集团股份有限公司 VR head-mounted device, display system and method
US20220248103A1 (en) * 2019-05-20 2022-08-04 Sky Italia S.R.L. Device, method and program for computer and system for distributing content based on the quality of experience
CN117478934A (en) * 2023-12-26 2024-01-30 南昌航天广信科技有限责任公司 Video stream data transmission method and system
CN117478934B (en) * 2023-12-26 2024-04-16 南昌航天广信科技有限责任公司 Video stream data transmission method and system

Similar Documents

Publication Publication Date Title
AU2017363882B2 (en) Systems and methods for streaming media
US10110393B2 (en) Protocol switching over multi-network interface
CN104919780B (en) Method, server and the medium of elastic response time is realized to hypertext transfer protocol (HTTP) request
US20200296435A1 (en) Method and apparatus for segmenting data
US20120083256A1 (en) System and Method for Managing Data Sharing Over a Hotspot Network
US9367125B2 (en) Terminal apparatus for shooting and distributing video data and video-data distribution method
EP2854342A1 (en) Multi-screen interaction method, apparatus, and terminal device
KR102169212B1 (en) Computerized system and method for pushing information between devices
US8824676B2 (en) Streaming video to cellular phones
US10178431B2 (en) Hybrid stream delivery
JP2014527730A (en) Method and apparatus for preloading information over a communication network
US10412055B2 (en) Enabling transmission encryption
US20190215354A1 (en) Processing of live multimedia content over a communication network
US10419798B2 (en) Method and apparatus for just-in-time transcoding
WO2015200484A1 (en) Streaming and downloading of video content according to available bandwidth
US20150341634A1 (en) Method, apparatus and system to select audio-video data for streaming
US11349887B2 (en) Estimating network data streaming rate
US20170171339A1 (en) Advertisement data transmission method, electrnoic device and system
US20190082230A1 (en) Controlling internet of things (iot) devices and aggregating media content through a common device
US20140372621A1 (en) AirSharing Method, AirSharing Apparatus, and Terminal Device
TW201601493A (en) Method for operating a network equipment arranged along a transmission path between a client terminal and at least one server, and corresponding network equipment
CN104349202A (en) Video acquisition method and device thereof
KR102462200B1 (en) Method and Apparatus for Distributed Bottleneck Adjustment in Dash with Resource Pricing
TW201501526A (en) Method for providing a content part of a multimedia content to a client terminal, corresponding cache
US10986156B1 (en) Quality prediction apparatus, quality prediction method and program

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

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

Country of ref document: EP

Kind code of ref document: A1