MediaX

Real-Time Protocol (RTP) Video Streaming Library for C++


Overview

MediaX is a high-performance C++ library implementing RFC 4421 RTP (Real Time Protocol) Payload Format for Uncompressed Video and RFC 3984 for H.264 video. It is compliant with DEF STAN 00-082 (VIVOE) for real-time video streaming in defence and industrial applications.

Key Features

  • Uncompressed Video Streaming - RGB24, YUV422, Mono8, Mono16
  • H.264/H.265 Hardware Acceleration - Intel VAAPI, NVIDIA NVENC
  • SAP/SDP Announcements - Automatic stream discovery (RFC 2974, RFC 4566)
  • Cross-Platform - Linux x86_64, ARM64 (Jetson, Raspberry Pi)
  • Multiple Language Bindings - C++, Python, Qt6

Supported Standards

Standard Description
RFC 4421 RTP Payload Format for Uncompressed Video
RFC 3984 RTP Payload Format for H.264 Video
RFC 2974 Session Announcement Protocol (SAP)
RFC 4566 Session Description Protocol (SDP)
DEF STAN 00-082 VIVOE - Video and Imagery over Ethernet for Defence

Supported Platforms

Platform Architecture Status
Ubuntu 22.04 amd64 ✅ Supported
Ubuntu 24.04 amd64 ✅ Supported
Raspbian 12 arm64 ✅ Supported
NVIDIA Jetson arm64 ✅ Supported

Quick Example

#include "rtp/rtp.h"

int main() {
  mediax::RtpSapTransmit<mediax::rtp::uncompressed::RtpUncompressedPayloader> rtp(
      "239.192.1.1", 5004, "my-stream", 640, 480, 30, "RGB24");

  std::vector<uint8_t> &data = rtp.GetBufferTestPattern();

  for (int i = 0; i < 1000; i++) {
    rtp.Transmit(data.data(), false);
  }

  return 0;
}

License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

Commercial licenses are available. Visit astutesys.com for more information.

Getting Help