Cinegy Cloud Broadcasting

Gone are the days when cloud broadcasting was a mere concept. Today, it’s not about if it can be done, but what can be achieved through it. Cinegy is at the heart of this change, providing robust software solutions for cloud-based broadcasting.

Our experience spans several years, supporting clients who manage everything from a few channels to entire workflows in the cloud. In this document, we’ll address common questions and share valuable insights we’ve gained, aiming to clarify and enhance the understanding of cloud broadcasting.

Cloud Deployments

Understanding Cloud Deployment with Cinegy

What might a cloud deployment look like using Cinegy? The scope can range significantly. It might be as simple as a single Cinegy Playout engine for specific events, or as comprehensive as a full product suite. This suite includes Cinegy Convert for ingest, followed by media management and editing through Cinegy Desktop and Cinegy Archive, and culminates in broadcasting with Cinegy Air (divided into Air automation and Playout Engine) and content recording using Cinegy Capture for Video on Demand workflows.

image001

This diagram illustrates various components of Cinegy’s software. But how exactly do these integrate with cloud technology?

When we align the different elements of Cinegy software with cloud services, a seemingly intricate deployment simplifies into just four core cloud capabilities. These include cloud compute, addressing CPU/GPU needs; database services for data management; SMB storage service functioning as network shared storage; and object storage for original media.

image002

Alternatively, Cinegy Archive can also operate on a cloud compute instance. This streamlined approach demystifies the complexity of cloud deployments.

Determining the Right Cloud Compute Size for Specific Playout Needs

When it comes to selecting the appropriate compute instances for various playout configurations in the cloud, we often encounter questions like:

  • What will run this?

  • What should I use for HD playout?

  • What about if I have simple graphics?

  • What about complex graphics?

  • Can I run more than one playout channel on an instance?

  • What about UHD?

Later in this document, we will provide practical examples of playout configurations alongside the corresponding cloud instance sizes and their load capacities.

For these tests, we utilize a typical cloud playout setup as our standard configuration for the Cinegy Playout engine. We’ll adapt this base configuration as needed, highlighting any significant modifications.

image003

Examining the configuration details:

  • Instance Setup: We have designated an instance name and included the "Cinegy Air Pro" option under "Licensing".

  • Playback Configuration: A single channel with one IP output has been configured, utilizing an NVIDIA GPU as the Video Effects Accelerator and setting a 50-frame buffer in RAM. The feedback video uses Cinegy’s Daniel2 codec.

  • Output Settings: The IP output operates in unicast mode, ready to receive SRT requests on port 6001, without requiring SRT output encryption. This setup simplifies network configuration in the cloud.

  • Encoding: We’ve used H.264 encoding, offloaded to the NVIDIA GPU, with a bit rate of 10 Mbps and an IBBP GOP structure. Default transport stream PID settings remain unchanged.

  • Audio: A single stereo audio track will be encoded in MPEG Layer 2 at 192 kbps.

  • Graphics Branding: Under the "CG" tab, we’ve enabled the Cinegy Title engine, allowing for the incorporation of graphic branding elements.

This configuration represents a balanced approach, providing a reliable foundation for testing various playout scenarios in the cloud environment.

Performance Testing

Following the engine configuration, now it’s time to test on older, smaller cloud instances. Starting with one HD channel without graphics, we’ll monitor the instance’s CPU and GPU load. Gradually, we’ll add more channels, one by one, to observe the impact on resource usage. Before initiating these tests, we’ll record the idle state load of the instance for comparison.

Load before turning on Cinegy Playout engines in idle state

CPU - 10%

You can see that the CPU load is around 10% on average and the GPU is just running along at about 6%.

1 HD Channel

Looking at the loading on the cloud instance, we can see the CPU utilization is hovering around 30% and if we move over to have a look at the GPU, we can see that the video encode is averaging at around 18%, with a small variance.

g3-1-hd-engine

2 HD Channels

Having moved up to 2 HD engines running with 2 simultaneous HD outputs, we can see that the CPU loading has increased to on average 50% utilization, and moving over onto the GPU, we can see that the video encode has gone up to on average about 30%, so not quite a doubling of load.

g3-2-hd-engines

3 HD Channels

