IP Library Granted Patent US 7,949,775
Granted Patent B2
US 7,949,775 · App. 12/188,074 · Granted May 24, 2011

Stream selection for enhanced media streaming

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 7,949,775
App. No.
12/188,074
Granted
May 24, 2011
Kind
B2
Abstract

The present disclosure relates to playback of video/audio streaming media data to provide a glitch-free experience. The system adapts the media stream to the user connection in order to provide the glitch-free experience. Stream selection can be made using a heuristics module located on the playback device that analyzes various aspects of the playback to make intelligent decisions about which media stream to download from a network.

Claims (31)

1. A method of rendering a media stream on a playback device, comprising:

dynamically analyzing playback criteria while rendering the media stream using a network heuristics module that monitors network bandwidth and a resource heuristics module that monitors the playback device;

based on the analysis, determining, in the playback device, which of multiple available media streams to retrieve from a network in order to minimize glitches during the playback, the multiple available media streams being the same content encoded at different bit rates, the analysis including agreeing on a encoded bit rate through intersection of acceptable encoded bit rates for both the network heuristics module and the resource heuristics module;

retrieving the determined media stream from the network; and

rendering the media stream with minimized glitching.

2. The method of claim 1 , wherein the playback criteria includes a buffer level used during playback or a quality measurement of a segment.

3. The method of claim 2 , wherein the buffer level relates to a number of bytes in a buffer or an amount of time remaining in the buffer to playback.

4. The method of claim 1 , wherein the different bit rates are constant bit rates or variable bit rates.

5. The method of claim 1 , wherein the playback device includes one of the following: a computer, a mobile phone, a gaming console, and a television; and wherein the network is the Internet.

6. The method of claim 1 , wherein the media stream is divided into fragments of a specified time duration.

7. The method of claim 1 , wherein the dynamic analysis occurs in a download management program that is a plug-in to a browser and that is dynamically loaded each time a website is accessed.

8. The method of claim 1 , wherein the playback criteria includes analyzing empirical data obtained during the playback.

9. The method of claim 8 , wherein the empirical data includes current and historical network bandwidths.

10. The method of claim 8 , wherein the empirical data includes a speed with which the playback device displays content.

11. A method of rendering a media stream on a playback device, comprising:

selecting, from the playback device, a bit rate associated with the media stream to download from a network;

storing the media stream in a buffer on the playback device;

monitoring a buffer level of data stored in the buffer; and

modifying, in the playback device, the selected bit rate to download based on the buffer level in order to minimize glitches in rendering the media stream, wherein the buffer level has predetermined high and low limits that are used in modifying the selected bit rate, and the selected rate is further determined through monitoring bandwidth of the network.

12. The method of claim 11 , wherein the buffer level relates to a number of bytes in a buffer or an amount of time remaining in the buffer to playback.

13. The method of claim 11 , further including monitoring the quality level and using the quality level to select the bit rate.

14. A method of rendering a media stream on a playback device, comprising:

selecting, from the playback device, a bit rate associated with a media stream to download from a network, the selected bit rate being one of multiple bitrates associated with a same content;

downloading and storing the content on the playback device;

rendering the media stream on the playback device;

monitoring a rate at which the media stream is being rendered;

modifying the bit rate downloaded from the network based on the monitored rate at which the media stream is being rendered;

for content already downloaded to the playback, replacing the content by re-downloading the content at a different bitrate in order to improve quality on the playback device.

15. The method of claim 14 , wherein modifying the bit rate includes lowering the bit rate if the rate at which the media stream is rendered falls below a predetermined threshold.

16. The method of claim 14 , wherein monitoring includes using a quality manager to monitor a number of frames that a media pipeline in the playback device is rendering.

17. The method of claim 14 , further including selecting a new bit rate by using an intersection point between a bit rate selected by a network heuristics module and a resource heuristics module.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2016
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: ZHIGU HOLDINGS LIMITED
Reel/Frame 040354/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2008
From: VIRDI, GURPRATAP; VEGA-GARCIA, ANDRES; SMIRNOV, SERGE; ZHANG, WENBO; MUSAYEV, ELDAR
To: MICROSOFT CORPORATION
Reel/Frame 021410/0941 →