media server logo

Set up GPU-accelerated transcoding with NVIDIA

Nov 21, 2024

In this tutorial, we’ll show you how to set up GPU-accelerated transcoding in Callaba using an NVIDIA GPU.

Whether you’re aiming for high-quality 4K streaming or just want a smoother workflow, this guide will walk you through the process step by step.

GPU-accelerated transcoding in Callaba is a powerful feature that ensures faster video processing and higher-quality streams.

But to make the most of it, you’ll need access to NVIDIA GPU capabilities.

 

Benefits of GPU-accelerated transcoding

Efficiency: NVIDIA GPUs use dedicated hardware encoders (NVENC) and decoders (NVDEC) to offload video processing tasks, freeing up the CPU and other system resources.

Almost no latency: The hardware acceleration provided by NVENC and NVDEC enables faster-than-real-time video processing, making it suitable for applications like live streaming and high-quality video playback.

Advanced Codec Support: Supports industry-leading codecs like H.264, HEVC, and AV1 for high-quality video output.

Scalability: GPU-based transcoding easily handles multiple streams, resolutions, and bitrates, making it ideal for applications from 1080p to 4K and beyond.


Image Source: nvidia.com

The graph above compares how well different setups handle 1080p30 low-latency video encoding.

It looks at two things:

  1. Number of video streams: The taller the bar, the more 1080p30 video streams that setup can handle at once.
  2. Bitrate savings: The orange dots show how much bandwidth each setup saves compared to a basic one. Higher savings mean the video uses less data while keeping quality.

It shows that newer GPUs, like NVIDIA L4 and L40S, and advanced codecs like HEVC and AV1 can handle more streams and save more bandwidth compared to older methods like x264.

How to start using GPU-accelerated transcoding

▶ On your local machine

If you’re running Callaba on your own system, make sure your machine is equipped with an NVIDIA GPU.

This feature relies on NVIDIA's NVENC technology for transcoding, so an NVIDIA GPU is a must.

▶ On AWS

If you’re hosting Callaba in the cloud, you can use GPU-based AWS instances equipped with NVIDIA GPUs.

Here’s a list of instance types you can consider:

    • G4 Instances: Designed for graphics-intensive workloads, including G4dn, which is ideal for transcoding and streaming tasks.
    • G5 Instances: High-performance GPU instances with NVIDIA A10G Tensor Core GPUs, ideal for machine learning, graphics rendering, and video transcoding workloads.
    • P3 Instances: Great for high-performance computing, including transcoding, if you're managing larger workloads.

For a more comprehensive list of available options, please refer to AWS documentation.

By ensuring your setup meets these requirements, you’ll unlock the full potential of GPU-accelerated transcoding in Callaba.

Before you begin

For this tutorial, you will need :

▶ Callaba software

⬇️ Get Callaba on AWS Marketplace | 📖 Guide: How to launch

⬇️ Get a self-hosted license | 📖 Guide: How to install self-hosted

▶ Video inputs

Prepare your video inputs (you can SRT, RTMP streams and a wide variety of other options).

Let’s get started!

1. Create a Web Player

Once you have your inputs at hand, create a Web Player in Callaba.

Log in to your Callaba dashboard.

Go to the Web Players section and click "Add New".

Give your player a name. This helps you identify it later.

2. Set up your Input

Next, you need to define the source for your Web Player.

Callaba supports a variety of input options, such as SRT streams, RTMP, or file uploads.

For this tutorial, we’ll use an HLS URL as our input.

Once you’ve added your input, you’re ready to configure transcoding.

3. Configure transcoding

Now let’s set up the GPU-accelerated transcoding:

Unfold the "Video Settings" section.

Under the video transcoding options, select "Transcode to H.264 NVENC (NVIDIA SDK 12)."

This option uses NVIDIA’s GPU capabilities for efficient and high-quality video transcoding.

If you need to fine-tune additional video settings, you can adjust them here.

4. (Optional) Enable Adaptive Bitrate

To optimize the viewing experience, you can enable adaptive bitrate streaming. Here’s how:

Unfold the "Adaptive Bitrate Settings" section.

Choose original resolution ofyour video stream.

Adaptive bitrate ensures your viewers get the best quality possible based on their internet connection.

Once all the settings are in place:

Save your Web Player by clicking "Save" at the bottom of the screen.

6. Test the Output

In the Web Playrs section, once the stream starts coming, click the "Play" button to preview your video stream.

In the preview window, you’ll see your video.

If you've set up adaptive transcoding, click the gear icon to see a list of available resolutions.

Test the adaptive bitrate functionality by switching between different resolutions.

For a full-screen experience, click the "Open Web Player" button to view the player in a separate tab.

That’s it! You’ve successfully set up GPU-accelerated transcoding in Callaba using an NVIDIA GPU.

This configuration ensures smooth video playback and efficient processing, making it perfect for high-quality streaming setups.

Learn more

Follow us on social media

LinkedInRedditInstagramFacebookYoutubeX (Twitter)Discord