HTTP adaptive streaming server with automatic rate shaping
First Claim
Patent Images
1. An adaptive streaming server for transmitting a content stream through a network to a client, the adaptive streaming server comprisinga Hypertext Transfer Protocol (HTTP) server comprising an input interface configured to receive a request from the client to play the content stream;
- a segmenting unit configured to receive multiple files of the content stream where the multiple files are encoded at different bit rates;
the segmenting unit further configured to segment each of the multiple files into a plurality of segments;
a segment storage unit configured to store the plurality of segments;
a bandwidth monitor configured to monitor a congestion level within the network; and
the HTTP server further comprising;
a processing unit comprising a processor which executes processor-executable instructions stored in a memory to generate a master manifest while taking into account the congestion level within the network and taking into account a number of clients playing the content stream, wherein the master manifest includes a plurality of child manifests, wherein the first child manifest has references to the segments having a first bit rate, the second child manifest has references to the segments having a second bit rate, and the third child manifest has references to the segments having a third bit rate, and wherein the first bit rate is higher than the second bit rate which is higher than the third bit rate.
2 Assignments
0 Petitions
Accused Products
Abstract
An adaptive streaming server and a method are described herein for determining if a congestion level within a network exceeds a predetermined threshold and when this occurs then one or more lower bit rate segments of a content stream will be transmitted to a client.
-
Citations
20 Claims
-
1. An adaptive streaming server for transmitting a content stream through a network to a client, the adaptive streaming server comprising
a Hypertext Transfer Protocol (HTTP) server comprising an input interface configured to receive a request from the client to play the content stream; -
a segmenting unit configured to receive multiple files of the content stream where the multiple files are encoded at different bit rates; the segmenting unit further configured to segment each of the multiple files into a plurality of segments; a segment storage unit configured to store the plurality of segments; a bandwidth monitor configured to monitor a congestion level within the network; and the HTTP server further comprising; a processing unit comprising a processor which executes processor-executable instructions stored in a memory to generate a master manifest while taking into account the congestion level within the network and taking into account a number of clients playing the content stream, wherein the master manifest includes a plurality of child manifests, wherein the first child manifest has references to the segments having a first bit rate, the second child manifest has references to the segments having a second bit rate, and the third child manifest has references to the segments having a third bit rate, and wherein the first bit rate is higher than the second bit rate which is higher than the third bit rate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method in an adaptive streaming server for transmitting a content stream through a network to a client, the method comprising:
-
receiving a request from the client to play the content stream; receiving multiple files of the content stream where the multiple files are encoded at different bit rates; segmenting each of the multiple files into a plurality of segments; storing the plurality of segments; monitoring a congestion level within the network; generating a master manifest while taking into account the congestion level within the network and taking into account a number of clients playing the content stream, wherein the master manifest comprises a plurality of child manifests, wherein the first child manifest has references to the segments having a first bit rate, the second child manifest has references to the segments having a second bit rate, and the third child manifest has references to the segments having a third bit rate. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. An adaptive streaming server for transmitting a content stream through a network to a client, the adaptive streaming server comprising:
-
a server comprising an input interface configured to receive a request from the client to play the content stream; a segmenting unit configured to receive multiple files of the content stream where the multiple files are encoded at different bit rates and further configured to segment each of the multiple files into a plurality of segments; a segment storage unit configured to store the plurality of segments; the server further comprising; a processing unit configured to generate a master manifest that includes a plurality of child manifests, wherein the first child manifest has references to the segments having a first bit rate, the second child manifest has references to the segments having a second bit rate, and the third child manifest has references to the segments having a third bit rate, and wherein the first bit rate is higher than the second bit rate which is higher than the third bit rate, wherein the processing unit comprises a processor and a memory; an output interface configured to send the master manifest to the client; the input interface configured to receive a request from the client to fetch a specific one of the segments corresponding to the content stream; the processing unit configured to obtain the requested segment from the segment storage unit; the output interface configured to send the requested segment to the client; a bandwidth monitor configured to monitor a congestion level within the network; and the processing unit is configured to determine whether the congestion level within the network exceeds a predetermined threshold; the server when the network exceeds the predetermined threshold is configured such that whenever the client requests a segment associated with the first child manifest the client is sent the segment which has a bit rate that is less than the first bit rate by; the input interface configured to receive a request from the client to fetch one of the segments associated with the first child manifest corresponding to the content stream; the processing unit configured to obtain the requested segment and rate shape the obtained requested segment so that the obtained segment has a bit rate that is less than the first bit rate; and
,the output interface configured to send the obtained segment which has the bit rate that is less than the first bit rate to the client.
-
-
20. A method implemented by an adaptive streaming server for transmitting a content stream through a network to a client, the method comprising:
-
receiving a request from the client to play the content stream; receiving multiple files of the content stream where the multiple files are encoded at different bit rates; segmenting each of the multiple files into a plurality of segments; storing the plurality of segments; generating a master manifest that includes a plurality of child manifests, wherein the first child manifest has references to the segments having a first bit rate, the second child manifest has references to the segments having a second bit rate, and the third child manifest has references to the segments having a third bit rate, and wherein the first bit rate is higher than the second bit rate which is higher than the third bit rate; sending the master manifest to the client; receiving a request from the client to fetch a specific one of the segments corresponding to the content stream; obtaining the requested segment; sending the requested segment to the client; monitoring a congestion level within the network; determining whether the congestion level within the network exceeds a predetermined threshold and when the network exceeds the predetermined threshold and whenever the client requests a segment associated with the first child manifest the client is sent the segment which has a bit rate that is less than the first bit rate by; receiving a request from the client to fetch one of the segments associated with the first child manifest corresponding to the content stream; obtaining the requested segment and rate shaping the obtained requested segment so that the obtained segment has a bit rate that is less than the first bit rate; and
,sending the obtained segment which has the bit rate that is less than the first bit rate to the client.
-
Specification