Enhanced block-request streaming system using signaling or block creation
First Claim
1. A computer-implemented method, comprising:
- obtaining data representing media of a presentation;
storing the data representing media of the presentation as a plurality of segments, wherein one or more of the plurality of segments includes a plurality of blocks, and wherein each block includes a plurality of frames;
storing correspondence data associated with at least one segment, wherein the stored correspondence data includes a correspondence between at least one time indicator and at least one position of at least one block within the at least one segment;
transmitting a segment and a segment index to a client, wherein the segment index includes correspondence data associated with the segment, and wherein the segment index allows the client to specify a position of one or more blocks within the segment to include in one or more requests;
receiving a request for a block from the client, wherein the request includes a specified position of the block within the segment; and
transmitting the block to the client in response to the request from the client for the block.
3 Assignments
0 Petitions
Accused Products
Abstract
A block-request streaming system provides for improvements in the user experience and bandwidth efficiency of such systems, typically using an ingestion system that generates data in a form to be served by a conventional file server (HTTP, FTP, or the like), wherein the ingestion system intakes content and prepares it as files or data elements to be served by the file server. The system might include controlling the sequence, timing and construction of block requests, time based indexing, variable block sizing, optimal block partitioning, control of random access point placement, including across multiple presentation versions, dynamically updating presentation data, and/or efficiently presenting live content and time shifting.
516 Citations
8 Claims
-
1. A computer-implemented method, comprising:
-
obtaining data representing media of a presentation; storing the data representing media of the presentation as a plurality of segments, wherein one or more of the plurality of segments includes a plurality of blocks, and wherein each block includes a plurality of frames; storing correspondence data associated with at least one segment, wherein the stored correspondence data includes a correspondence between at least one time indicator and at least one position of at least one block within the at least one segment; transmitting a segment and a segment index to a client, wherein the segment index includes correspondence data associated with the segment, and wherein the segment index allows the client to specify a position of one or more blocks within the segment to include in one or more requests; receiving a request for a block from the client, wherein the request includes a specified position of the block within the segment; and transmitting the block to the client in response to the request from the client for the block. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, in a client device that is capable of presenting a media presentation over a presentation time period, of determining requests to make of a media server, the method comprising:
-
obtaining, at the client device, a list of segments of the media presentation, wherein the client device is configured to transmit a request for a segment, wherein the segment includes a plurality of blocks, and wherein each block includes a plurality of frames; determining, at the client device, a desired time period of the media presentation, wherein the desired time period is less than all of the presentation time period; obtaining, at the client device, stored correspondence data that includes a correspondence between at least one time indicator and at least one data range of a block within a segment of the media presentation; determining, at the client device, and from the stored correspondence data, a position of at least one block within the segment to include in a request for the at least one block from the media server; transmitting the request for the at least one block; and presenting the media presentation.
-
Specification