IP Library Granted Patent US 11,924,263
Granted Patent B2
US 11,924,263 · App. 17/340,510 · Granted Mar 5, 2024

Methods and devices for efficient adaptive bitrate streaming

Inventors: Arjun Ramamurthy (San Diego, CA); Ajay Luthra (San Diego, CA)
Assignee: Google Technology Holdings LLC
H04L65/762H04L47/25H04L65/60H04L65/613H04N21/234354H04N21/234363H04N21/23439H04N21/2402H04N21/6373H04N21/6379H04N21/64738H04N21/6583
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,924,263
App. No.
17/340,510
Granted
Mar 5, 2024
Kind
B2
Abstract

Methods and systems for a content server to select sets of video streams having different encoding parameters for transmitting the sets of video streams to a media device are disclosed herein. In some embodiments, a method for transmitting video streams for a media program from a server to a media device includes: selecting, by the server, first encoding parameters including a first bitrate for a first set of video streams for the media program based on a first estimated bandwidth capacity for a network linking the server and the media device, transmitting the first set of video streams from the server to the media device, determining, by the server, second encoding parameters including a second bitrate for a second set of video streams for the media program, and transmitting the second set of video streams from the server to the media device.

Claims (32)

1. A method for transmitting media streams for media programs, the method comprising:

selecting, using a hardware processor, first encoding parameters for a first set of media streams to be presented on a first media device based on a first bandwidth capacity and a second bandwidth capacity, wherein the first bandwidth capacity is calculated for a first network connection connecting the hardware processor and the first media device, and the second bandwidth capacity is calculated for a second network connection connecting the hardware processor and a second media device; and

transmitting the first set of media streams as a plurality of media streams based on the first encoding parameters to the first media device.

2. The method of claim 1 , further comprising receiving, from the first media device, an indication of an amount of data corresponding to the first set of media streams remaining in a buffer of the first media device in connection with acknowledgement of receipt of the first set of media streams.

3. The method of claim 2 , further comprising:

determining updated encoding parameters based on the amount of data remaining in the buffer of the first media device; and

transmitting, to the first media device, a second set of media streams using the updated encoding parameters.

4. The method of claim 3 , wherein the transmitting the second set of media streams using the updated encoding parameters comprises selecting a playlist file corresponding to the second set of media streams, wherein the playlist file encodes the second set of media streams using a resolution corresponding to the updated encoding parameters and a bitrate corresponding to the updated encoding parameters.

5. The method of claim 3 , wherein the first encoding parameters include a first temporal length for the first set of media streams, and wherein each media stream in the second set of media streams has a second temporal length different than the first temporal length.

6. The method of claim 1 , wherein the first encoding parameters are selected to be suitable for a bandwidth capacity lower than the first bandwidth capacity.

7. A system for transmitting media streams for media programs, the system comprising:

a memory; and

a hardware processor that:

selects first encoding parameters for a first set of media streams to be presented on a first media device based on a first bandwidth capacity and a second bandwidth capacity, wherein the first bandwidth capacity is calculated for a first network connection connecting the hardware processor and the first media device, and the second bandwidth capacity is calculated for a second network connection connecting the hardware processor and a second media device; and

transmits the first set of media streams as a plurality of media streams based on the first encoding parameters to the first media device.

8. The system of claim 7 , wherein the hardware processor further receives, from the first media device, an indication of an amount of data corresponding to the first set of media streams remaining in a buffer of the first media device in connection with acknowledgement of receipt of the first set of media streams.

9. The system of claim 8 , wherein the hardware processor further:

determines determining updated encoding parameters based on the amount of data remaining in the buffer of the first media device; and

causes transmitting, to the first media device, a second set of media streams using the updated encoding parameters.

10. The system of claim 9 , wherein the transmitting the second set of media streams using the updated encoding parameters comprises selecting a playlist file corresponding to the second set of media streams, wherein the playlist file encodes the second set of media streams using a resolution corresponding to the updated encoding parameters and a bitrate corresponding to the updated encoding parameters.

11. The system of claim 9 , wherein the first encoding parameters include a first temporal length for the first set of media streams, and wherein each media stream in the second set of media streams has a second temporal length different than the first temporal length.

12. The system of claim 7 , wherein the first encoding parameters are selected to be suitable for a bandwidth capacity lower than the first bandwidth capacity.

13. A non-transitory, computer-readable medium containing computer-executable instructions that, when executed by a hardware processor, cause the hardware processor to perform a method for transmitting media streams for media programs, the method comprising:

selecting first encoding parameters for a first set of media streams to be presented on a first media device based on a first bandwidth capacity and a second bandwidth capacity, wherein the first bandwidth capacity is calculated for a first network connection connecting the hardware processor and the first media device, and the second bandwidth capacity is calculated for a second network connection connecting the hardware processor and a second media device; and

transmitting the first set of media streams as a plurality of media streams based on the first encoding parameters to the first media device.

14. The non-transitory, computer-readable medium of claim 13 , further comprising receiving, from the first media device, an indication of an amount of data corresponding to the first set of media streams remaining in a buffer of the first media device in connection with acknowledgement of receipt of the first set of media streams.

15. The non-transitory, computer-readable medium of claim 14 , the method further comprising:

determining updated encoding parameters based on the amount of data remaining in the buffer of the first media device; and

causing transmitting, to the first media device, a second set of media streams using the updated encoding parameters.

16. The non-transitory, computer-readable medium of claim 15 , wherein the transmitting the second set of media streams using the updated encoding parameters comprises selecting a playlist file corresponding to the second set of media streams, wherein the playlist file encodes the second set of media streams using a resolution corresponding to the updated encoding parameters and a bitrate corresponding to the updated encoding parameters.

17. The non-transitory, computer-readable medium of claim 15 , wherein the first encoding parameters include a first temporal length for the first set of media streams, and wherein each media stream in the second set of media streams has a second temporal length different than the first temporal length.

18. The non-transitory, computer-readable medium of claim 13 , wherein the first encoding parameters are selected to be suitable for a bandwidth capacity lower than the first bandwidth capacity.

Continuity (7)
Continuation 16594765 · Oct 7, 2019
Continuation 15987667 · May 23, 2018
Continuation 15262964 · Sep 12, 2016
Continuation 13939314 · Jul 11, 2013
Provisional Application 61812256 · Apr 16, 2013
Provisional Application 61704651 · Sep 24, 2012
Related Publication 20210367993A1 · Nov 25, 2021