NVIDIA® Rivermax® SDK - Optimized networking SDK for Media and Data streaming applications. Rivermax offers a unique IP-based solution for any media and data streaming use case. Rivermax together with NVIDIA GPU accelerated computing technologies unlocks innovation for a wide range of applications in Media and Entertainment (M&E), Broadcast, Healthcare, Smart Cities and more.
The NVIDIA Rivermax GitHub Repository allows users to build and run sample codes, tools and applications on top of Rivermax. The GitHub includes code samples that won't be part of the official Rivermax SDK but are commonly used by Rivermax customers and engineering teams. The code is provided As Is - tested only by the code owner and been tested before uploading with a specific hardware and software.
Product release highlights, documentation, platform support, installation and usage guides can be found in the Rivermax SDK Page.
Frequently asked questions, customers product highlights, Video link and more are available on the Rivermax Product Page.
Make sure you have registered to the NVIDIA Rivermax SDK on the DevZone, downloaded the preferred SDK, obtained the hardware and have a valid license.
More details can be found on the Rivermax SDK Page.
The repository relies on CMake to build binaries, and it can be built both on Linux and Windows.
In a lack of any dependency the build will gracefully terminate. For a smoother start, it is better to follow the installation guidelines of the Rivermax SDK.
CMakeLists.txt
file of each application states its version requirements at the top. Some applications (e.g. the ones that support CUDA) require CMake of version 3.17 or higher. In certain distros default application managers are limited to an older version of CMake. For this reason it is suggested to install CMake using pip
, which doesn't have such limitations. pip
itself can be installed on any modern distro using default application manager.
For example, on Debian-based distros use the following commands:
$ sudo apt install python3-pip
$ sudo pip install cmake
On RHEL-based distros use the following commands:
$ sudo yum install python3-pip
$ sudo pip<latest-version> install cmake
Note that in some distros there can be several
pip
instances of different versions by default, and when called a specific version needs to be specified (e.g. the last example above). One should strive to use the latest version possible to avoid compatibility issues.
Each code example contains its build instructions in the respective folder's README.md
file.
Some applications (e.g. generic_receiver
) can be built with CUDA support to demonstrate GPU utilization. The following boolean build-parameters are supported:
RIVERMAX_ENABLE_CUDA
- when set, this flag enables integration with CUDARIVERMAX_ENABLE_TEGRA
- this flag shall be set along withRIVERMAX_ENABLE_CUDA
when building for TEGRA-family SoC (e.g. NVIDIA Jetson AGX Xavier).
Following is an example command-line for building with CUDA support:
$ cmake -B ./build -DRIVERMAX_ENABLE_CUDA=ON
Note that this repo contains useful CMake scripts, e.g. finders for Rivermax and DOCA. Please refer to examples in the application directories.
Each application or sample code provides its usage instructions.
- generic_receiver - A demo for a receiver application that uses Rivermax Generic API
- rivermax_player - A demo for a sender application that sends several streams of different types (e.g. video, audio, ancillary)
- doca_rmax_rx_perf - An RX performance measurement application to be used with the NVIDIA DOCA RMAX library.
- rmax_ipo_receiver - A demo for receiver application that uses Inline Packet Ordering (IPO) feature of Rivermax library.
- rmx_api_demo_apps - A set of demo applications that demonstrate the usage of Rivermax API.
- windows_tuning - Two Windows scripts to automate and optimize system and network settings for Rivermax.
We welcome contributions to the Rivermax Apps repository:
- To contribute and make pull requests, please follow the guidelines outlined in the Contributing document.
- Please let us know about any bugs or issues by filing a new issue.