ADAPTIVE PLAYBACK RATE WITH LOOK-AHEAD
First Claim
1. A method for a client device to dynamically transition between different representations of media from a media server while presenting the media to a user, the method comprising:
- determining, with the client device, a portion within a first media file being played on the client device where a portion average playback rate of the first media file for the portion is greater than a throughput rate at which the client device is downloading from the media server;
selecting, with the client device, a second media file where a portion average playback rate of the second media file for the portion is less than or equal to the throughput rate;
identifying, with the client device, a key frame in the first media file that is correlated to the portion;
identifying, with the client device, a key frame in the second media file having a timestamp that is the same as or temporally proximate to the key frame in the first media file with respect to real-time playback of the media;
transitioning, with the client device, from the first media file to the second media file;
generating, with the client device, a bit stream on the client device by splicing data from the first media file up to the key frame in the first media file with data in the second media file following the key frame in the second media file to form the bit stream; and
transmitting, with the client device, the bit stream to the media player for presentment to the user.
4 Assignments
0 Petitions
Accused Products
Abstract
The disclosure provides for a download agent executing on a computing device to dynamically select between media files when a portion of the media file that is currently being downloaded has a portion average playback rate that is greater than a throughput rate at which the computing device is receiving media files. During the portion where the portion average playback rate is greater than the throughput rate, the download agent may dynamically transition to a different media file where the portion average playback rate for the portion is less than or equal to the throughput rate. The download agent may then transition back to the original media file after downloading the portion form the different media file.
140 Citations
28 Claims
-
1. A method for a client device to dynamically transition between different representations of media from a media server while presenting the media to a user, the method comprising:
-
determining, with the client device, a portion within a first media file being played on the client device where a portion average playback rate of the first media file for the portion is greater than a throughput rate at which the client device is downloading from the media server; selecting, with the client device, a second media file where a portion average playback rate of the second media file for the portion is less than or equal to the throughput rate; identifying, with the client device, a key frame in the first media file that is correlated to the portion; identifying, with the client device, a key frame in the second media file having a timestamp that is the same as or temporally proximate to the key frame in the first media file with respect to real-time playback of the media; transitioning, with the client device, from the first media file to the second media file; generating, with the client device, a bit stream on the client device by splicing data from the first media file up to the key frame in the first media file with data in the second media file following the key frame in the second media file to form the bit stream; and transmitting, with the client device, the bit stream to the media player for presentment to the user. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 18)
-
-
15. A computer-readable storage medium comprising instructions that cause one or more processors to:
-
determine a portion within a first media file being played on a client device where a portion average playback rate of the first media file for the portion is greater than a throughput rate at which the client device is downloading from the media server; select a second media file where a portion average playback rate of the second media file for the portion is less than or equal to the throughput rate; identify a key frame in the first media file that is correlated to the portion; identify a key frame in the second media file having a timestamp that is the same as or temporally proximate to the key frame in the first media file with respect to real-time playback of the media; transition from the first media file to the second media file; generate a bit stream on the client device by splicing data from the first media file up to the key frame in the first media file with data in the second media file following the key frame in the second media file to form the bit stream; and transmit the bit stream to a media player for presentment to a user.
-
-
16. A client device to dynamically transition between different representations of media from a media server while presenting the media to a user, the client device comprising:
-
a processor; and a download agent executing on the processor, the download agent comprising; a playback controller that; determines a portion within a first media file being played on the client device where a portion average playback rate of the first media file for the portion is greater than a throughput rate at which the client device is downloading from the media server; and selects a second media file where a portion average playback rate of the second media file for the portion is less than or equal to the throughput rate; a source manager that transitions from the first media file to the second media file; a stream agent that identifies a key frame in the first media file that is subsequent to a current frame begin played by the media player, identifies a key frame in the second media file having a timestamp that is the same as or temporally proximate to the key frame in the first media file with respect to real-time playback of the media, generates a bit stream, and transmits the bit stream to the media player for presentment to the user, wherein the stream agent generates the bit stream by splicing data from the first media file up to the key frame in the first media file with data in the second media file following the key frame in the second media file. - View Dependent Claims (17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
Specification