Variant streams for real-time or near real-time streaming
First Claim
Patent Images
1. A method comprising:
- dividing a stream of data for a contiguous time based stream of content for a same single program into multiple media files, wherein the multiple media files comprise a first group of one or more media files and a second group of one or more media files, wherein the first group of media files are configured to be stored with a first encoding in a transfer protocol compliant format and wherein the second group of media files are configured to be stored with a second encoding in the transfer protocol compliant format;
generating a first playlist file having a plurality of tags and a plurality of Universal Resource Indicators (URIs) indicating an ordering of media content in the first group of media files to recreate the stream of data;
generating a second playlist file having a plurality of tags and a plurality of URIs indicating an ordering of media content in the second group of media files to recreate the stream of data; and
generating a variant playlist file having a plurality of tags and a plurality of URIs indicating the first playlist file and the second playlist file.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatuses for real-time or near real-time streaming of content using transfer protocols such as an HTTP compliant protocol. In one embodiment, a method includes dividing a stream of data, representing the contiguous time based content of a program (e.g. a live video broadcast), into a plurality of distinct media files, and generating a playlist file having a plurality of tags and Universal Resource Indicators (URIs) indicating an order of presentation of the plurality of distinct media files. The plurality of media files and the playlist file can be made available for transmission to a client device which can retrieve the media files using the playlist file.
-
Citations
34 Claims
-
1. A method comprising:
-
dividing a stream of data for a contiguous time based stream of content for a same single program into multiple media files, wherein the multiple media files comprise a first group of one or more media files and a second group of one or more media files, wherein the first group of media files are configured to be stored with a first encoding in a transfer protocol compliant format and wherein the second group of media files are configured to be stored with a second encoding in the transfer protocol compliant format; generating a first playlist file having a plurality of tags and a plurality of Universal Resource Indicators (URIs) indicating an ordering of media content in the first group of media files to recreate the stream of data; generating a second playlist file having a plurality of tags and a plurality of URIs indicating an ordering of media content in the second group of media files to recreate the stream of data; and generating a variant playlist file having a plurality of tags and a plurality of URIs indicating the first playlist file and the second playlist file. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An article comprising a computer-readable non-transitory storage medium having stored thereon executable instructions that, when executed, cause one or more processors to:
-
divide a stream of data for a contiguous time based stream of content for a same single program into multiple media files, wherein the multiple media files comprise a first group of one or more media files and a second group of one or more media files, wherein the first group of media files are configured to be stored with a first encoding in a transfer protocol compliant format and wherein the second group of media files are configured to be stored with a second encoding in the transfer protocol compliant format; generate a first playlist file having a plurality of tags and a plurality of Universal Resource Indicators (URIs) indicating an ordering of media content in the first group of media files to recreate the stream of data; generate a second playlist file having a plurality of tags and a plurality of URIs indicating an ordering of media content in the second group of media files to recreate the stream of data; generate a variant playlist file having a plurality of tags and a plurality of URIs indicating the first playlist file and the second playlist file. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. An apparatus comprising:
-
means for dividing a stream of data for a contiguous time based stream of content for a same single program into multiple media files, wherein the multiple media files comprise a first group of one or more media files and a second group of one or more media files, wherein the first group of media files are configured to be stored with a first encoding in a transfer protocol compliant format and wherein the second group of media files are configured to be stored with a second encoding in the transfer protocol compliant format; means for generating a first playlist file having a plurality of tags and a plurality of Universal Resource Indicators (URIs) indicating an ordering of media content in the first group of media files to recreate the stream of data; means for generating a second playlist file having a plurality of tags and a plurality of URIs indicating an ordering of media content in the second group of media files to recreate the stream of data; and means for generating a variant playlist file having a plurality of tags and a plurality of URIs indicating the first playlist file and the second playlist file.
-
-
14. A machine implemented method comprising:
-
requesting, with a client device, a variant playlist file over a network using a transfer protocol; receiving, in response to the requesting, the variant playlist file comprising a plurality of tags and a plurality of Universal Resource Indicators (URIs) indicating a first playlist file and a second playlist file, wherein one or more of the plurality of tags indicates a first bandwidth parameter associated with the first playlist file and a second bandwidth parameter associated with the second playlist file, wherein the first bandwidth parameter is less than the second bandwidth parameter, and wherein the first playlist file and the second playlist file each is configured to be used at the client device to recreate a contiguous time based stream of content for a same single program; selecting, from the variant playlist file with the client device, the first playlist file or the second playlist file; requesting, using the transfer protocol, the selected first or second playlist file with the client device, wherein the requesting uses a URI from the variant playlist file corresponding to the selected playlist file; receiving, with the client device, the requested playlist file, the requested playlist file having URIs indicating a plurality of media content and a plurality of tags having parameters related to playback of the plurality of media content; requesting using the transfer protocol, the media content in an order indicated by the URIs in the requested playlist file; receiving the requested media content over the network using the transfer protocol. - View Dependent Claims (15, 16)
-
-
17. An article comprising a computer-readable non-transitory storage medium having stored thereon executable instructions that, when executed, cause one or more processors to perform a method comprising:
-
requesting, with a client device, a variant playlist file over a network using a transfer protocol; receiving, in response to the requesting, the variant playlist file comprising a plurality of tags and a plurality of Universal Resource Indicators (URIs) indicating a first playlist file and a second playlist file, wherein one or more of the plurality of tags indicates a first bandwidth parameter associated with the first playlist file and a second bandwidth parameter associated with the second playlist file, wherein the first bandwidth parameter is less than the second bandwidth parameter, and wherein the first playlist and the second playlist each is configured to be used at the client device to recreate a contiguous time based stream of content for a same single program; selecting, from the variant playlist file with the client device, the first playlist file or the second playlist file; requesting, using the transfer protocol, the selected first or second playlist file with the client device, wherein the requesting uses a URI from the variant playlist file corresponding to the selected playlist file; receiving, with the client device, the requested playlist file, the requested playlist file having URIs indicating a plurality of media content and a plurality of tags having parameters related to playback of the plurality of media content; requesting, using the transfer protocol, the media content in an order indicated by the URIs in the requested playlist file; receiving the requested media content over the network using the transfer protocol. - View Dependent Claims (18, 19)
-
-
20. An apparatus comprising:
-
means for requesting, with a client device, a variant playlist file over a network using a transfer protocol; means for receiving, in response to the request, the variant playlist file comprising a plurality of tags and a plurality of Universal Resource Indicators (URIs) indicating a first playlist file and a second playlist file, wherein one or more of the plurality of tags indicates a first bandwidth parameter associated with the first playlist file and a second bandwidth parameter associated with the second playlist file, wherein the first bandwidth parameter is less than the second bandwidth parameter, and wherein the first playlist file and the second playlist file each is configured to be used at the client device to recreate a contiguous time based stream of content for a same single program; means for selecting, from the variant playlist file with the client device, the first playlist file or the second playlist file; means for requesting, using the transfer protocol, the selected first or second playlist file with the client device, wherein the requesting uses a URI from the variant playlist file corresponding to the selected playlist file; means for receiving, with the client device, the requested playlist file, the requested playlist file having URIs indicating a plurality of media content and a plurality of tags having parameters related to playback of the plurality of media content; means for requesting, using the transfer protocol, the media content in an order indicated by the URIs in the requested playlist file; means for receiving the requested media content over the network using the transfer protocol; means for generating an audio and/or video output representing the stream of content by playing the media content with the client device in the order indicated by the requested playlist file. - View Dependent Claims (21)
-
-
22. A method comprising:
-
transmitting a variant playlist file to a client device using a transfer protocol, the variant playlist file having a plurality of tags and a plurality of URIs indicating a first playlist file and a second playlist file and wherein the first playlist file has a plurality of tags and a plurality of Universal Resource Indicators (URIs) indicating an ordering of a first group of media content, having a first encoding, to recreate a stream of data for a contiguous time based stream of content of a same single program, and wherein the second playlist file has a plurality of tags and a plurality of URIs indicating an ordering of a second group of media content, having a second encoding, to recreate the stream of data for the contiguous time based stream of content of the same single program; transmitting, using the transfer protocol, either the first playlist file or the second playlist file to the client device in response to a request from the client device utilizing a URI from the variant playlist file; transferring, using the transfer protocol, at least one of;
(a) media content from the first group of media content to the client device in response to one or more requests from the client device utilizing URIs from the first playlist file, or (b) media content from the second group of media content to the client device in response to one or more requests from the client device utilizing URIs from the second playlist file. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
28. An article comprising a computer readable non-transitory storage medium having stored thereon executable instructions that, when executed, cause one or more processors to:
-
transmit a variant playlist file to a client device using a transfer protocol, the variant playlist file having a plurality of tags and a plurality of URIs indicating a first playlist file and a second playlist file, and wherein the first playlist file has a plurality of tags and a plurality of Universal Resource Indicators (URIs) indicating an ordering of a first group of media content, having a first encoding, to recreate a stream of data for a contiguous time based stream of content of a same single program, and wherein the second playlist file has a plurality of tags and a plurality of URIs indicating an ordering of a second group of media content, having a second encoding, to recreate the stream of data for the contiguous time based stream of content of the same single program; transmit, using the transfer protocol, either the first playlist file or the second playlist file to the client device in response to a request from the client device utilizing a URI from the variant playlist file; transfer, using the transfer protocol, at least one of (a) media content from the first group of media content to the client device in response to one or more request from the client device utilizing URIs from the first playlist file;
or (b) media content from the second group of media content to the client device in response to one or more requests from the client device utilizing URIs from the second playlist file. - View Dependent Claims (29, 30, 31, 32, 33)
-
-
34. An apparatus comprising:
-
means for transmitting a variant playlist file to a client device using a transfer protocol, the variant playlist file having a plurality of tags and a plurality of URIs indicating a first playlist file and a second playlist file and wherein the first playlist file has a plurality of tags and a plurality of Universal Resource Indicators (URIs) indicating an ordering of a first group of media content, having a first encoding, to recreate a stream of data for a contiguous time based stream of content of a same single program, and wherein the second playlist file has a plurality of tags and a plurality of URIs indicating an ordering of a second group of media content, having a second encoding, to recreate the stream of data for the contiguous time based stream of content of the same single program; means for transmitting either the first playlist file or the second playlist file to the client device in response to a request from the client device utilizing the URIs from the variant playlist file using the transfer protocol; means for transferring at least one of (a) media content from the first group of media content to the client device in response to one or more requests from the client device utilizing URIs from the first playlist file using the transfer protocol;
or (b) media content from the second group of media content to the client device in response to one or more requests from the client device utilizing URIs from the second playlist file using the transfer protocol.
-
Specification