Multi-tiered scalable media streaming systems and methods
First Claim
1. A system for streaming a scalable media stream from a media server to a media client over a network, the scalable media stream encoded in a scalable media format and comprised of a plurality of layers that define a matrix of one or more operational spots for providing one or more resolutions, frame rates or quality levels of the scalable media stream, the system comprising:
- a session management node connected to the network and comprising a first hardware processor, the session management node for;
receiving the scalable media stream from the media server;
determining, based on a status of the session management node, a first operational spot on the matrix that defines a first subset of the plurality of layers to be removed by the session management node when the scalable media stream is delivered; and
performing steady state thinning on the scalable media stream to remove packets associated with the first subset of the plurality of layers in the scalable media stream to produce a session media stream at the first operational spot, the session media stream comprising the remaining layers of the plurality of layers of the scalable media stream; and
a remote client management node connected to the network and comprising a second hardware processor, the client management node for;
receiving a client input media stream, the client input media stream being at least a portion of the session media stream;
determining, based on changes in network conditions between the client management node and the media client, a second operational spot on the matrix that defines a second subset of the plurality of layers to be removed by the client management node when the scalable media stream is delivered;
performing dynamic thinning on the client input media stream to remove packets associated with the second subset of the plurality of layers to produce a client output media stream; and
transmitting the client output media stream to the media client;
wherein the client management node is configured to receive a request for the scalable media stream from the media client, the request from the media client including a URL associated with the scalable media stream,wherein the client management node is further configured to select, using a dynamic routing table and the URL associated with the scalable media stream, one of a plurality of intermediary management nodes, each comprising a processor and being situated between the client management node and the session management node; and
wherein the session management node receives the request from the selected one of the plurality of intermediary management nodes.
6 Assignments
0 Petitions
Accused Products
Abstract
Embodiments disclosed herein relate generally to systems and methods for delivering a scalable media stream from a media server to a media client, wherein thinning is performed at more than one location in the network between the media server and the media client. The system includes at least a session management node located close to the media server, and a client management node located close to the media client. The session management node receives the scalable media stream from the media sever and performs steady state thinning on the scalable media stream to produce a session media stream. The client management node receives a client input media stream, which is at least a portion of the scalable media stream, and performs dynamic thinning on the client input media stream to produce a client output media stream that is streamed to the media client.
-
Citations
36 Claims
-
1. A system for streaming a scalable media stream from a media server to a media client over a network, the scalable media stream encoded in a scalable media format and comprised of a plurality of layers that define a matrix of one or more operational spots for providing one or more resolutions, frame rates or quality levels of the scalable media stream, the system comprising:
-
a session management node connected to the network and comprising a first hardware processor, the session management node for; receiving the scalable media stream from the media server; determining, based on a status of the session management node, a first operational spot on the matrix that defines a first subset of the plurality of layers to be removed by the session management node when the scalable media stream is delivered; and performing steady state thinning on the scalable media stream to remove packets associated with the first subset of the plurality of layers in the scalable media stream to produce a session media stream at the first operational spot, the session media stream comprising the remaining layers of the plurality of layers of the scalable media stream; and a remote client management node connected to the network and comprising a second hardware processor, the client management node for; receiving a client input media stream, the client input media stream being at least a portion of the session media stream; determining, based on changes in network conditions between the client management node and the media client, a second operational spot on the matrix that defines a second subset of the plurality of layers to be removed by the client management node when the scalable media stream is delivered; performing dynamic thinning on the client input media stream to remove packets associated with the second subset of the plurality of layers to produce a client output media stream; and transmitting the client output media stream to the media client; wherein the client management node is configured to receive a request for the scalable media stream from the media client, the request from the media client including a URL associated with the scalable media stream, wherein the client management node is further configured to select, using a dynamic routing table and the URL associated with the scalable media stream, one of a plurality of intermediary management nodes, each comprising a processor and being situated between the client management node and the session management node; and wherein the session management node receives the request from the selected one of the plurality of intermediary management nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
a resolution, frame rate and quality level specified by the media client; a profile of the media client; and a defined set of policies.
-
-
15. The system of claim 13, wherein dynamic thinning is thinning performed in response to dynamic feedback received from at least one of the session management node, the client management node, the media client and the network.
-
16. The system of claim 15, wherein dynamic thinning adjusts the steady state operational spot based on the dynamic feedback received.
-
17. The system of claim 15, wherein the dynamic feedback indicates an available bandwidth.
-
18. The system of claim 17, wherein the dynamic feedback comprises at least one RTCP message.
-
19. A method for streaming a scalable media stream from a media server to a media client over a network, the scalable media stream encoded in a scalable media format and comprised of a plurality of layers for providing one or more resolutions, frame rates or quality levels of the scalable media stream, the method comprising:
-
(a) receiving a request from the media client for the scalable media stream at a client management node, wherein the request from the media client includes a URL associated with the scalable media stream; (b) transmitting the request from the client management node to a session management node, wherein transmitting the request comprises; selecting one of a plurality of intermediary management nodes, wherein the selecting comprises selecting the intermediary management node based on a dynamic routing table and the URL associated with the scalable media stream; and transmitting the request from the client management node to the selected intermediary management node; (c) receiving the request at the session management node from the selected intermediary management node; (d) transmitting the request from the session management node to the media server; (e) receiving the scalable media stream at the session management node, in response to the request in (d); (f) determining, based on a status of the session management node, a first operational spot on the matrix that defines a first subset of the plurality of layers to be removed by the session management node when the scalable media stream is delivered; (q) performing steady state thinning of the scalable media stream to remove packets associated with the first subset of the plurality of layers in the scalable media stream to produce a session media stream at the first operational spot using the session management node, the session media stream comprising the remaining layers of the plurality of layers of the scalable media stream; (h) receiving a client input media stream at the client management node, the client input media stream being at least a portion of the session media stream; (i) determining, based on changes in network conditions between the client management node and the media client, a second operational spot on the matrix that defines a second subset of the plurality of layers to be removed by the client management node when the scalable media stream is delivered; (j) performing dynamic thinning on the client input media stream to remove packets associated with the second subset of the plurality of layers to produce a client output media stream using the client management node; and (k) transmitting the client output media stream from the client management node to the media client. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification