IP Library › Granted Patent US 8,516,144
Granted Patent B2
US 8,516,144 · App. 13/098,236 · Granted Aug 20, 2013

Startup bitrate in adaptive bitrate streaming

Inventor: James Kong Hsu (Redwood City, CA)
Assignee: CBS Interactive Inc.
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 8,516,144
App. No.
13/098,236
Granted
Aug 20, 2013
Kind
B2
Abstract

Streaming media at an adaptive bitrate streaming media player. Tracking a bitrate history of the player. Determining a startup bitrate from the bitrate history. Streaming at the determined bitrate. Tracking a bitrate history of the player can include storing tracked bitrates in a cookie accessible by the player; and determining a startup bitrate can include determining a startup bitrate from the cookie. Determining a startup bitrate can include determining an average tracked bitrate over the last N tracked bitrates. The average tracked bitrate can be weighted toward more recent tracked bitrates. Determining a startup bitrate can include determining a maximum startup bitrate. The bitrate history can include the maximum bitrate of the player over the last X sessions; and the maximum startup bitrate can be the lowest maximum bitrate over the last X sessions. The maximum startup bitrate can be the mode among maximum bitrates over the last X sessions.

Claims (74)

1. A computer-implemented method for providing streaming media to an adaptive bitrate streaming media player, the method comprising:

providing streaming media content to the adaptive bitrate streaming media player executing on a client device, the streaming media content being provided according to a variable bitrate that varies over time;

during playback of media content on the adaptive bitrate streaming media player, determining bitrate values used at a plurality of different times for providing the streaming media content to the adaptive bitrate streaming media player;

tracking a bitrate history of the player, the tracking comprising storing the one or more determined bitrate values determined for the plurality of different times during the playback of the media content;

storing the tracked bitrate history in a cookie accessible by the adaptive bitrate streaming media player;

responsive to receiving a request from the adaptive bitrate streaming media player for streaming media content, retrieving the tracked bitrate history from the cookie;

determining a startup bitrate based on the bitrate history, the startup bitrate comprising an initial bitrate for streaming the media content to the adaptive bitrate streaming media player;

storing the determined startup bitrate in the cookie accessible by the adaptive bitrate streaming media player; and

streaming media content to the adaptive bitrate streaming media player, wherein the streaming begins at the determined startup bitrate.

2. The method of claim 1 , wherein determining a startup bitrate based on the bitrate history comprises:

determining an average tracked bitrate over the last N tracked bitrates.

3. The method of claim 2 , wherein the determined average tracked bitrate is weighted toward more recent tracked bitrates.

4. The method of claim 1 , wherein determining a startup bitrate from the bitrate history comprises:

determining a first startup bitrate for streaming the media content to the adaptive bitrate media player; and

determining a maximum startup bitrate for streaming the media content to the adaptive bitrate media player, the maximum startup bitrate based on a bandwidth environment.

5. The method of claim 4 wherein:

tracking a bitrate history of the player comprises tracking a maximum bitrate of the adaptive bitrate streaming media player for each session over the last X media content streaming sessions;

determining a maximum startup bitrate comprises determining the lowest maximum bitrate from the maximum bitrates tracked by the bitrate history over the last X media content streaming sessions; and

streaming at the determined bitrate comprises streaming at the lower of the determined first startup bitrate and the determined maximum startup bitrate.

6. The method of claim 4 wherein:

tracking a bitrate history of the player comprises tracking a maximum bitrate of the adaptive bitrate streaming media player for each session over the last X media content streaming sessions; and

determining a maximum startup bitrate comprises determining the mode among maximum bitrates from the maximum bitrates tracked by the bitrate history over the last X media content streaming sessions;

streaming at the determined bitrate comprises streaming at the lower of the determined first startup bitrate and the determined maximum startup bitrate.

7. The method of claim 1 , wherein the tracking of a bitrate history comprises one of more of the following: sampling the bitrate at a periodic or aperiodic interval, recording the bitrate on player startup, recording the bitrate on a per session basis or averaging the bitrate over a period of time.

8. A non-transitory computer-readable storage medium for providing streaming media to an adaptive bitrate streaming media player, the non-transitory computer-readable storage medium storing instructions that when executed by a processor cause the processor to:

provide streaming media content to the adaptive bitrate streaming media player executing on a client device, the streaming media content being provided according to a variable bitrate that varies over time

during playback of media content on the adaptive bitrate streaming media player, determine bitrate values used at a plurality of different times for providing the streaming media content to the adaptive bitrate streaming media player;

track a bitrate history of the player, the tracking comprising storing the one or more determined bitrate values determined for the plurality of different times during the playback of the media content;

store the tracked bitrate history in a cookie accessible by the adaptive bitrate streaming media player;

responsive to receiving a request from the adaptive bitrate streaming media player for streaming media content, retrieve the tracked bitrate history from the cookie;

determine a startup bitrate based on the bitrate history, the startup bitrate comprising an initial bitrate for streaming the media content to the adaptive bitrate streaming media player;

store the determined startup bitrate in the cookie accessible by the adaptive bitrate streaming media player; and

