Multi-bit-rate streaming delivery
First Claim
Patent Images
1. A method comprising:
- receiving, from a media streaming provider via a communication channel in response to a first request, a first data item regarding a media document that includes multiple data segments, the received first data item comprising;
a first media data segment of the media document from among the multiple data segments, the first media data segment comprising a first media portion, anda first portion of an index for the media document, the first index portion comprising index information relating to a first set of media data segments, the first set of media data segments comprisingmedia data segments from among the multiple data segments of the media document that comprise, respectively, media portions succeeding the first media portion, each of the media portions succeeding the first media portion being encoded at each of multiple bit-rates, andmedia data segments of the media document that correspond, respectively, to predetermined media locations of the media document, each of the media data segments that correspond to the predetermined media locations including an associated media portion encoded at a lowest bit-rate from the multiple bit-rates;
while the received first data item is being output for playing on an output device, selecting a second media data segment from the first set of media data segments of the media document based on;
the information in the first index portion, anda supportable streaming bit-rate via the communication channel;
requesting, in a second request different from the first request, the selected second media data segment of the media document from the media streaming provider; and
receiving, from the media streaming provider via a communication channel in response to the second request, a second data item regarding the media document, the received second data item comprising;
the selected second media data segment of the media document, the selected second media data segment comprising a second media portion, anda second portion of the index for the media document that is different from the first index portion, the second index portion comprising index information relating to a second set of media data segments, the second set of media data segments comprisingmedia data segments from among the multiple data segments of the media document that comprise, respectively, media portions succeeding the second media portion, each of the media portions succeeding the second media portion being encoded at each of the multiple bit-rates, andmedia data segments of the media document that correspond, respectively, to the predetermined media locations of the media document, each of the media data segments that correspond to the predetermined media locations including the associated media portion encoded at the lowest bit-rate from the multiple bit-rates.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, relating to single-file multi-bit-rate streaming delivery are described. Media data can be encoded into a single file (or very small number of files), which can then be placed on an unmodified Hypertext Transfer Protocol (HTTP) server. Further, the techniques disclosed here can use HTTP for distribution of the encoded media file and may support multi-bit-rate playback at a client without requiring a modification or plug-in to the server software. Furthermore, these techniques use properties of HTTP and Transmission Control Protocol (TCP) to minimize playback startup time.
-
Citations
22 Claims
-
1. A method comprising:
-
receiving, from a media streaming provider via a communication channel in response to a first request, a first data item regarding a media document that includes multiple data segments, the received first data item comprising; a first media data segment of the media document from among the multiple data segments, the first media data segment comprising a first media portion, and a first portion of an index for the media document, the first index portion comprising index information relating to a first set of media data segments, the first set of media data segments comprising media data segments from among the multiple data segments of the media document that comprise, respectively, media portions succeeding the first media portion, each of the media portions succeeding the first media portion being encoded at each of multiple bit-rates, and media data segments of the media document that correspond, respectively, to predetermined media locations of the media document, each of the media data segments that correspond to the predetermined media locations including an associated media portion encoded at a lowest bit-rate from the multiple bit-rates; while the received first data item is being output for playing on an output device, selecting a second media data segment from the first set of media data segments of the media document based on; the information in the first index portion, and a supportable streaming bit-rate via the communication channel; requesting, in a second request different from the first request, the selected second media data segment of the media document from the media streaming provider; and receiving, from the media streaming provider via a communication channel in response to the second request, a second data item regarding the media document, the received second data item comprising; the selected second media data segment of the media document, the selected second media data segment comprising a second media portion, and a second portion of the index for the media document that is different from the first index portion, the second index portion comprising index information relating to a second set of media data segments, the second set of media data segments comprising media data segments from among the multiple data segments of the media document that comprise, respectively, media portions succeeding the second media portion, each of the media portions succeeding the second media portion being encoded at each of the multiple bit-rates, and media data segments of the media document that correspond, respectively, to the predetermined media locations of the media document, each of the media data segments that correspond to the predetermined media locations including the associated media portion encoded at the lowest bit-rate from the multiple bit-rates. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer storage medium encoded with a computer program, the program comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:
-
receiving, from a media streaming provider via a communication channel in response to a first request, a first segment of a media document, the received first segment comprising; a first media portion of the media document, and a first portion of an index for the media document, the first index portion comprising index information relating to a first set of segments, the first set of segments comprising segments of the media document that comprise, respectively, media portions succeeding the first media portion, each of the media portions succeeding the first media portion being encoded at each of multiple bit-rates, and segments of the media document that correspond, respectively, to predetermined media locations of the media document, each of the segments that correspond to the predetermined media locations including an associated media portion encoded at a lowest bit-rate from the multiple bit-rates; while the received first segment is being output for playing on an output device, selecting a second segment from the first set of segments of the media document based on; the information in the first index portion, and a supportable streaming bit-rate via the communication channel; requesting, in a second request different from the first request, the selected second segment of the media document from the media streaming provider; and receiving, from the media streaming provider via the communication channel in response to the second request, the selected second segment of the media document, the received selected second segment comprising; a second media portion of the media document, and a second portion of the index for the media document that is different from the first index portion, the second index portion comprising index information relating to a second set of segments, the second set of segments comprising segments of the media document that comprise, respectively, media portions succeeding the second media portion, each of the media portions succeeding the second media portion being encoded at each of the multiple bit-rates, and segments of the media document that correspond, respectively, to the predetermined media locations of the media document, each of the segments that correspond to the predetermined media locations including the associated media portion encoded at the lowest bit-rate from the multiple bit-rates. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system for streaming media to a remote media play point via a communication channel, the system comprising:
-
a storage device including a non-transitory computer storage medium, the storage device configured to store a media document comprising segments of the media document, wherein each one of the segments comprises; a media portion of the media document associated with the one of the segments, wherein the media portion is encoded at a bit-rate selected from a first set of different bit-rates; and a portion of an index for the media document that is different from index portions associated with other ones of the segments, the index portion comprising index information relating to a first set of segments of the media document that comprise, respectively, media portions succeeding the media portion associated with the one of the segments, each succeeding media portion from the first set encoded at each of the bit-rates from the set of different bit-rates, and a second set of segments of the media document that correspond, respectively, to predetermined media locations of the media document, each segment from the second set including an associated media portion encoded at a lowest bit-rate from the set of different bit-rates, wherein the index information comprises byte-offsets corresponding to the segments from the first and second sets; a processor communicatively coupled to the storage device, the processor configured to; receive, from the remote media play point, different requests for segments of the media document, each one of the requests comprising a locator of the media document, a byte-offset to indicate a beginning of the requested segment, and a byte-offset to indicate an ending of the requested segment; and provide the requested segments of the media document to the remote media play point, such that each of the requested segments is provided in response to an associated request, prior to receiving a subsequent request for another segment. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
Specification