US 11,991,234 B2
Apparatus, system, and method for multi-bitrate content streaming
David F. Brueck, Saratoga Springs, UT (US); Mark B. Hurst, Cedar Hills, UT (US); and R. Drew Major, Orem, UT (US)
Assigned to DISH Technologies L.L.C., Englewood, CO (US)
Filed by DISH Technologies L.L.C., Englewood, CO (US)
Filed on Dec. 21, 2022, as Appl. No. 18/069,450.
Application 18/069,450 is a continuation of application No. 17/962,231, filed on Oct. 7, 2022, granted, now 11,677,798.
Application 17/962,231 is a continuation of application No. 16/876,579, filed on May 18, 2020, granted, now 11,470,138, issued on Oct. 11, 2022.
Application 16/876,579 is a continuation of application No. 16/004,056, filed on Jun. 8, 2018, granted, now 10,659,513, issued on May 19, 2020.
Application 16/004,056 is a continuation of application No. 15/414,025, filed on Jan. 24, 2017, granted, now 9,998,516, issued on Jun. 12, 2018.
Application 15/414,025 is a continuation of application No. 14/719,122, filed on May 21, 2015, granted, now 9,571,551, issued on Feb. 14, 2017.
Application 14/719,122 is a continuation of application No. 14/106,051, filed on Dec. 13, 2013, granted, now 9,071,668, issued on Jun. 30, 2015.
Application 14/106,051 is a continuation of application No. 13/617,114, filed on Sep. 14, 2012, granted, now 8,612,624, issued on Dec. 17, 2013.
Application 13/617,114 is a continuation of application No. 12/906,940, filed on Oct. 18, 2010, granted, now 8,402,156, issued on Mar. 19, 2013.
Application 12/906,940 is a continuation of application No. 11/673,483, filed on Feb. 9, 2007, granted, now 7,818,444, issued on Oct. 19, 2010.
Application 11/673,483 is a continuation in part of application No. 11/116,783, filed on Apr. 28, 2005, granted, now 8,868,772, issued on Oct. 21, 2014.
Claims priority of provisional application 60/566,831, filed on Apr. 30, 2004.
Prior Publication US 2023/0128962 A1, Apr. 27, 2023
Int. Cl. H04L 65/70 (2022.01); G06F 16/182 (2019.01); G06F 16/71 (2019.01); H04L 47/12 (2022.01); H04L 47/80 (2022.01); H04L 65/1069 (2022.01); H04L 65/1101 (2022.01); H04L 65/61 (2022.01); H04L 65/65 (2022.01); H04L 65/80 (2022.01); H04L 67/02 (2022.01); H04L 67/568 (2022.01); H04L 67/60 (2022.01); H04N 7/24 (2011.01); H04N 21/2343 (2011.01); H04N 21/2662 (2011.01); H04N 21/433 (2011.01); H04N 21/84 (2011.01); H04N 21/845 (2011.01)
CPC H04L 65/70 (2022.05) [G06F 16/183 (2019.01); G06F 16/71 (2019.01); H04L 47/12 (2013.01); H04L 47/801 (2013.01); H04L 65/1069 (2013.01); H04L 65/1101 (2022.05); H04L 65/61 (2022.05); H04L 65/65 (2022.05); H04L 65/80 (2013.01); H04L 67/02 (2013.01); H04L 67/568 (2022.05); H04L 67/60 (2022.05); H04N 7/24 (2013.01); H04N 21/23439 (2013.01); H04N 21/2662 (2013.01); H04N 21/4331 (2013.01); H04N 21/84 (2013.01); H04N 21/8456 (2013.01)] 20 Claims
OG exemplary drawing
 
1. An end user station for adaptive-rate content streaming of digital content comprising:
a client module configured to be connected to a network having at least one server and further configured to request digital content over the network via at least one transmission control protocol (TCP) connection, wherein at least two different copies of the digital content are each encoded at different bit rates and stored on the at least one server, wherein each copy of the digital content is divided into a plurality of streamlets, each of the plurality of streamlets of a corresponding copy comprising a different portion of the digital content during presentation, wherein corresponding streamlets across the at least two different copies comprise the same corresponding portions of the digital content during presentation, and wherein the client module streams the digital content by:
requesting a first streamlet from the at least one server;
automatically requesting from the at least one server subsequent portions of the digital content by requesting for each subsequent portion one of the streamlets from the different copies of the digital content dependent upon successive determinations by the client module to change a currently requested bit rate to a higher or lower bit rate, the automatically requesting including repeatedly generating a factor indicative of a current ability to receive digital content at a rate sufficient for presenting the digital content as the digital content is received;
making the successive determinations to change the digital content bit rate based on the factor using the streamlets of one of the different copies of the digital content having the highest bit rate determined receivable for presentation so that the client module selects a higher bit rate one of the different copies when the factor is greater than a first threshold and selects a lower bit rate one of the different copies when the factor is less than a second threshold; and
arranging the streamlets requested from the at least one server in order of ascending presentation time for output to a presentation device.