Now with 3 channels running on this instance, we can see that the CPU load is hovering around 73- 74%. It’s getting quite high now and is probably going to prevent us from adding any more channels to this machine. The NVIDIA GPU is doing well, the video encode is averaging around 40% to 41% utilization.

g3-3-hd-engines

Outcome

Summarizing the results, we started with around 10% CPU, 6% GPU utilization and as we moved up adding more channels, it was the CPU that was maxing out at an average of 72%.

The GPU was only 42% and this demonstrates how we can deliver three simple HD channels from the smallest of the older generation cloud instances.

Maximizing Engine Capacity on the Instance

Could we add another HD channel to the instance? Yes, with a few tweaks:

  • Optimizing Source Media Encoding: By encoding our playout media with a GPU-efficient codec like H.264, we shift more load to the GPU, sparing the CPU.

  • Eliminating Feedback Video: Removing feedback video production can save resources. However, this must be weighed against operational needs.

  • Running Playout Engines as Services: Transitioning playout engines to run as Windows services eliminates the need for the Playout dashboard application, further reducing CPU load.

These adjustments could enable one more HD channel to run smoothly on the existing cloud instance.

Evaluating Newer Cloud Instances

Moving from older to newer cloud instances faced a technical shift: NVIDIA’s newer chipsets don’t support interlaced encoding in H.264, necessitating a switch to progressive output. Question - how would this impact performance on the newer hardware?

To find out, we mirrored our earlier approach, adding playout engines one at a time on a newer instance. Despite the shift to progressive output, the results were promising:

  • Running three HD channels (1080p50) with three SRT outputs, we observed reasonable loads: about 60% on the CPU and 40% on the GPU (using the Tesla T4 card).

    g4-3-hd-engines
  • Pushing to four simultaneous HD streams, the CPU usage averaged around 80%, and the GPU load hovered at 54-55%.

    g4-4-hd-engines

We began at a lower baseline than the older instance (3% CPU and 1% GPU utilization). As we scaled up to four HD channels, the CPU peaked at about 83% - slightly higher than the older instance, but still manageable. The GPU maintained an average of 54%, indicating good performance.

These results underscore the advantages of newer cloud instances. While they’re not the latest hardware, they still offer significant improvements over older generations.

Impact of Graphics on High-Definition Output

Integrating graphics into high-definition output raises an important question: how does this affect the load on the cloud instance?

  • Simple Graphics: Elements like ratings and logos, which use static image files, don’t significantly affect the instance’s load.

  • Complex Graphics: The addition of animated graphics, like lower thirds, presents a different scenario. When these animations are active, the GPU load increases to about 18%, and the CPU load rises to approximately 29-30%.

  • After the Animation: Once the animation concludes, the loads decrease. The GPU returns to around 13%, and the CPU drops to its average of 20-22%.

complex-graphic-load-increase

We noticed that when the animated graphic starts, there’s an initial spike in CPU usage, reaching up to 42%, before settling back to 30% during the animation. The GPU follows a similar pattern, peaking at 18% and then reducing after the animation ends. These observations highlight how complex graphics temporarily elevate resource demands on the cloud instance.

UHD Broadcasting

Transitioning to Ultra High Definition (UHD) broadcasting raises a crucial question: can it be efficiently delivered? To set this up, we simply adjusted our engine configuration for UHD: switching to UHD player mode and increasing the output bitrate to 35 Mbps, still utilizing the H.264 codec.

config

In our trials with a newer generation cloud instance for a single UHD channel, the CPU load fluctuated around 30%, while the GPU maintained a steady utilization of about 14%.

g4-1-uhd-engine

Interestingly, the CPU load occasionally dipped to 16 -18%, and the GPU load slightly increased during playback. This variation was due to the use of two different video clips encoded with ProRes and HEVC respectively. The different encoding methods of these clips influenced the instance’s load.

The outcome is clear: delivering UHD content is not as challenging as it might seem. Even with media files requiring different codecs, the CPU load peaked at a manageable 60%, and the GPU load at 18%.

This demonstrates the efficiency and adaptability of Cinegy software, even on a cloud instance that isn’t the most advanced available. It reassures that running multiple UHD channels on a single instance is not only feasible, but also efficient.

Essential Tools for Cloud Broadcasting with Cinegy

When it comes to cloud broadcasting, Cinegy highly values two types of tools: automated deployment and monitoring.

Automated Deployment

