Variant streams for real-time or near real-time streaming to provide failover protection
First Claim
1. A machine implemented method comprising:
- requesting data, with a client device, over a network using a transfer protocol;
receiving, in response to the requesting, a playlist comprising a plurality of tags and a plurality of Uniform Resource Identifiers (URIs) indicating a first playlist file and a second playlist file, wherein one or more of the plurality of tags indicates a first URI associated with the first playlist file and specifying a first location for a stream of content and a second URI associated with the second playlist file and specifying a second location for the stream of content, wherein the second location is different from, but at least partially redundant of, the first location;
selecting, with the client device, the first playlist file or the second playlist file;
using the transfer protocol, requesting the selected first or second playlist file with the client device, wherein the requesting uses a URI from the playlist 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 files and a plurality of tags having parameters related to playback of the plurality of media files, wherein the plurality of media files are segments of the stream of content;
using the transfer protocol, requesting one or more of the media files in an order indicated by the requested playlist file;
receiving the one or more requested media files over the network using the transfer protocol.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatuses provide real-time or near real-time streaming of content using transfer protocols such as an HTTP compliant protocol. In one embodiment, a method includes providing multiple redundant locations that provide media content to client devices using alternative streams. To implement failover protection, a first server device or first content distribution service creates a stream, or multiple alternate bandwidth streams and generates playlist file(s). A second server device or second content distribution service creates a parallel stream, or set of streams. A client attempts to download the playlist file(s) from a first uniform resource locator (URL) using a first stream associated with the first server device or the first content distribution service. If a client is unable to download the playlist file(s) from the first URL, the client attempts to switch to an alternate stream associated with another URL.
-
Citations
21 Claims
-
1. A machine implemented method comprising:
-
requesting data, with a client device, over a network using a transfer protocol; receiving, in response to the requesting, a playlist comprising a plurality of tags and a plurality of Uniform Resource Identifiers (URIs) indicating a first playlist file and a second playlist file, wherein one or more of the plurality of tags indicates a first URI associated with the first playlist file and specifying a first location for a stream of content and a second URI associated with the second playlist file and specifying a second location for the stream of content, wherein the second location is different from, but at least partially redundant of, the first location; selecting, with the client device, the first playlist file or the second playlist file; using the transfer protocol, requesting the selected first or second playlist file with the client device, wherein the requesting uses a URI from the playlist 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 files and a plurality of tags having parameters related to playback of the plurality of media files, wherein the plurality of media files are segments of the stream of content; using the transfer protocol, requesting one or more of the media files in an order indicated by the requested playlist file; receiving the one or more requested media files over the network using the transfer protocol. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A machine readable, non-transitory, tangible storage medium storing executable instructions that cause a data processing system to perform a method comprising:
-
requesting data, with a client device, over a network using a transfer protocol; receiving, in response to the requesting, a playlist comprising a plurality of tags and a plurality of Uniform Resource Identifiers (URIs) indicating a first playlist file and a second playlist file, wherein one or more of the plurality of tags indicates a first URI associated with the first playlist file and specifying a first location for a stream of content and a second URI associated with the second playlist file and specifying a second location for the stream of content, wherein the second location is different from, but at least partially redundant of, the first location; selecting, with the client device, the first playlist file or the second playlist file; using the transfer protocol, requesting the selected first or second playlist file with the client device, wherein the requesting uses a URI from the playlist 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 files and a plurality of tags having parameters related to playback of the plurality of media files, wherein the plurality of media files are segments of the stream of content; using the transfer protocol, requesting one or more of the media files in an order indicated by the requested playlist file; receiving the one or more requested media files over the network using the transfer protocol. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A machine implemented method comprising:
-
requesting, with a client device, a playlist file over a network using a transfer protocol; receiving, in response to the requesting, the playlist file comprising a plurality of tags and a plurality of Uniform Resource Identifiers (URIs), wherein one or more of the plurality of tags indicates a first URI specifying a first location for a stream of content and a second URI specifying a second location for the stream of content, wherein the second location is different from, but at least partially redundant of, the first location; selecting, with the client device, the first location or the second location; using the transfer protocol, requesting the stream of content from the selected first or second location with the client device, wherein the requesting uses a URI from the playlist file corresponding to the selected location, wherein the playlist file has URIs indicating a plurality of media files and a plurality of tags having parameters related to playback of the plurality of media files, wherein the plurality of media files are segments of the stream of content, and wherein one or more of the media files are requested in an order indicated by the playlist file; receiving the one or more requested media files over the network using the transfer protocol. - View Dependent Claims (12, 13, 14)
-
-
15. A data processing system 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 requesting, the variant playlist file comprising a plurality of tags and a plurality of Uniform Resource Identifiers (URIs) indicating a first playlist file and a second playlist file, wherein one or more of the plurality of tags indicates a first URI associated with the first playlist file and specifying a first location for a stream of content and a second URI associated with the second playlist file and specifying a second location for the stream of content, wherein the second location is different from, but at least partially redundant of, the first location; means for selecting, with the client device, the first playlist file or the second playlist file; means for using the transfer protocol, requesting the selected first or second playlist file with the client device, wherein the requesting uses a URI from the playlist 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 files and a plurality of tags having parameters related to playback of the plurality of media files, wherein the plurality of media files are segments of the stream of content; means for using the transfer protocol, requesting one or more of the media files in an order indicated by the requested playlist file; means for receiving the one or more requested media files over the network using the transfer protocol.
-
-
16. A machine implemented method comprising:
-
receiving, at a server device, a request for a variant playlist, the request being received from a network; transmitting, in response to the receiving, the variant playlist over the network using a transfer protocol that is an HTTP (hypertext transfer protocol) compliant protocol, wherein the variant playlist comprises a plurality of tags and a plurality of Uniform Resource Identifiers (URIs) indicating a first playlist file and a second playlist file, wherein one or more of the plurality of tags indicates a first URI associated with the first playlist file and specifying a first location for a stream of content and a second URI associated with the second playlist file and specifying a second location for the stream of content, wherein the second location is different from, but at least partially redundant of, the first location, and wherein an order of URIs in the variant playlist specifies the order in which a client device requests playlists from redundant locations; receiving at the server device a request of the first playlist file from the client device, the requesting coming over the network through the transfer protocol; transmitting, from the server device, the first playlist file to the client device over the network through the transfer protocol, the first playlist file having URIs indicating a plurality of media files and a plurality of tags having parameters related to playback of the plurality of media files, wherein the plurality of media files are segments of the stream of content. - View Dependent Claims (17, 18)
-
-
19. A machine readable, non-transitory, tangible storage medium storing executable instructions that cause a data processing system to perform a method comprising:
-
receiving, at a server device, a request for a variant playlist, the request being received from a network; transmitting, in response to the receiving, the variant playlist over the network using a transfer protocol that is an HTTP (hypertext transfer protocol) compliant protocol, wherein the variant playlist comprises a plurality of tags and a plurality of Uniform Resource Identifiers (URIs) indicating a first playlist file and a second playlist file, wherein one or more of the plurality of tags indicates a first URI associated with the first playlist file and specifying a first location for a stream of content and a second URI associated with the second playlist file and specifying a second location for the stream of content, and wherein the second location is different from, but at least partially redundant of, the first location, and wherein an order of URIs in the variant playlist specifies the order in which a client device requests playlists from redundant locations; receiving at the server device a request of the first playlist file from the client device, the requesting coming over the network through the transfer protocol; transmitting, from the server device, the first playlist file to the client device over the network through the transfer protocol, the first playlist file having URIs indicating a plurality of media files and a plurality of tags having parameters related to playback of the plurality of media files, wherein the plurality of media files are segments of the stream of content. - View Dependent Claims (20, 21)
-
Specification