Streaming media player varying a play speed from an original to a maximum allowable slowdown proportionally in accordance with a buffer state
First Claim
Patent Images
1. A streaming media player for receiving media stream input and for producing output of a media stream, comprising:
- a buffer for receiving media stream input and for generating at least one buffer state value representing the amount of media stream input in said buffer;
at least one output component for generating output of said media stream; and
at least one rate means, coupled to said buffer means and said output means, for receiving at least one buffer state value from said buffer and for varying the rate of output of said media stream from said output means based on said buffer state value;
wherein data first fills some portion-of a buffer before the player starts to play the media content, and wherein the speed change varies according to the formula whereS is the slowdown or speedupvalue, in percentage of original speed;
M is the maximum allowable slowdown, in percentage of original speed;
B is the buffer state (the actual amount of data in the buffer when sampled);
T1 and T2 are values with (size of the buffer) >
T1>
T2.
1 Assignment
0 Petitions
Accused Products
Abstract
A media player for playing streaming media is capable of dynamically changing its play rate according to network conditions, so as to compensate for delayed packets. The player nominally plays at the prescribed data rate. When packets are delayed, instead of stopping to rebuffer, the player plays the stream slower. Audio pitch is unchanged as it is slowed, and video frame rate is slowed as necessary. A threshold is set so that slowing down beyond the threshold is not allowed. Should the buffer contents fall below a predescribed minimum, the player will then stop playing and rebuffer.
248 Citations
15 Claims
-
1. A streaming media player for receiving media stream input and for producing output of a media stream, comprising:
-
a buffer for receiving media stream input and for generating at least one buffer state value representing the amount of media stream input in said buffer;
at least one output component for generating output of said media stream; and
at least one rate means, coupled to said buffer means and said output means, for receiving at least one buffer state value from said buffer and for varying the rate of output of said media stream from said output means based on said buffer state value;
wherein data first fills some portion-of a buffer before the player starts to play the media content, and wherein the speed change varies according to the formula where S is the slowdown or speedupvalue, in percentage of original speed;
M is the maximum allowable slowdown, in percentage of original speed;
B is the buffer state (the actual amount of data in the buffer when sampled);
T1 and T2 are values with (size of the buffer) >
T1>
T2.- View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for a streaming media player having a buffer to produce output of a media stream, comprising:
-
receiving media stream input into said buffer;
generating at least one buffer state value representing the amount of media stream input in said buffer; and
varying the rate of output of said media stream based on said buffer state value;
wherein data first fills some portion of a buffer before the player starts to play the media content, and wherein the speed change varies according to the formula where S is the slowdown or speedup value, in percentage of original speed;
M is the maximum allowable slowdown, in percentage of original speed;
B is the buffer state (the actual amount of data in the buffer when sampled);
T1 and T2 are values with (size of the buffer) >
T1>
T2.- View Dependent Claims (9, 10, 11, 12, 13, 14)
comparing the amount of media stream input to at least one threshold value, and generating a buffer state value when said amount of media stream input falls below said at least one threshold value.
-
-
11. The method of claim 8 wherein said varying the rate of output of said media stream comprises slowing the rate of output.
-
12. The method of claim 8 further comprising dynamically adjusting the slowdown rate.
-
13. The method of claim 10 wherein said at least one threshold value comprises a first and a second threshold value and wherein said generating a buffer state value is done when said amount of media stream input falls below a first threshold value.
-
14. The method of claim 13 further comprising terminating output of said media stream when said at least one buffer state value falls below a second threshold value.
-
15. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform the method steps for a streaming media player having a buffer to produce output of a media stream, said method steps comprising:
-
receiving media stream input into said buffer;
generating at least one buffer state value representing the amount of media stream input in said buffer; and
varying the rate of output of said media stream based on said buffer state value;
wherein data first fills some portion of a buffer before the player starts to play the media content, and wherein the speed change varies according to the formula where S is the slowdown or speedup value, in percentage of original speed;
M is the maximum allowable slowdown, in percentage of original speed;
B is the buffer state (the actual amount of data in the buffer when sampled);
T1 and T2 are values with (size of the buffer) >
T1>
T2.
-
Specification