stream media content to the adaptive bitrate streaming media player, wherein the streaming begins at the determined startup bitrate.

9. The computer-readable storage medium of claim 8 , wherein determining a startup bitrate based on the bitrate history comprises:

determining an average tracked bitrate over the last N tracked bitrates.

10. The computer-readable storage medium of claim 9 , wherein the determined average tracked bitrate is weighted toward more recent tracked bitrates.

11. The computer-readable storage medium of claim 8 , wherein determining a startup bitrate from the bitrate history comprises:

determining a first startup bitrate for streaming the media content to the adaptive bitrate media player; and

determining a maximum startup bitrate for streaming the media content to the adaptive bitrate media player, the maximum startup bitrate based on a bandwidth environment.

12. The computer-readable storage medium of claim 11 wherein:

tracking a bitrate history of the player comprises tracking a maximum bitrate of the adaptive bitrate streaming media player for each session over the last X media content streaming sessions;

determining a maximum startup bitrate comprises determining the lowest maximum bitrate from the maximum bitrates tracked by the bitrate history over the last X media content streaming sessions; and

streaming at the determined bitrate comprises streaming at the lower of the determined first startup bitrate and the determined maximum startup bitrate.

13. The computer-readable storage medium of claim 11 wherein:

tracking a bitrate history of the player comprises tracking a maximum bitrate of the adaptive bitrate streaming media player for each session over the last X media content streaming sessions;

determining a maximum startup bitrate comprises determining the mode among maximum bitrates from the maximum bitrates tracked by the bitrate history over the last X media content streaming sessions; and

streaming at the determined bitrate comprises streaming at the lower of the determined first startup bitrate and the determined maximum startup bitrate.

14. The computer program product of claim 8 , wherein the tracking of a bitrate history comprises one of more of the following: sampling the bitrate at a periodic or aperiodic interval, recording the bitrate on player startup, recording the bitrate on a per session basis or averaging the bitrate over a period of time.

15. A system for processing streaming media at an adaptive bitrate streaming media player, the system comprising:

a processor, and

a non-transitory computer-readable storage medium storing instructions that when executed by the processor cause the processor to:

provide streaming media content to the adaptive bitrate streaming media player executing on a client device, the streaming media content being provided according to a variable bitrate that varies over time

during playback of media content on the adaptive bitrate streaming media player, determine bitrate values used at a plurality of different times for providing the streaming media content to the adaptive bitrate streaming media player;

track a bitrate history of the player, the tracking comprising storing the one or more determined bitrate values determined for the plurality of different times during the playback of the media content;

store the tracked bitrate history in a cookie accessible by the adaptive bitrate streaming media player;

responsive to receiving a request from the adaptive bitrate streaming media player for streaming media content, retrieve the tracked bitrate history from the cookie;

determine a startup bitrate based on the bitrate history, the startup bitrate comprising an initial bitrate for streaming the media content to the adaptive bitrate streaming media player;

store the determined startup bitrate in the cookie accessible by the adaptive bitrate streaming media player; and

stream media content to the adaptive bitrate streaming media player, wherein the streaming begins at the determined startup bitrate.

16. The system of claim 15 , wherein determining a startup bitrate based on the bitrate history comprises:

determining an average tracked bitrate over the last N tracked bitrates.

17. The system of claim 16 , wherein the determined average tracked bitrate is weighted toward more recent tracked bitrates.

18. The system of claim 15 , wherein determining a startup bitrate from the bitrate history comprises:

determining a first startup bitrate for streaming the media content to the adaptive bitrate media player; and

determining a maximum startup bitrate for streaming the media content to the adaptive bitrate media player, the maximum startup bitrate based on a bandwidth environment.

19. The system of claim 18 wherein:

tracking a bitrate history of the player comprises tracking a maximum bitrate of the adaptive bitrate streaming media player for each session over the last X media content streaming sessions;

determining a maximum startup bitrate comprises determining the lowest maximum bitrate from the maximum bitrates tracked by the bitrate history over the last X media content streaming sessions; and

streaming at the determined bitrate comprises streaming at the lower of the determined first startup bitrate and the determined maximum startup bitrate.

20. The system of claim 18 wherein:

tracking a bitrate history of the player comprises tracking a maximum bitrate of the adaptive bitrate streaming media player for each session over the last X media content streaming sessions;

determining a maximum startup bitrate comprises determining the mode among maximum bitrates from the maximum bitrates tracked by the bitrate history over the last X media content streaming sessions; and

streaming at the determined bitrate comprises streaming at the lower of the determined first startup bitrate and the determined maximum startup bitrate.

21. The system of claim 15 , wherein the tracking of a bitrate history comprises one of more of the following: sampling the bitrate at a periodic or aperiodic interval, recording the bitrate on player startup, recording the bitrate on a per session basis or averaging the bitrate over a period of time.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2011
From: HSU, JAMES KONG
To: CBS INTERACTIVE, INC.
Reel/Frame 026204/0533 →
Continuity (1)
Related Publication 20120278496A1 · Nov 1, 2012