Migrating workloads to the cloud involves extensive testing and exploration. It’s crucial to run repeated tests across various configurations. Maintaining both a development and a staging environment is a best practice, as it allows for the swift creation and deletion of test environments.

For automation, while cloud providers offer their own services, Cinegy prefers a more neutral solution. TerraformTerraform, an open-source infrastructure-as-code tool, is our go-to choice. It provides a consistent command-line interface (CLI) workflow for managing numerous cloud services. Terraform utilizes various file types for defining and deploying your environment’s components.

Terraform

A notable feature of Terraform is its ability to document your infrastructure as code. This documentation can be stored in a version-controlled repository, like Git. This approach streamlines the creation and removal of environments, as Terraform tracks all deployments. It simplifies the deployment process, eliminating the need to remember the sequence of service deployments or prerequisites like Active Directory setup. Cinegy frequently uses Terraform for cloud deployments. We have even demonstrated its success on our YouTube channel, showing how to establish 150 playout channels in just 10 minutes. This showcases Terraform’s efficiency and our reliance on it for cloud-based operations.

Monitoring

Moving on to the aspect of monitoring, it’s crucial to understand its impact on cloud-based operations. As we’ve observed, even connecting to monitor resources can add to the load on a system.

Cinegy has long emphasized the significance of big data and analytics, which are incredibly valuable in providing both real-time and historical insights into system performance. This data helps in identifying trends and making informed decisions.

Pretty numbers

A powerful and cost-effective solution for this is the combination of Metricbeat and Elasticsearch for data collection and management, with Grafana for data visualization. This trio offers a robust and free-to-use system for monitoring.

What does this combination achieve? It enables the creation of detailed dashboards that offer a comprehensive view of system operations. For instance, you can clearly visualize GPU load management. Additionally, for more granular data, like CPU specifics, you can interact with the dashboard to get point-in-time statistics. This integration provides a thorough understanding of how your system is performing, enhancing the ability to make data-driven decisions in managing cloud resources.

Air Metrics

You might wonder if it’s possible to delve deeper into monitoring. The answer is a resounding yes, especially with Cinegy Air. We have designed Cinegy Air to provide useful metrics that can be integrated with systems like Elasticsearch or Prometheus.

Moar Monitoring

By harnessing these metrics, we can construct detailed graphs. These visuals offer insights into critical aspects of broadcasting, such as output frame drops, system timing variations, and media access delays. But we don’t stop there. By merging data from Cinegy Air and tools like Metricbeat, we achieve a comprehensive overview of both the hardware and software.

This holistic approach allows us to correlate any issues with the state of the machine at the exact moment of occurrence. This level of detail is crucial in cloud environments, where you don’t have control over the underlying infrastructure. Such insights are invaluable for pinpointing and addressing potential issues effectively.

Never too much data

Final Considerations for Cloud Broadcasting Success

When using the cloud for broadcast, several key factors must be considered to maximize efficiency and minimize costs:

  • Source Media Encoding: Opt for a GPU-friendly, fixed in-house format. Larger cloud instances don’t always offer more GPU capacity, so higher costs don’t necessarily equate to increased capacity.

  • Graphics Efficiency: Be smart with your graphics templates. Avoid using full-sized raster plates for small elements like corner bugs or full raster videos for small animations like lower-thirds.

  • Hybrid Deployments: Don’t hesitate to maintain some on-premises elements. This can be advantageous for tasks like converting signals back to baseband or utilizing Cinegy Air’s pseudo-interlaced mode. When using newer NVIDIA GPUs in the cloud, consider the need to convert signals back to interlaced format at your delivery premises.

  • Load Distribution: Utilize client/server modes for Cinegy software, allowing separation of playout engines from operator software, which can even run on-premises if necessary.

  • Uptime and Availability: Be aware of the reliability of cloud services. Cloud file storage services, for example, can experience brief unresponsiveness during network reconfigurations. Always plan for potential failures in the cloud.

  • Managing Unforeseen Costs: Keep a close eye on cloud usage costs, especially for data transfer in and out of the cloud. Delivering confidence streams to remote operators can incur additional expenses.

If you’re ready to get started, simply look for Cinegy or Channel in the Cloud on the marketplaces in the cloud. And if you’d like some help before making the leap on your own, Cinegy Professional Services team is available to assist with all your cloud broadcasting needs.