Reliable media streaming
First Claim
1. A computer-implemented method for providing failover in a streaming media system, the method comprising:
- receiving encoded media data from at least one encoder for a media stream, wherein the encoded data is pushed to an ingest server;
pushing the received encoded media data from the ingest server to multiple origin servers so that the encoder consumes bandwidth for transmitting a single copy of the media data but gains failover provided by two or more origin servers;
receiving from at least one distribution server a request to pull data from the origin server;
determining that at least one of the encoder, the ingest server, the origin server, or the distribution server has experienced a failure that disrupts transmission of the media data; and
directing a receiver of the media data to retrieve the media data from a redundant server with access to the encoded media data,wherein the preceding steps are performed by at least one processor.
2 Assignments
0 Petitions
Accused Products
Abstract
A reliable streaming system increases reliability of live and on-demand streaming media events through a robust server architecture that allows fast failover and recovery in the event of network, hardware, or other failures. The system provides for failover of encoders, ingest servers, which receive encoded media data from encoders, and origin servers, which serve as the retrieval point of last resort for connecting clients. The system also provides a push proxy mechanism that allows one copy of data to feed redundant servers and pre-warm caches, saving on provisioned bandwidth. In addition, the system provides a distribution server role that allows content to be automatically syndicated to a region when needed. Thus, the reliable streaming system provides a streaming solution with no single point of failure and redundancy and fast failover built into the content network architecture.
-
Citations
19 Claims
-
1. A computer-implemented method for providing failover in a streaming media system, the method comprising:
-
receiving encoded media data from at least one encoder for a media stream, wherein the encoded data is pushed to an ingest server; pushing the received encoded media data from the ingest server to multiple origin servers so that the encoder consumes bandwidth for transmitting a single copy of the media data but gains failover provided by two or more origin servers; receiving from at least one distribution server a request to pull data from the origin server; determining that at least one of the encoder, the ingest server, the origin server, or the distribution server has experienced a failure that disrupts transmission of the media data; and directing a receiver of the media data to retrieve the media data from a redundant server with access to the encoded media data, wherein the preceding steps are performed by at least one processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system for reliably streaming media events, the system comprising:
-
a processor and memory configured to execute software instructions; a server role component configured to receive configuration information that defines a particular server'"'"'s role in a content network and prepares the server to carry out that role; an encoder interface component configured to provide an interface between the system and one or more encoders that provide encoded media data as continuous media fragments, wherein each encoder pushes received encoded media data to an ingest server and then to multiple origin servers so that the encoder consumes bandwidth for transmitting a single copy of the media data but gains failover provided by two or more origin servers; an index fragment component configured to create and maintain an index table of media fragments received from encoders; a fragment data store configured to store received media fragments and the created index table of fragments to provide to clients based on received client requests; a client interface component configured to receive client requests for media fragments and provide manifest data and requested fragments to clients. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable storage device comprising instructions for controlling a computer system to reliably receive media fragments over a network, wherein the instructions, when executed, cause a processor to perform actions comprising:
-
requesting a media fragment associated with a streaming media presentation; receiving an error indicating that the fragment could not be retrieved from a first server; retrying the request for the media fragment by sending the request to a second redundant server containing the media fragment, wherein the second redundant server was previously sent the media fragment from an ingest server that provided the fragment to multiple origin servers so that an encoder consumes bandwidth for transmitting a single copy of the media data but gains failover provided by two or more origin servers; receiving the requested media fragment; and displaying the received media fragment without interruption to the streaming media presentation. - View Dependent Claims (17, 18, 19)
-
Specification