IP Library Granted Patent US 11,765,400
Granted Patent B2
US 11,765,400 · App. 17/456,820 · Granted Sep 19, 2023

Systems and methods for selecting an initial streaming bitrate

Inventors: Jeevan Satpalsingh Bhooi (Bangalore, IN); Senthilkumar Krishnadoss (Bangalore, IN)
H04N21/20H04L65/60H04L65/80H04N21/2402H04N21/4402H04L65/612H04N21/63
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,765,400
App. No.
17/456,820
Granted
Sep 19, 2023
Kind
B2
Abstract

Systems and methods are described for providing a media stream transmitted from an encoding system to a remotely-located media player that requests segments of the media stream. In accordance with one embodiment, a method of encoding a media stream provided from an encoding system to a remotely-located client includes establishing a data connection with the client and acquiring, from the client, client information including a client identifier, a public internet protocol (IP) address, and a geographical location associated with the client. The method further includes determining, based on the client information, whether historical bit rate data is available in a historical bit rate data store provided by the encoding system. If such historical bit rate data is available, an initial bit rate parameter is set for the media stream and the media stream is encoded at the encoding system according to the initial bit rate parameter and transmitted to the client.

Claims (33)

1. A method of encoding segments of a media stream provided from an encoding system to a remotely-located client that is associated with an identifier, the method comprising:

establishing a data connection between the encoding system and the client via a network;

determining if historical bit rate data is available based upon the identifier associated with the client;

encoding a first portion of the media stream at an initial encoding quality, wherein the initial encoding quality is set based upon the historical bit rate data if the historical bit rate data is available for the identifier associated with the client, and otherwise set based upon a default value;

storing the first portion of the media stream in a buffer until the first portion is transmitted to the client via the data connection; and

adjusting the encoding quality of subsequent portions of the media stream based upon a buffer utilization breaching one of a set of watermarks, wherein each watermark is indicative of a transition point between states of a set of states each representing different levels of the buffer utilization.

2. The method of claim 1 , further comprising:

applying the set of watermarks to include adjustments within each state of the set of states configured with the buffer based upon actual measured and observed values of an encoder rate, the available buffer space and segment transmit time.

3. The method of claim 2 , further comprising:

adjusting the encoder rate based upon an amount of available buffer space that is tailored to an actual condition based on each state of the buffer rather than adjusting the encoder rate in accordance with a pre-determined amount that is empirically determined at a different time.

4. The method of claim 1 , further comprising:

storing the initial encoding quality in association with the identifier of the client for use as historical bit rate data during a future media streaming session with the same client.

5. A media encoding system for providing a media stream to a client over a network, the media encoding system comprising a processor and a non-transitory data storage comprising a buffer, wherein the processor is configured to perform an automated process comprising:

establishing a data connection between the media encoding system and the client via the network;

determining if historical bit rate data is available based upon the identifier associated with the client;

encoding a first portion of the media stream at an initial encoding quality, wherein the initial encoding quality is set based upon the historical bit rate data if the historical bit rate data is available for the identifier associated with the client, and otherwise set based upon a default value;

storing the first portion of the media stream in a buffer until the first portion is transmitted to the client via the data connection; and

adjusting the encoding quality of subsequent portions of the media stream based upon a buffer utilization breaching one of a set of watermarks, wherein each watermark is indicative of a transition point between states of a set of states each representing different levels of the buffer utilization.

6. The media encoding system of claim 5 wherein the automated process further comprises:

applying the set of watermarks to include adjustments within each state of the set of states configured with the buffer based upon actual measured and observed values of an encoder rate, the available buffer space and segment transmit time.

7. The media encoding system of claim 6 , wherein the automated process further comprises:

adjusting the encoder rate based upon an amount of available buffer space that is tailored to an actual condition based on each state of the buffer rather than adjusting the encoder rate in accordance with a pre-determined amount that is empirically determined at a different time.

8. The media encoding system of claim 7 wherein the automated process further comprises storing the initial encoding quality in association with the identifier of the client for use as historical bit rate data during a future media streaming session with the same client.

9. A video encoder device configured to supply a media stream to a remotely-located client device associated with an identifier via a network, the video encoder device comprising:

an interface to the network;

a data storage configured as a buffer; and

a processor configured to perform an automated process comprising:

establishing a data connection between the encoding system and the client via the interface;

determining if historical bit rate data is available based upon the identifier associated with the client;

encoding a first portion of the media stream at an initial encoding quality, wherein the initial encoding quality is set based upon the historical bit rate data if the historical bit rate data is available for the identifier associated with the client, and otherwise set based upon a default value;

storing the first portion of the media stream in a buffer until the first portion is transmitted to the client via the data connection; and

adjusting the encoding quality of subsequent portions of the media stream based upon a buffer utilization breaching one of a set of watermarks, wherein each watermark is indicative of a transition point between states of a set of states each representing different levels of the buffer utilization.

10. The video encoder device of claim 9 , wherein the processor is further configured to store the initial encoding quality in association with the identifier of the client for use as historical bit rate data during a future media streaming session with the same client.

Assignments (2)
CHANGE OF NAME Recorded Sep 1, 2022
From: SLING MEDIA PVT. LTD.
To: DISH NETWORK TECHNOLOGIES INDIA PRIVATE LIMITED
Reel/Frame 061365/0493 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2021
From: BHOOI, JEEVAN SATPALSINGH; KRISHNADOSS, SENTHILKUMAR
To: SLING MEDIA PVT LTD.
Reel/Frame 058899/0770 →