IP Library Granted Patent US 11,032,343
Granted Patent B2
US 11,032,343 · App. 16/594,765 · Granted Jun 8, 2021

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/602H04L47/25H04L65/4092H04L65/60H04N21/23439H04N21/234354H04N21/234363H04N21/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,032,343
App. No.
16/594,765
Granted
Jun 8, 2021
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 (38)

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

calculating, using a hardware processor, a first bandwidth capacity for a first network connecting the hardware processor and a first media device;

calculating, using the hardware processor, a second bandwidth capacity for a second network connecting the hardware processor and a second media device;

selecting, using the hardware processor, first encoding parameters for a first set of media streams for a media program to be presented on the first media device based on the first bandwidth capacity and the second bandwidth capacity; 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 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 estimated bandwidth capacity.

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

a memory; and

a hardware processor that:

calculates a first bandwidth capacity for a first network connecting the hardware processor and a first media device;

calculates a second bandwidth capacity for a second network connecting the hardware processor and a second media device;

selects first encoding parameters for a first set of media streams for a media program to be presented on the first media device based on the first bandwidth capacity and the second bandwidth capacity; 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 , 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.

10. The system of claim 9 , wherein 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 estimated 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:

calculating a first bandwidth capacity for a first network connecting the hardware processor and a first media device;

calculating a second bandwidth capacity for a second network connecting the hardware processor and a second media device;

selecting first encoding parameters for a first set of media streams for a media program to be presented on the first media device based on the first bandwidth capacity and the second bandwidth capacity; 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 , 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.

16. The non-transitory computer-readable medium of claim 15 , wherein 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 estimated bandwidth capacity.

Continuity (6)
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 20200112599A1 · Apr 9, 2020