Apparatus, system, and method for adaptive-rate shifting of streaming content

US10757156B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10757156-B2
Application numberUS-201916291343-A
CountryUS
Kind codeB2
Filing dateMar 4, 2019
Priority dateApr 30, 2004
Publication dateAug 25, 2020
Grant dateAug 25, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An apparatus for adaptive-rate shifting of streaming content includes an agent controller module configured to simultaneously request at least portions of a plurality of streamlets. The agent controller module is further configured to continuously monitor streamlet requests and subsequent responses, and accordingly request higher or lower quality streamlets. A staging module is configured to stage the streamlets and arrange the streamlets for playback on a content player. A system includes a data communications network, a content server coupled to the data communications network and having a content module configured to process content and generate a plurality of high and low quality streams, and the apparatus. A method includes simultaneously requesting at least portions of a plurality of streamlets, continuously monitoring streamlet requests and subsequent responses, and accordingly requesting higher or lower quality streamlets, and staging the streamlets and arranging the streamlets for playback on a content player.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus for rendering a video that is adaptively received as a digital stream from a video server over a network, the apparatus comprising; a media player operating on the apparatus, wherein the media player is configured to stream the video from the video server via at least one transmission control protocol (TCP) connection over the network, wherein the video server stores multiple different copies of the video encoded at different bit rates as multiple sets of streamlets, wherein each of the streamlets yields a different portion of the video on playback, wherein the streamlets across the different copies yield the same portions of the video on playback, and wherein the streamlets in the different copies are aligned in time such that the streamlets that play back the same portion of the video for the different copies each begin at the same playback time in relation to the beginning of the video, and wherein the media player streams the video by: requesting sequential streamlets of one of the copies from the video server according to the playback times of the streamlets by transmitting hypertext transport protocol (HTTP) GET requests that identify the selected streamlets stored by the video server, wherein the sequential streamlets are selected by the media player from the based upon successive determinations to shift the playback quality to a higher or lower quality one of the different copies of the video; repeatedly generating, by the media player, a factor relating to the performance of the network that is indicative of an ability to sustain the streaming of the video; adapting the successive determinations to shift the playback quality based on the factor to achieve continuous playback of the video using the streamlets of the highest quality copy of the video that is determined to be sustainable at that time; and presenting the video for playback by providing the requested streamlets in order of ascending start time. 2. The apparatus of claim 1 , wherein the apparatus is configured to establish multiple Transmission Control Protocol (TCP) connections with a content server, and request streamlets of varying bitrates. 3. The apparatus of claim 1 , wherein each streamlet further comprises a portion of a content file provided by the server. 4. The apparatus of claim 1 , wherein the requesting the sequential streamlets comprises the apparatus transmitting hypertext transport protocol (HTTP) GET requests for selected streamlets, wherein each of the HTTP GET requests identifies the separate file stored by the video server that corresponds to the requested streamlet. 5. The apparatus of claim 1 wherein each of the streamlets of each of the different copies is independently requestable and playable by the apparatus. 6. The apparatus of claim 4 , wherein the requesting of the sequential streamlets comprises the end user device transmitting hypertext transport protocol (HTTP) GET requests for selected streamlets. 7. The apparatus of claim 1 wherein each of the streamlets in each of the plurality of different copies is a separate file stored by the video server. 8. The apparatus of claim 1 wherein the media player upshifts to a higher quality one of the different copies when the factor is greater than a first threshold and downshifts to a lower quality one of the different copies when the factor is less than a second threshold. 9. The apparatus of claim 1 , wherein the requesting the sequential streamlets comprises the apparatus transmitting hypertext transport protocol (HTTP) GET requests for selected streamlets, and wherein each of the HTTP GET requests identifies a separately-identifiable portion of the one or more files that corresponds to the requested streamlet. 10. The apparatus of claim 1 , wherein the apparatus is configured to initially request low quality streamlets to enable instant playback of the content file, and subsequent upshifting according to the performance factor. 11. The end user device of claim 1 wherein each of the streamlets in each of the plurality of different copies is a separately-identifiable portion of one or more files stored by the video server. 12. The apparatus of claim 1 wherein the apparatus is a mobile computing device comprising a processor and a non-transitory data storage. 13. A method executable by an end user device to stream a video received via a connection with a server over a network, the method comprising: requesting, by the end user device, wherein the end user device streams the video from the video server via at least one transmission control protocol (TCP) connection over the network, a plurality of sequential streamlets of one of the copies from the server based on playback times of the streamlets wherein multiple different copies of the video encoded at different bit rates are stored as multiple sets of streamlets on the server, wherein each of the streamlets yields a different portion of the video on playback, wherein the streamlets across the different copies yield the same portions of the video on playback, and wherein each of the streamlets comprises a playback time such that each of the streamlets for each of the different copies that encode the same portion of the video begins at the same playback time in relation to the beginning of the video, wherein the end user device requests the streamlets by transmitting hypertext transport protocol (HTTP) GET requests that each identify one of the requested streamlets stored by the server; and wherein the end user device streams the video by: repeatedly generating, by the end user device, a factor that is indicative of an ability to sustain the streaming of the video; making successive determinations by the end user device to shift the playback quality based on the factor to achieve continuous playback of the video using the streamlets of the highest quality copy determined sustainable at that time; and presenting the video by playing back the requested media streamlets on the end user device in order of ascending playback time. 14. The method of claim 13 wherein the making of the successive determinations to shift comprises upshifting to a higher quality one of the different copies when the at least one factor is greater than a first threshold and downshifting to a lower quality one of the different copies when the at least one factor is less than a second threshold. 15. The method of claim 14 wherein each of the streamlets of each of the different copies is independently requestable and playable by the end user device. 16. The method of claim 13 wherein each of the streamlets in each of the plurality of different copies is a separately-identifiable portion of one or more files stored by the video server. 17. The method of claim 16 wherein the requesting of the sequential streamlets comprises the end user device transmitting hypertext transport protocol (HTTP) GET requests for selected streamlets, and wherein each of the HTTP GET requests identifies the separately-identifiable portion of the one or more files that corresponds to the requested streamlet. 18. The method of claim 13 , wherein the video captures a live event, and wherein the streamlets of the different copies are available to the end user device while the live event is occurring.

Assignees

Inventors

Classifications

  • adapting media to device capabilities · CPC title

  • Media network packet handling · CPC title

  • involving splicing one content stream with another content stream, e.g. for substituting a video clip · CPC title

  • Digital computers in general (details G06F1/00 – G06F13/00); Data processing equipment in general · CPC title

  • G06F15/16Primary

    Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs {(coordinating program control therefor G06F9/52; in regulating and control system G05B)} · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10757156B2 cover?
An apparatus for adaptive-rate shifting of streaming content includes an agent controller module configured to simultaneously request at least portions of a plurality of streamlets. The agent controller module is further configured to continuously monitor streamlet requests and subsequent responses, and accordingly request higher or lower quality streamlets. A staging module is configured to st…
Who is the assignee on this patent?
Dish Tech Llc
What technology area does this patent fall under?
Primary CPC classification H04N21/44016. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 25 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).