Audience and Complexity Aware Orchestration


  • abdelmajid moussaoui ATEME
  • Thomas Guionnet
  • Mickael Raulet


Cloud, analytics, OTT, Streaming, Video Encoding, Machine Learning


Video encoding services are known to be computationally intensive ‎[2]. In a software environment, it is desirable to be able to adapt to the available computing resources. Therefore, modern live video encoders have the “elasticity” feature. That is, their complexity adapts automatically to the number and capabilities of available CPU cores. In other words, the more CPU are allocated to a live video encoder, the higher the encoding performance. Until recently, the elasticity feature was used as an ad-hoc adaptation to uncontrollably varying conditions. In ‎[1], authors are going a step further by developing a mechanism which allows seamless CPU reallocation in a Kubernetes cluster pod. Therefore, it becomes possible to control the trade-off between coding efficiency and CPU power consumption, by deciding which amount of CPU to allocate to a given live channel. This process is called dynamic orchestration.

Another noteworthy feature has been demonstrated in ‎[1]: not every content needs the same amount of CPU. There is a relationship between content characteristics and encoder algorithmics convergence time. Some contents need more CPU than others to achieve equivalent coding performance. Given a finite amount of CPU cores and several video channels, the content adapted dynamic orchestration process allocates a variable number of CPU cores to each channel, depending on each channel content characteristics. The content characteristics are computed in real-time in the lookahead part of each channel encoder and transmitted to the orchestrator. CPU allocation is updated continuously, thus keeping the CPU usage optimal. An experiment is provided where a set of live channels with the same encoder configuration are running on a server. The total number of CPU cores to be allocated to the channels is fixed. The content complexity of every channel is varying, and channels are generally different from each other’s. Up to 13% of bitrate reduction, while having the same video quality, was demonstrated in the dynamic allocation mode comparing to a static mode, where every channel gets the same CPU allocation. Another setup is implemented with the same channels but with the target to reduce the CPU usage. Dynamic allocation mode used 30% less CPU cores to reach the same video quality and channel bitrate than static mode.

Although having optimized the video headend computing resources consumption is a great success, it is only a part of the picture. In an OTT live streaming scenario, the live channels are conveyed from the content provider origin server to the end users often through Content Delivery Networks (CDN) using a unicast HTTP streaming protocol (Apple HLS, MPEG DASH, …). Thus, depending on the network topology and the number of viewers for each channel, an overall network load is generated. This network load has several consequences. In addition to network occupancy and energy consumption, the streaming cost increases with the generated load to be transmitted to the viewers, the source of the cost can be the CDN provider or the cloud bandwidth cost, for public cloud based applications.

It is proposed in this paper to complement the content complexity aware orchestration by also considering the audience measurements. Thus, a channel allocation update does not only depend on the content complexity, but also on number of viewers for each channel.

First, the audience aware model interest is demonstrated theoretically. Considering two channels having about the same content complexity, but with one having more viewers than the other. The orchestration algorithm will allocate more resources to the popular channel in order increase the encoding performance, hence reducing the stream bitrate while keeping the same video quality, so viewers can fetch lighter video profiles and experience better quality of experience (QoE). The second channel will be allocated less CPU cores, thus the bitrate will increase slightly, but since it’s watched by less viewers than the first, the overall network load will be decreased.

As already mentioned, the different channels generally exhibit different characteristics or complexities. Moreover, the channel complexity may change significantly over time. It is advocated in this paper that optimal CPU allocation is a function of both content characteristics and network load, the network load being a byproduct of the number of viewers per channel and the network topology. A cost function is proposed, as well as an algorithm to perform cost minimization.

A second set of experiments considers a realistic use case. A set of live channels with different contents are running in a server, each channel having different numbers of viewers. The orchestrator gets the measurements in real time, both from the network, through a real-time analytics service ‎[3], and the encoders, then computes and applies the optimal allocation. A reduction of the overall bitrate compared to a uniform static allocation is demonstrated, while preserving the video quality. Finally, a discussion concludes the paper.


Download data is not yet available.




How to Cite

moussaoui, abdelmajid, Guionnet, T., & Raulet, M. (2022). Audience and Complexity Aware Orchestration. SET INTERNATIONAL JOURNAL OF BROADCAST ENGINEERING, 8, 8. Retrieved from



Communication, Networking & Broadcasting