Tiered content streaming
Abstract
Techniques for providing live content at different quality levels to a user device include advertising content availability at multiple quality levels for selection by the user device, receiving a quality level selection from the user device, wherein the quality level selection matches one of the advertised multiple quality levels, determining whether the received quality level selection differs from a currently used quality level, when it is determined that the received quality level selection is different from the currently used quality level, reconfiguring a transcoder to transcode the live content to only the received quality level, and updating a metafile to include a first quality level at a first bitrate lower than a bitrate for the received quality level selection and a second quality level at a second bitrate higher than the bitrate for the received quality level selection.
Claims
exact text as granted — not AI-modifiedWhat is claimed is what is disclosed and illustrated, including:
1 . A method of providing live content at different quality levels to a remote user device, comprising:
transmitting to a remote user device a plurality of quality levels at which content is available for selection by the remote user device; receiving a quality level selection from the remote user device, wherein the quality level selection matches one of the multiple quality levels transmitted to the remote user device; determining that the received quality level selection differs from a currently used quality level for the remote user device; in response to determining that the received quality level selection differs from the currently used quality level for the remote user device, reconfiguring a transcoder to transcode the live content to only the received quality level; receiving a message from the user device, the message comprising device capability information, the device capability information indicating an acceptable segment-to-segment bitrate change; and transmitting to the remote user device an updated plurality of quality levels including a first quality level at a first bitrate lower than a bitrate of the quality level selection received from the remote use device and a second quality level at a second bitrate higher than the bitrate of the quality level selection received from the remote user device; wherein the first quality level and the second quality level are selected in response responsive to the device capability information such that magnitudes of each of a first difference between the bitrates associated with the received quality level and the first quality level and a second difference between the bitrates associated with the received quality level and the second quality level are less than the acceptable segment-to-segment bitrate change.
2 . The method of claim 1 , wherein three quality levels are transmitted to the remote user device.
3 . The method of claim 1 , further comprising:
storing the transcoded live content as program segments; and allowing the remote user device to download the program segments.
4 . The method of claim 3 , wherein each program segment has a pre-determined time duration.
5 . The method of claim 1 , further comprising:
receiving the live content on a first network interface comprising a broadband cable interface, a satellite interface, a telephone line interface, a fiber optic interface or a cellular wireless interface.
6 . The method of claim 5 , wherein quality levels are transmitted over a second network interface that is different from the first network interface.
7 . The method of claim 5 , wherein the live content received over the first network interface is stored in a volatile memory.
8 . The method of claim 1 , further comprising:
monitoring a plurality of past quality level selections from the user device to determine a trend; and selecting the first quality level and the second quality level based on the trend.
9 . An apparatus for providing live content for viewing, comprising:
a first network interface that receives live content; a second network interface, different from the first network interface, that communicatively couples the apparatus with a user device; a transcoder that transcodes content; and circuitry in communication with the first network interface, the second network interface and the transcoder, the circuitry being configured to
transmit, over a second network interface, availability of the live content in a list comprising a plurality of entries, each entry including a playout rate;
receive, over the second network interface, a viewing request from a user device, the viewing request including a desired playout rate;
control the transcoder to transcode the live content from a rate at which the live content is received over the first network interface to a current output rate matching the desired playout rate and store output of the transcoder as content segments in a memory;
make the content segments available to the user device;
receive a message from the use device, the message comprising device capability information indicating an acceptable segment-to-segment bitrate change; and
transmit an updated list including an entry having the current output rate, an entry a first playout rate that is greater than the current output rate and an entry having a second playout rate that is less than the current output rate;
wherein the first playout rate and the second playout rate are based on the device capability information such that magnitudes of each of a first difference between a current output rate and the first playout rate and a second difference between the current output rate and the second playout rate are less than the acceptable segment-to-segment bitrate change.
10 . The apparatus of claim 9 , wherein the circuitry includes one or more programmable processors.
11 . The apparatus of claim 9 , wherein the circuitry includes special purpose logic circuitry.
12 . The apparatus of claim 9 , wherein the circuitry includes a field programmable gate array.
13 . The apparatus of claim 9 , wherein the updated list comprises exactly three bitrate entries.
14 . The apparatus of claim 9 , wherein the first network interface comprises a satellite broadcast network interface, a coaxial cable interface, a wireless cellular data network interface or a digital subscriber loop (DSL) network interface.
15 . The apparatus of claim 14 , wherein the second network interface comprises an Ethernet interface or a wireless network interface.
16 . A computer program product comprising a non-transitory computer-readable medium having code stored thereon, the code, when executed, causing a processor to implement a method of streaming live content, the method comprising:
controlling a transcoder to receive live content and output transcoded live content at a current quality level, wherein the current quality level is selected based on a content playback request from a user device; storing transcoded live content at a local memory as individually addressable segments, wherein each segment has a playback duration; transmitting a message to the user device indicating that the live content is available at least at the current quality level and at least two additional quality levels, without having any locally stored content segments corresponding to the at least two additional quality levels, receiving a message from the user device, the message comprising device capability information the device capability information indicates an acceptable segment-to-segment bitrate change; and selecting a first quality level for the at least two additional quality levels and a second quality level for the at least two additional quality levels based on the device capability information such each of the magnitudes of a first difference between bitrates associated with the current quality level and the first quality level and a second difference between bitrates associated with the current quality level and the second quality level are less than the acceptable segment-to-segment bitrate change.
17 . The computer program product of claim 16 , wherein the method further comprises:
transmitting, in response to a request received from the user device, a stored segment from the local memory.
18 . The computer program product of claim 17 , wherein the method further comprises:
deleting, in real time, the segment after transmitting the segment to the user device.
19 . An apparatus for presenting a live content to a user, the apparatus comprising:
a memory that stores program instructions; a network interface over which the apparatus receives the live content and associated metadata; and a processor that reads and executes program instructions from the memory to:
receive, from the user, a viewing request for the live content;
initiate a streaming session with a server of the live content, wherein the streaming session comprises downloading the live content as multiple program segments, each having an encoding bitrate;
communicate a bitrate change from one program segment to next that is acceptable to the apparatus;
present the downloaded program segments to the user;
receive a message from the user device, the message comprising device capability information having an acceptable segment-to-segment bitrate change;
select a first quality level and a second quality level based on the device capability information such that each of the magnitudes of a first difference between bitrates associated with a current quality level and the first quality level and a second difference between bitrates associated with the current quality level and the second quality level are less than the acceptable segment-to-segment bitrate change; and
transmit the first and second quality levels to the user device.
20 . The apparatus of claim 19 , wherein the processor also reads and executes program instructions from the memory to:
monitor an operational parameter; and select a program segment for download based on the operational parameter.
21 . The apparatus of claim 20 , wherein the processor also reads and executes program instructions from the memory to:
receive a time interval value; and control times of program segment downloads so that start of a next program segment download is at least the time interval value after a previous segment download starts.
22 . The apparatus of claim 20 , wherein the operational parameter comprises an available network bandwidth.
23 . The apparatus of claim 19 , wherein the processor also reads and executes program instructions from the memory to:
provide a quality feedback to the server.Join the waitlist — get patent alerts
Track US2017054775A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.