NETINT VPU Transcoder Installation
Overview
NETINT VPU (Video Processing Unit) integration in Broadcaster v19 enables ASIC-based hardware acceleration for high-density transcoding. These VPUs deliver ultra-efficient encoding for HEVC, H.264, supporting up to dozens of HD streams per card at a fraction of the power and cost of GPU or CPU-based solutions. Broadcaster v19 supports NETINT VPUs natively, allowing seamless deployment on-prem or in cloud environments. Broadcaster v19 with NETINT integration reduces CAPEX and OPEX significantly, lowering hardware footprint and energy consumption while scaling transcoding capacity for live workflows
This guide covers the steps required to install and configure a NETINT Quadra VPU (T1U/T1A/T2A) for use with Zixi Broadcaster's hardware-accelerated transcoding.
Note: for cloud implementations, NETINT can also be set up on a Linode instance: The Akamai/Linode setup is basically, spin up a Linode Instance with the desired NETINT "Accelerator Card" and the instance has all the drivers/firmware match/sdk all ready to go.
Prerequisites
- Hardware: NETINT Quadra T1U (U.2) or T1A/T2A card installed in a PCIe Gen 4 x4 slot
- OS: Ubuntu 22.04/24.04 LTS or CentOS/Rocky Linux 9
- CPU: x64 Intel/AMD, 6+ cores recommended
- RAM: 16 GB minimum
- Broadcaster: v19.0 or later with NETINT VPU support
Step 1: Verify Hardware Detection
After physically installing the card, confirm the system recognizes it:
Expected output:
If no output appears, check that the card is properly seated in a PCIe Gen 4 slot and reboot.
Step 2: Download the NETINT Release Package
Obtain the Quadra release package from NETINT (e.g., Quadra_V5.1.1.zip). Extract it:
Step 3: Run the Quick Installer
The NETINT release includes an interactive installer that handles all software and firmware setup:
This presents a numbered menu. Run the following steps in order:
Menu Option 1 — Setup Environment Variables
Configures system paths and permissions:
- Adds /usr/local/lib to the linker search path (/etc/ld.so.conf)
- Adds /usr/local/bin to the sudo secure_path
- Adds the current user to the disk group (required for non-root VPU access)
- Sets PKG_CONFIG_PATH and runs ldconfig
Important: You must log out and log back in after this step for the disk group membership to take effect. Without it, Broadcaster cannot access the VPU device.
Menu Option 3 — Install OS Prerequisite Packages
Installs required build dependencies. On Ubuntu:
Menu Option 4 — Install NVMe CLI
Builds and installs nvme-cli v1.16 from source. Required for firmware management and device identification.
Verify after installation:
Expected: the Quadra card appears as a device (e.g., /dev/nvme1n1 with model QuadraT1U or QuadraT2A).
Menu Option 5 — Install Libxcoder
Builds and installs the NETINT codec library that Broadcaster links against:
- Library: /usr/local/lib/libxcoder.so
- Headers: /usr/local/include/ni_*.h
- Tools: ni_rsrc_mon, ni_rsrc_list, ni_rsrc_update in /usr/local/bin/
This is the core requirement — Broadcaster uses libxcoder to communicate with the VPU hardware.
Menu Option 7 — Firmware Update
Updates the VPU firmware to match the software version. The installer runs the firmware upgrade and reinitializes the device.
Important: A reboot is required after firmware update.
After reboot, verify firmware/software compatibility:
Menu Options to Skip
- Option 2 (Unlock CPU Governor) — Optional. Sets CPU to performance mode. Recommended for production but not required.
- Option 6 (Install FFmpeg) — Not required for Broadcaster. This is only needed for standalone VPU testing with FFmpeg. Broadcaster has its own integration with libxcoder.
Step 4: Verify Installation
After completing the installer and rebooting, verify everything is working:
Expected ni_rsrc_list Output
Step 5: Configure Broadcaster
Once the VPU is verified, Broadcaster will automatically detect it when hardware transcoding is enabled. Configure transcoding profiles in ZEN Master or the Broadcaster UI to use NETINT VPU encoding/decoding.
Summary of Required Steps
# | Action | Required? |
|---|---|---|
1 | Physical card installation + verify with lspci | Yes |
2 | Download and extract NETINT release package | Yes |
3 | Installer → Setup Environment Variables | Yes |
4 | Installer → Install OS Prerequisites | Yes |
5 | Installer → Install NVMe CLI | Yes |
6 | Installer → Install Libxcoder | Yes |
7 | Installer → Firmware Update + reboot | Yes |
8 | Verify with ni_rsrc_list and ni_rsrc_mon | Yes |
- | Installer → Unlock CPU Governor | Recommended |
- | Installer → Install FFmpeg | Not needed |
Troubleshooting
Problem | Solution |
|---|---|
lspci shows no NETINT device | Card not seated properly or slot is not PCIe Gen 4. Reseat and reboot |
Permission denied on ni_rsrc_list | User not in disk group. Run sudo usermod -a -G disk <user> and log out/in |
F/W & S/W compatibility: no | Firmware and libxcoder versions are mismatched. Run firmware update from the installer and reboot |
VPU not visible in nvme list | Check NVMe driver is loaded: lsmod | grep nvme. If missing: sudo modprobe nvme |
Broadcaster doesn't see VPU | Verify libxcoder is installed (pkg-config --modversion xcoder) and /usr/local/lib is in the linker path (ldconfig -p | grep xcoder) |
Multiple libxcoder versions present | Check symlink: ls -la /usr/local/lib/libxcoder.so — ensure it points to the version matching your firmware |