Forecasting and reservation of transcoding resources for live streaming
11800166 · 2023-10-24
Assignee
Inventors
- Emna Baccour (Doha, QA)
- Fatima Haouari (Doha, QA)
- Aiman Erbad (Doha, QA)
- AMR MOHAMED (DOHA, QA)
- Mohsen Guizani (Doha, QA)
Cpc classification
H04N21/2408
ELECTRICITY
H04N21/23113
ELECTRICITY
H04N21/26241
ELECTRICITY
H04N21/23103
ELECTRICITY
H04N21/2625
ELECTRICITY
H04N21/231
ELECTRICITY
H04L65/61
ELECTRICITY
H04N21/23116
ELECTRICITY
H04N21/251
ELECTRICITY
H04L67/1001
ELECTRICITY
H04N21/2407
ELECTRICITY
International classification
H04N21/262
ELECTRICITY
H04L65/61
ELECTRICITY
H04L67/1001
ELECTRICITY
H04N21/231
ELECTRICITY
H04N21/24
ELECTRICITY
Abstract
The present disclosure provides a system and methods for determining and reserving an optimized amount of required cloud instance resources in order to provide quality streaming to viewers while also reducing overhead costs. For content providers, the choice of appropriate cloud location to transcode the live streams and appropriate number of video representations to serve the current viewership is a key in minimizing cost. However, this task cannot typically be done on the fly due to the properties of live streaming characterized by its dynamic, heterogeneity and wideness. The provided system helps predict the incoming load and the exact number of resources to allocate at each cloud site to help prevent the content provider from over-provisioning resources, leading to an extra cost, or under-provisioning resources, leading to viewers' dissatisfaction.
Claims
1. A system comprising: a resource allocation optimizer including a first processor in communication with a first memory; and a plurality of cloud sites in communication with the resource allocation optimizer, each cloud site including a respective second processor in communication with a respective second memory, wherein the resource allocation optimizer is separate from the plurality of cloud sites, wherein the first processor is configured to: receive video information from each of the plurality of cloud sites, wherein the video information includes past videos streamed at a first past time, determine a desired quantity of cloud instances during a past interval for each respective cloud site based on the received video information, and transmit each determined desired quantity of cloud instances to its respective cloud site, and wherein each respective second processor is configured to: predict, using at least one model, a quantity of cloud instances needed to achieve a predetermined quality level for videos to be streamed at a second future time subsequent to the first past time, based on the determined desired quantity of cloud instances during the past interval for the respective cloud site, and reserve a quantity of cloud instances at the respective cloud site based on the prediction in advance of live-streaming of the videos, wherein determining the desired quantity of cloud instances is based on minimizing a cost of broadcasting a video, wherein the cost is a sum of a storage cost at each respective cloud site, a migration cost of a video replica from one respective cloud site to another respective cloud site, and a cost of serving viewers, wherein the storage cost is calculated according to:
S=Σ.sub.v∈V(t)Σ.sub.r.sub.
2. The system of claim 1, wherein the plurality of cloud sites are included in a geo-distributed cloud infrastructure.
3. The system of claim 1, wherein the video information includes information on a plurality of videos broadcasted at the plurality of cloud sites.
4. The system of claim 1, wherein the video information includes location information of the viewers of a video and a broadcasted video quality of the video.
5. The system of claim 1, wherein each respective cloud site includes its own respective collected video information.
6. The system of claim 1, wherein the at least one model is trained by one or more machine learning algorithms including Long Short Term Memory (LSTM), Gated Recurrent Unit (GRU), Convolutional Neural Network (CNN), MultiLayer Perceptron (MLP), and XGboost.
7. A method comprising: receiving, by a resource allocation optimizer, video information from each of a plurality of cloud sites, wherein the video information includes information on a plurality of past videos broadcasted at the plurality of cloud sites at a first past time; determining, by the resource allocation optimizer, a desired quantity of cloud instances during a past interval for each respective cloud site based on the received video information; and transmitting, by the resource allocation optimizer, each determined desired quantity of cloud instances to its respective cloud site, wherein each cloud site includes a respective second processor configured to reserve a quantity of cloud instances at the respective cloud site based on a prediction in advance of live-streaming of videos, wherein the resource allocation optimizer is separate from the plurality of cloud sites, wherein determining the desired quantity of cloud instances is based on minimizing a cost of broadcasting a video, wherein the cost is a sum of a storage cost at each respective cloud site, a migration cost of a video replica from one respective cloud site to another respective cloud site, and a cost of serving viewers, wherein the storage cost is calculated according to:
S=Σ.sub.v∈V(t)Σ.sub.r.sub.
8. The method of claim 7, wherein the decision variable A(v, r.sub.a) is equal to one if the incoming video v is allocated in the video allocation region r.sub.a and is equal to zero otherwise.
9. The method of claim 7, wherein the migration cost is calculated according to:
M=Σ.sub.v∈V(t)Σ.sub.r.sub.
10. The method of claim 7, wherein the cost of serving viewers is calculated according to:
G=Σ.sub.v∈V(t)Σ.sub.r.sub.
11. The method of claim 10, wherein the decision variable W(v, r.sub.a, r.sub.w) is equal to one if viewers in the video serving region r.sub.w are served from region r.sub.a and is equal to zero otherwise.
12. The method of claim 7, further comprising determining from which respective cloud site of the plurality of cloud sites that a video should be broadcast to one or more viewers.
13. The method of claim 12, wherein the respective cloud site from which the video should be broadcast is the cloud site that is nearest geographically to the one or more viewers.
14. A method comprising: transmitting, by a resource allocation optimizer, video information to a plurality of cloud sites, wherein the video information includes information on one or more past videos streamed at a first past time; receiving, by the plurality of cloud sites, a desired quantity of cloud instances during a past interval from the resource allocation optimizer, the desired quantity of cloud instances determined, by the resource allocation optimizer, based on the video information; predicting, by the plurality of cloud sites, using at least one model, a quantity of cloud instances needed to achieve a predetermined quality level for a video to be streamed at a second future time subsequent to the first past time, based on the determined desired quantity of cloud instances during the past interval; and reserving, by the plurality of cloud sites, a quantity of cloud instances based on the prediction in advance of live-streaming of the video, wherein the resource allocation optimizer is separate from the plurality of cloud sites, wherein the desired quantity of cloud instances is determined based on minimizing a cost of broadcasting a video, wherein the cost is a sum of a storage cost at each respective cloud site, a migration cost of a video replica from one respective cloud site to another respective cloud site, and a cost of serving viewers, wherein the storage cost is calculated according to:
S=Σ.sub.v∈V(t)Σ.sub.r.sub.
15. The method of claim 14, further comprising training the at least one model using the received desired quantity of cloud instances.
16. The method of claim 14, further comprising updating the video information with the received desired quantity of cloud instances.
17. The method of claim 14, wherein the video information includes one or more of a length, size, bitrate, frame rate, resolution, and one or more geographical locations of viewers of the one or more videos streamed at a first time.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
DETAILED DESCRIPTION
(5) The present disclosure provides a system and methods for determining and reserving an optimized amount of required cloud instance resources in order to provide quality streaming to viewers while also reducing overhead costs. For content providers, the choice of appropriate cloud location to transcode the live streams and appropriate number of video representations to serve the current viewership is a key in minimizing cost. However, this task cannot typically be done on the fly due to the properties of live streaming characterized by its dynamic, heterogeneity and wideness. The provided system helps predict the incoming load and the exact number of resources to allocate at each cloud site to help prevent the content provider from over-provisioning resources, leading to an extra cost, or under-provisioning resources, leading to viewers' dissatisfaction. A content providers' profit is typically directly proportional to the viewers perceived quality of experience, and therefore, it is important for content providers to deliver viewers' expected quality of experience in a cost effective manner. Viewers who experience low quality of experience may abandon a video playback. The presently disclosed system provides assigning incoming videos to proactively prepared servers at the proximity of viewers, without the need for initialization delay to boot on demand servers, which helps ensure users can watch a live stream without buffering.
(6) The provided system and methods address the problem of start-up delays and extra-cost. An advantage of the provided system is that it predicts the exact resources needed at each cloud location and for each required representation at a minimum cost while respecting delays constraints, based on historical optimal allocations. The cloud servers are pre-rented proactively in such a way the content provider can benefit from the reservation discount and machines are booted beforehand to allow direct assigning of transcoding tasks.
(7) The provided system includes a resource allocation optimizer in communication with multiple cloud sites. The cloud sites may be distributed geographically as part of a geo-distributed cloud infrastructure. In at least some instances, the resource allocation optimizer uses past incoming videos to determine a desired or optimal quantity of transcoding resources, or cloud instances, that may be required at each cloud site during certain past intervals. In some instances, this optimization takes into account the latency and requested video bitrate constraints that may exist. In at least some aspects, each cloud site may include a predictive model for predicting a quantity of cloud instances needed for a future live stream at a respective cloud site. In various aspects, the respective results of the resource allocation optimizer for each cloud site may be transmitted to their respective cloud sites to be used by the predictive models. In various aspects, the results of the resource allocation optimizer may be used to train each of the predictive models regarding optimal resource allocation at each time frame at each cloud site.
(8) The respective predictive models may be deployed to determine the optimal number of transcoding resources that should be reserved for the immediate future (e.g., next hour, next day, next month, etc.) at each cloud site. The respective predictive models, in conjunction with the offline resource allocation optimizer, may function in a live setting or to plan for a future event, in various instances. The resource allocation optimizer may analyze the prior intervals within a live streaming event and determine, based on both the information from these prior intervals and the earlier training based on past videos, the optimal number of cloud instances for these prior intervals at each geo-distributed cloud site. These optimizations may then be passed to the trained predictive model at each cloud site which then, based on the received optimizations and its prior training, determine the amount of transcoding resources to be reserved at that cloud site for the future event. Then, the amount of transcoding resources may be reserved with reduced pricing without the worry of over or under-provisioning.
(9) The presently disclosed system and methods may provide benefits to cloud service providers. For example, by leasing exact resources for the content providers, cloud service providers can manage their servers' infrastructure more efficiently. Additionally, by preparing and offering the appropriate resources to allocate the required number of representations at multiple locations, cloud service providers can avoid congestions caused by accessing one cloud location or serving one video version. Furthermore, preparing resources only in sites where the videos are popular can prevent underutilization caused by allocating videos on inadequate cloud regions with few viewers. Avoiding the underutilization problem helps avoid inefficient energy consumption.
(10) The presently disclosed system and methods may provide benefits to content viewers. For example, by having ready resources to allocate videos on the fly, the streaming initialization delays are minimized. Also, allocating resources at the vicinity of viewers contributes to minimize the access delays and the playback buffering. Additional advantages provided by the presently disclosed system and methods will become apparent from the following description of the figures.
(11)
(12) In at least some aspects of the system 100, broadcasters broadcast their live streams to viewers via one or more of the cloud sites 110, 120. In some aspects, broadcasters may be allocated to a cloud site 110, 120 geographically nearest to the broadcaster. In an example, a broadcaster 130 may broadcast a live video stream to viewers 132 via the cloud site 110. In another example, a broadcaster 140 may similarly broadcast a live video stream to viewers 142 via the cloud site 120. In various instances, the broadcaster 130 and the broadcaster 140 may broadcast over a network. The network can include, for example, the Internet or some other data network, including, but not limited to, any suitable wide area network or local area network. To efficiently broadcast their respective live video streams, it would be beneficial for the broadcasters 130 and 140 to be able to accurately predict a quantity of cloud instance resources that they will need at their respective cloud sites 110 and 120. Such a prediction would help enable the broadcasters 130 and 140 to reserve a needed quantity of cloud instance resources in advance of their respective live video streams.
(13) The resource allocation optimizer 102 may include a processor in communication with a memory 106. The processor may be a CPU 104, an ASIC, or any other similar device. In other examples, the components of the resource allocation optimizer 102 may be combined, rearranged, removed, or provided on a separate device or server. In various aspects, the memory 106 may store collected video information 108 related to live streamed videos that have been broadcast at the cloud site 110 over a period of time (e.g., days, months, years, etc.). In an example, the collected video information 108 may include any one or more of a length (e.g., minutes), size (e.g., gigabytes), bitrate (e.g., megabytes/sec), frame rate (e.g., frames/sec), resolution (e.g., 1080p), or similar information of a streamed live video and geographical locations of the viewers 132. In various aspects, the resource allocation optimizer 102 may be deployed in a centralized server that is in communication with the cloud site 110 and the cloud site 120. In at least some aspects, the resource allocation optimizer 102 determines an optimized resource allocation for the cloud site 110 for a video that has been live streamed in the past and stored in the memory 106. The resource allocation optimizer 102 may do the same for the cloud site 120. In some aspects, the resource allocation optimizer 102 may determine from which cloud site 110 or 120 that viewers (e.g., the viewers 132 or 142) should be served.
(14) In various aspects, the cloud site 110 may include a processor in communication with a memory 114. The processor may be a CPU 112, an ASIC, or any other similar device. In various aspects, a dataset 116 may be stored in the memory 114. In some aspects, the dataset 116 includes information based on optimized resource allocation determinations from the resource allocation optimizer 102 on live streamed videos that have been broadcast at the cloud site 110. Stated differently, the resource allocation optimizer 102 may make determinations based on the collected video information 108 and information based on those determinations may be stored in the dataset 116. In an example, this information in the dataset 116 may include time series datasets including records of the quantity of cloud instances rented for each time interval in a period of time that has already occurred. In some instances, this information in the dataset 116 may include determinations from the resource allocation optimizer 102 of a quantity of cloud instances that would have been ideal to rent corresponding to how many were actually rented.
(15) In at least some aspects, the cloud site 110 may include a resource prediction model 118 trained to predict a quantity of cloud instances needed to achieve a predetermined quality level for a live stream video that has yet to broadcast at the cloud site 110. This prediction may be based, at least in part, on a determined desired quantity of cloud instances, which is determined by the resource allocation optimizer 102. For example, the resource allocation optimizer 102 may make a series of determinations of what a desired or optimal quantity of cloud instances is for a set of videos that have already been broadcast at the cloud site 110. This determination data may be stored in the dataset 116 and the resource prediction model 118 may be trained based on this determination data. The training helps the resource prediction model 118 to predict a quantity of cloud instances needed to live stream a particular video at the cloud site 110 in the future.
(16) The resource prediction model 118 may be implemented by one or more machine learning models including one or more supervised learning models, unsupervised learning models, or other types of machine learning models. In various aspects, the resource prediction model 118 may be trained by a machine learning algorithm. For example, the machine learning algorithm may be Long Short Term Memory (LSTM), Gated Recurrent Unit (GRU), Convolutional Neural Network (CNN), MultiLayer Perceptron (MLP), or XGboost in various instances. In some aspects, the mean absolute error may be set as a loss function when training the resource prediction model 118. In some examples, the components of the cloud site 110 may be combined, rearranged, removed, or provided on a separate device or server.
(17) In various aspects, the cloud site 120 may include a processor in communication with a memory 124. The processor may be a CPU 122, an ASIC, or any other similar device. In various aspects, a dataset 126 may be stored in the memory 124. The dataset 126 may include information similar to the dataset 116, except that the dataset 126 includes records of the quantity of cloud instances rented for each time interval in a period of time for the cloud site 126.
(18) In at least some aspects, the cloud site 120 may include a resource prediction model 128 trained to predict a quantity of cloud instances needed to achieve a predetermined quality level for a live stream video that has yet to broadcast at the cloud site 120. This prediction may be based, at least in part, on a determined desired quantity of cloud instances, which is determined by the resource allocation optimizer 102. For example, the resource allocation optimizer 102 may make a series of determinations of what a desired or optimal quantity of cloud instances is for a set of videos that have already been broadcast at the cloud site 120. This determination data may be stored in the dataset 126 and the resource prediction model 128 may be trained based on this determination data. The training helps the resource prediction model 128 to predict a quantity of cloud instances needed to live stream a particular video at the cloud site 120 in the future.
(19) The resource prediction model 128 may be implemented by one or more machine learning models including one or more supervised learning models, unsupervised learning models, or other types of machine learning models. In various aspects, the resource prediction model 128 may be trained by a machine learning algorithm. For example, the machine learning algorithm may be Long Short Term Memory (LSTM), Gated Recurrent Unit (GRU), Convolutional Neural Network (CNN), MultiLayer Perceptron (MLP), or XGboost in various instances. In some aspects, the mean absolute error may be set as a loss function when training the resource prediction model 128. In some examples, the components of the cloud site 120 may be combined, rearranged, removed, or provided on a separate device or server.
(20) In various aspects, the resource prediction model 118, 128 of each respective cloud site 110, 120 of the system 100 is trained based on data pertaining to its own respective cloud site 110, 120. For example, the resource prediction model 118 of the cloud site 110 may be trained using the dataset 116, which includes information specific to the cloud site 110. Similarly, the resource prediction model 128 of the cloud site 120 may be trained using the dataset 126, which includes information specific to the cloud site 120.
(21)
(22) In an example, at 204, the start of each period t, the resource allocation optimizer 102 may receive collected video information 108 from the period t−1 (e.g., received from different cloud sites 110 and 120 and stored in the memory 106). From the collected video information 108, the resource allocation optimizer 102 may determine a desired quantity of cloud instances with which to serve viewers for each of the respective cloud sites (e.g., the cloud sites 110 and 120). In some aspects, the resource allocation optimizer 102 may determine which cloud site 110 or 120 should be used to serve the viewers. For example, the resource allocation optimizer 102 may determine which cloud site 110, 120 is nearest to the viewers. In some aspects, at 206, the resource allocation optimizer 102 may transmit the determined desired quantity of cloud instances to each of the cloud sites to be sent to their respective resource prediction models. In the illustrated example, the resource allocation optimizer 102 may transmit the determined desired quantity of cloud instances to the cloud site 110 to be sent to the resource prediction model 118.
(23) At 208, the resource prediction models at each cloud site predict a quantity of cloud instances needed to achieve a predetermined quality level for a video streaming at a time frame t+1. In the illustrated example, the resource prediction model 118 predicts a quantity of cloud instances needed to achieve a predetermined quality level for a video streaming at a time frame t+1 at the cloud site 110. Based on the predictions from the respective resource prediction models, a quantity of cloud instances are reserved.
(24)
(25) In at least some aspects, the method 300 includes receiving video information (e.g., collected video information 108) from each of a plurality of cloud sites (block 302). For example, the resource allocation optimizer 102 may receive video information from the cloud site 110 and video information from the cloud site 120, all of which composes the collected video information 108. In various aspects, the collected video information 108 may include any one or more of a length (e.g., minutes), size (e.g., gigabytes), bitrate (e.g., megabytes/sec), frame rate (e.g., frames/sec), resolution (e.g., 1080p), or similar information of one or more streamed live videos and geographical locations of the viewers of the streamed live videos.
(26) Based on the received collected video information 108, a desired quantity of cloud instances for each respective cloud site may be determined (block 304). Determining the desired quantity of cloud instances may be based on minimizing a cost of broadcasting a respective video. In some aspects, determining the desired quantity of cloud instances is based on minimizing a cost of broadcasting a respective video while providing a predetermined bitrate of the video. For example, one or more viewers may request (e.g., choose a video quality) a particular bitrate for the streaming video. In at least some aspects, the cost of broadcasting a respective video (C) is a sum of a storage cost (S) at each respective cloud site, a migration cost (M) of a video replica from one respective cloud site to another respective cloud site, and a cost (G) of serving viewers, which is represented as Equation 1 below.
C=S+M+G Equation 1.
(27) A set of incoming videos at a period t may be denoted by V(t)={v.sub.1, v.sub.2, v.sub.3, . . . , v.sub.m} where each v is an incoming video. A set of regions may be represented by R={r.sub.1, r.sub.2, r.sub.3, . . . , r.sub.n}. For example, r.sub.b, and r.sub.w may denote the broadcasting region, video allocation region, and video serving region, respectively. A round trip delay from r.sub.a to r.sub.w may be represented by d.sub.r.sub.
(28) The storage cost (S) at each respective cloud site can be calculated according to Equation 2 below. In Equation 2, ∝.sub.r.sub.
S=Σ.sub.v∈V(t)Σ.sub.r.sub.
(29) The migration cost (M) can be calculated according to Equation 3 below. In Equation 3, ω.sub.r.sub.
M=Σ.sub.v∈V(t)Σ.sub.r.sub.
(30) The cost (G) of serving viewers can be calculated according to Equation 4 below. In Equation 4, ω.sub.r.sub.
G=Σ.sub.v∈V(t)Σ.sub.r.sub.
(31) As mentioned above, determining the desired quantity of cloud instances may be based on minimizing the cost of broadcasting a respective video. Minimizing the total cost (C) for a period t may be calculated according to Equation 5 below subject to at least some of the constraints of Equations 6 to 11.
mi.sub.(v,r.sub.
(32) In at least aspects, every video v is allocated in the broadcaster's nearest cloud site according to Equation 6 below.
A(v,r.sub.b)=1∀v∈V(t),∀r.sub.b∈B(t) Equation 6.
(33) In at least some aspects, a video v can be served from region r.sub.a to viewers at region r.sub.w only if it is allocated at region r.sub.a according to Equation 7 below.
(v,r.sub.a,r.sub.w)≤A(v,r.sup.a)∀v∈V(t),∀r.sub.a∈R,∀r.sub.w∈R Equation 7.
(34) In at least some aspects, a video v can be served from region r.sub.a to region r.sub.w only if there exists viewers at region r.sub.w according to Equation 8 below.
W(v,r.sub.a,r.sub.w)≤E(v,r.sub.w)∀v∈V(t),∀r.sub.w∈R,∀r.sub.w∈R Equation 8.
(35) In at least some aspects, if there exists viewers for video v at region r.sub.w, they can only be served from one region according to Equation 9 below.
Σ.sub.∈RW(v,r.sub.a,r.sub.w)=E(v,r.sub.w)∀v∈V(t),∀r.sub.w∈R Equation 9.
(36) In at least some aspects, an average serving request delay to serve a video v does not exceed a predetermined threshold D according to Equation 10 below.
(37)
(38) As described above, A(v, r.sub.a) and W(v, r.sub.a, r.sub.w) are each binary decision variables that be set to zero (0) or one (1) according to Equation 11 below.
A(v,r.sub.a),W(v,r.sub.a,r.sub.w)∈{0,1} Equation 11.
(39) Once the desired quantity of cloud instances for each respective cloud site are determined, each determined desired quantity of cloud instances may be transmitted to its respective cloud site (block 306). For example, the resource allocation optimizer 102 may transmit a determined desired quantity of cloud instances for the cloud site 110 to the cloud site 110 and a determined desired quantity of cloud instances for the cloud site 120 to the cloud site 120.
(40) In some aspects, a particular cloud site from which viewers should be served is determined. For example, the resource allocation optimizer 102 may determine a cloud site that is nearest geographically to viewers, or likely viewers, of a video to be live streamed.
(41)
(42) In at least some aspects, the method 400 includes transmitting video information to an external server (block 402). The video information may include information on one or more video streamed at a first time. For example, the cloud site 110 may transmit video information related to videos streamed at the cloud site 110 to the resource allocation optimizer 102. In response, the cloud site 110 may receive a desired quantity of cloud instances from the resource allocation optimizer 102 (block 404).
(43) Based on the desired quantity of cloud instances, the cloud site 110 may predict a quantity of cloud instances needed to achieve a predetermined quality level (e.g., bitrate or resolution) for a video streaming at a second time subsequent to the first time using the resource prediction model 118 (block 406). For example, the resource allocation optimizer 102 may make a series of determinations of what a desired or optimal quantity of cloud instances is for a set of videos that have already been broadcast at the cloud site 110. This determination data may be stored in the dataset 116 and the resource prediction model 118 may be trained based on this determination data. The training helps the resource prediction model 118 to predict a quantity of cloud instances needed to live stream a particular video at the cloud site 110 in the future (e.g., a second time subsequent to the first time). In at least some aspects, the cloud site 110 may reserve a quantity of cloud instances based on the prediction from the resource prediction model 118 (block 408). For example, the cloud site 110 may reserve a quantity equal to the prediction.
(44) Without further elaboration, it is believed that one skilled in the art can use the preceding description to utilize the claimed inventions to their fullest extent. The examples and aspects disclosed herein are to be construed as merely illustrative and not a limitation of the scope of the present disclosure in any way. It will be apparent to those having skill in the art that changes may be made to the details of the above-described examples without departing from the underlying principles discussed. In other words, various modifications and improvements of the examples specifically disclosed in the description above are within the scope of the appended claims. For instance, any suitable combination of features of the various examples described is contemplated.