SMOOTH, STATELESS CLIENT MEDIA STREAMING
First Claim
1. A computer-implemented method for smoothly playing media on a client, the method comprising:
- sending from the client a request for a chunk of media to a server over a network, wherein the chunk comprises a uniform portion of the media available from the server to multiple clients;
receiving at the client the requested chunk;
parsing the chunk into a metadata portion and a media data portion;
adding the chunk metadata to an ongoing media manifest that describes information regarding a larger media element to which the media chunk belongs; and
playing the media data using a codec identified by the chunk metadata and hardware of the client,wherein the preceding steps are performed by at least one processor.
2 Assignments
0 Petitions
Accused Products
Abstract
An adaptive streaming system is described herein that provides a stateless connection between the client and server for streaming media playback in which the data is formatted in a manner that allows the client to make decisions and react more quickly to changing network conditions. The client requests uniform chunks of media from the server that include a portion of the media. The adaptive streaming system requests portions of a media file or of a live streaming event in small-sized chunks each having a distinguished URL. This allows streaming media data to be cached by existing Internet cache infrastructure. Each chunk contains metadata information that describes the encoding of the chunk and media content for playback by the client. The server may provide chunks in multiple encodings so that the client can switch quickly to chunks of a different bit rate or playback speed.
-
Citations
20 Claims
-
1. A computer-implemented method for smoothly playing media on a client, the method comprising:
-
sending from the client a request for a chunk of media to a server over a network, wherein the chunk comprises a uniform portion of the media available from the server to multiple clients; receiving at the client the requested chunk; parsing the chunk into a metadata portion and a media data portion; adding the chunk metadata to an ongoing media manifest that describes information regarding a larger media element to which the media chunk belongs; and playing the media data using a codec identified by the chunk metadata and hardware of the client, wherein the preceding steps are performed by at least one processor. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer system for smoothly processing media from a live event, the system comprising:
-
a processor and memory configured to execute software instructions; a chunk request component configured to make requests from a client for individual media chunks from an origin server, wherein the chunks represent portions of a media file available individually from the server; a chunk parsing component configured to interpret a format of each media chunk received by the chunk request component and separate the chunk into component parts; a manifest assembly component configured to build a manifest that describes a media element to which received media content chunks belong; a media playback component configured to play back received media content chunks using client hardware; a QoS monitoring component configured to analyze a result of receiving packets from the server and adapt client requests based on a set of current network conditions; and a clock synchronization component configured to synchronize clocks of the server and the client so that the server and client can identify particular chunks based on time. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer-readable storage medium comprising instructions for controlling a computer system to playback media on a client, wherein the instructions, when executed, cause a processor to perform actions comprising:
-
selecting an initial encoding at which to request encoded media from a server; receiving a particular media chunk from the server; playing the received media chunk; determining a quality of service (QoS) metric based on the received chunk; and upon determining that the QoS metric is too low and the client connection to the server cannot handle the current encoding, selecting a second encoding of the encoded media, wherein the second encoding of the encoded media is encoded at a lower bit rate than the initial encoding. - View Dependent Claims (19, 20)
-
Specification