ENHANCED BLOCK-REQUEST STREAMING SYSTEM USING SIGNALING OR BLOCK CREATION
First Claim
1. A method of generating blocks of media data to be electronically transmitted to client devices upon request, the method comprising:
- obtaining data representing media of a presentation, wherein the presentation is a presentation over time and has a defined playout rate and portions of the presentation can be defined by time ranges;
storing the data representing media of the presentation as a plurality of blocks;
identifying, prior to transmission, correspondences between a plurality of time ranges and a plurality of positions within the blocks;
generating, prior to transmission of the blocks, stored correspondence data representing at least some of the correspondences, such that a client device can determine from the stored correspondence data and a desired time range of the presentation to be played out, which subset of the plurality of blocks to request.
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.
290 Citations
19 Claims
-
1. A method of generating blocks of media data to be electronically transmitted to client devices upon request, the method comprising:
-
obtaining data representing media of a presentation, wherein the presentation is a presentation over time and has a defined playout rate and portions of the presentation can be defined by time ranges; storing the data representing media of the presentation as a plurality of blocks; identifying, prior to transmission, correspondences between a plurality of time ranges and a plurality of positions within the blocks; generating, prior to transmission of the blocks, stored correspondence data representing at least some of the correspondences, such that a client device can determine from the stored correspondence data and a desired time range of the presentation to be played out, which subset of the plurality of blocks to request. - 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:
-
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 maps time ranges of the media presentation to data ranges within blocks representing the media; determining, at the client device, and from the stored correspondence data, which data ranges to request of the media server; making the determined requests; and presenting the presentation using the client device.
-
-
9. In a communication system wherein a client device requests media data from a media ingestion system, a method comprising:
-
encoding, at the media ingestion system, a first version of a media presentation, wherein the first version is a data rate version that is to be made available; selecting random access points within the first version to optimize compression efficiency of the encoding, subject to a minimum temporal spacing between the random access points; encoding, a second version of the media presentation, wherein the second version is a different data rate version that is to be made available; and selecting random access points within the second version to temporally match the random access points within the first version.
-
-
10. In a communication system wherein a client device requests media data from a media ingestion system, a method comprising:
-
encoding, at the media ingestion system, a first version of a media presentation, wherein the first version is a data rate version that is to be made available; selecting random access points within the first version; encoding, a second version of the media presentation, wherein the second version is a different data rate version that is to be made available; and selecting random access points within the second version that are temporally independent of the random access points within the first version. - View Dependent Claims (11)
-
-
12. In a communication system wherein a client device requests media data from a media ingestion system, a method comprising:
-
receiving, at the client side, a first version of a media presentation, wherein the first version is a data rate version that is to be made available and wherein the first version has a first set of random access points; and receiving, at the client side, a second version of a media presentation, wherein the second version is a data rate version that is to be made available and wherein the second version has a second set of random access points that are temporally independent of the first set of random access points. - View Dependent Claims (13)
-
-
14. In a communication system wherein a client device receives media data from a media ingestion system, a method comprising:
providing, at the media ingestion system, a minimum start-up delay value to the client, wherein the start-up delay is the delay between when the client device first starts receiving the media data from the media ingestion system and when the client device can start consumption of the media data without interruption, and wherein the start-up delay is a function of transmission bandwidth available between the media ingestion system and the client.
-
15. In a communication system wherein a client device receives media data from a media ingestion system, a method comprising:
-
receiving, at the client device, a minimum start-up delay value from the media ingestion system, wherein the start-up delay is a function of transmission bandwidth available between the media ingestion system and the client; receiving media data from the media ingestion system; and delaying start of consumption of the media data by the start-up delay.
-
-
16. In a communication system wherein a client device receives a media data stream from a media ingestion system, a method comprising:
-
providing, at the media ingestion system, a media presentation description (MPD) file associated with the media data stream; dynamically updating the MPD while the media data stream is being transmitted to the client; and inserting a signal within the media data stream to indicate that the MPD has been updated.
-
-
17. In a communication system wherein a client device receives a media data stream from a media ingestion system, a method comprising:
-
detecting, at the client side, a signal within the media data stream indicating that an MPD associated with the media data stream has been updated; and sending a request for the updated MPD to the media ingestion system.
-
-
18. In a communication system wherein a client device receives a media data stream from a media ingestion system, a method comprising:
-
providing, at the media ingestion system, a media presentation description (MPD) file associated with the media data stream; and providing within the MPD a validity indicator and a time interval, wherein the indicator signals that the MPD is valid over the time interval.
-
-
19. In a communication system wherein a client device receives a media data stream from a media ingestion system, a method comprising:
-
receiving, at the client device, a media presentation description (MPD) file associated with the media data stream; extracting, from the MPD, a validity indicator and a time interval, wherein the indicator signals that the MPD is valid over the time interval; and ensuring that the MPD is valid based on a comparison of the time interval with a current presentation time.
-
Specification