This year at the NAB Show 2024 in Las Vegas, we are excited to demonstrate our Content-Adaptive Bitrate (CABR) technology on the NVIDIA Holoscan for Media platform. By implementing CABR as a GStreamer plugin, we have, for the first time, made bitrate optimization of live video streams easily achievable in the cloud or premise.
Building on the NVIDIA DeepStream software development kit, which can extends GStreamer’s capabilities, significantly reduced the amount of code required to develop the Holoscan for Media based application. Using DeepStream components for real-time video processing and NMOS (Networked Media Open Specifications) signaling, we were able to keep our focus on the CABR technology and video processing.
The NVIDIA DeepStream SDK provides an excellent framework for developers to build and customize dynamic video processing pipelines. DeepStream provides pipeline components that make it very simple to build and deploy live video processing pipelines that utilize the hardware decoders and encoders available on all NVIDIA GPUs.
Beamr CABR dynamically adjusts video bitrate in real-time, optimizing quality and bandwidth use. It reduces data transmission without compromising video quality, making the video streaming more efficient. Recently we released our GPU implementation which uses the NVIDIA NVENC, encoder, providing significantly higher performance compared to previous solutions.
Taking our GPU implementation for CABR to the next level, we have built a GStreamer Plugin. With our GStreamer Plugin, users can now easily and seamlessly incorporate the CABR solution into their existing DeepStream pipelines as a simple drop-in replacement to their current encoder component.
Holoscan For Media
A GStreamer Pipeline Example
To illustrate the simplicity of using CABR, consider a simple DeepStream transcoding pipeline that reads and writes from files.
Simple DeepStream Pipeline:
gst-launch-1.0 -v \
filesrc location="video.mp4" ! decodebin ! nvvideoconvert ! queue \
nvv4l2av1enc bitrate=4500 ! mp4mux ! filesink location="output.mp4"
By simply replacing the nvv4l2av1enc component with our CABR component, the encoding bitrate is adapted in real-time, according to the content, ensuring optimal bitrate usage for each frame, without any loss of perceptual quality.
CABR-Enhanced DeepStream Pipeline:
gst-launch-1.0 -v \
filesrc location="video.mp4" ! decodebin ! nvvideoconvert ! queue \
beamrcabvav1 bitrate=4500 ! mp4mux ! filesink location="output_cabr.mp4"
Similarly, we can replace the encoder component used in a live streaming pipeline with the CABR component to optimize live video streams, dynamically adjusting the output bitrate and offering up to a 50% reduction in data usage without sacrificing video quality.
Simple DeepStream Pipeline:
gst-launch-1.0 -v \
rtmpsrc location=rtmp://someurl live=1 ! decodebin ! queue ! \
nvvideoconvert ! queue ! nvv4l2av1enc bitrate=3500 ! \
av1parse ! rtpav1pay mtu=1300 ! srtsink uri=srt://:8888
CABR-Enhanced DeepStream Pipeline:
gst-launch-1.0 -v \
rtmpsrc location=rtmp://someurl live=1 ! decodebin ! queue ! \
nvvideoconvert ! queue ! beamrcabrav1 bitrate=3500 ! \
av1parse ! rtpav1pay mtu=1300 ! srtsink uri=srt://:8888
The Broad Horizons of CABR Integration in Live Media
Beamr CABR, demonstrated using NVIDIA Holoscan for Media at NAB show, marks just the beginning. This technology is an ideal fit for applications running on NVIDIA RTX GPU-powered accelerated computing and sets a new standard for video encoding.
Lowering the video bitrate reduces the required bandwidth when ingesting video to the cloud, creating new possibilities where high resolution or quality were previously costly or not even possible. Similarly, reduced bitrate when encoding on the cloud allows for streaming of higher quality videos at lower cost.
From file-based encoding to streaming services — the potential use cases are diverse, and the integration has never before been so simple. Together, let’s step into the future of media
streaming, where quality and efficiency coexist without compromise.