METHOD AND SYSTEM FOR EFFICIENT STREAMING VIDEO DYNAMIC RATE ADAPTATION
First Claim
Patent Images
1. A method for streaming data to a client, comprising:
- encoding the data into a plurality of encodings;
combining the plurality of encodings into a single file;
indexing the single file to determine respective locations of each individual encoding; and
advertising index information to a client device to enable the client to select an encoding to be retrieved and rendered at the client.
2 Assignments
0 Petitions
Accused Products
Abstract
A streaming media system employs dynamic rate adaptation. The method includes a file format compatible with legacy HTTP infrastructure to deliver media over a persistent connection. The method further includes the ability for legacy client media players to dynamically change the encoded delivery rate of the media over a persistent connection. The method provided works transparently with standard HTTP servers, requiring no modification and leverages standard media players embedded in mobile devices for seamless media delivery over wireless networks with high bandwidth fluctuations. A system is also specified for implementing a client and server in accordance with the method.
119 Citations
72 Claims
-
1. A method for streaming data to a client, comprising:
-
encoding the data into a plurality of encodings; combining the plurality of encodings into a single file; indexing the single file to determine respective locations of each individual encoding; and advertising index information to a client device to enable the client to select an encoding to be retrieved and rendered at the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A server for streaming delivery of content, comprising:
-
a processor; a memory; and instructions executable by the processor for causing the server to perform a method including; encoding the content into a plurality of encodings; combining the plurality of encodings into a single file; indexing the single file to determine respective locations of each individual encoding; and advertising index information to a client to enable the client to select an encoding to be retrieved and rendered at the client. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71)
-
-
72. Apparatus, comprising:
-
one or more a processors for executing a file encoder and an HTTP streaming server, wherein the HTTP streaming server accepts requests for source media, wherein the file encoder accepts a source media file and a configuration file; a memory for storing output of the file encoder; first instructions executable by the processors for causing the apparatus to perform a file encoder method including; transcoding the source file into a plurality of encodings as defined by the configuration; encrypting the plurality of resultant encodings as defined by the configuration; concatenating the plurality of resultant encrypted encodings into a single file as defined by the configuration; storing the concatenated file to the memory;
creating an rate map index file for the concatenated file; andstoring the rate map index file to the memory; and second instructions executable by the processor for causing the apparatus to perform an HTTP streaming server method including; selecting a concatenated media file whose first encoding matches that of the request; creating a header containing information about the current encoding and the current index into the concatenated media file; packing the header into an HTTP chunk; packing a segment of concatenated media file data into the HTTP chunk; sending the HTTP chunk to a client; estimating available bandwidth between the server and the client; and changing encodings when bandwidth falls below or rises above a given set of thresholds.
-
Specification