Installation¶
Prerequisites¶
MediaX requires the following dependencies:
- GCC 9+ or Clang 10+ with C++17 support
- CMake 3.16+
- libva (optional, for VAAPI hardware acceleration)
- OpenSSL development files (optional, for SRT encryption and Chromecast casting:
libssl-devoropenssl-devel) - libcurl (optional, for the HLS client)
- FFmpeg libavcodec development files (optional, to decode HLS audio to PCM with
BUILD_HLS_AUDIO_DECODE=ON:libavcodec-dev libavutil-dev) - libjpeg (optional, for RTP JPEG video:
libjpeg-devorlibjpeg-turbo-devel) - Qt6 (optional, for Qt bindings)
Quick Install (Ubuntu)¶
Run the provided setup script to install all dependencies:
sudo ./scripts/init_build_machine.sh
Manual Dependencies¶
Ubuntu 24.04 / 26.04¶
sudo apt-get update
sudo apt-get install -y \
build-essential cmake \
libgtest-dev libgmock-dev
For SRT Encryption, Chromecast and HLS¶
sudo apt-get install -y libssl-dev libcurl4-openssl-dev
SRT itself needs no extra library. Without OpenSSL it builds but refuses encrypted streams. HLS also needs OpenSSL to decrypt AES-128 encrypted streams. Chromecast casting needs OpenSSL for the TLS connection to the device and is not built without it.
For JPEG Video¶
sudo apt-get install -y libjpeg-dev
Without libjpeg MediaX still builds, JPEG support is left out (or switched off with -DBUILD_JPEG=OFF).
For Qt6 Support¶
sudo apt-get install -y qt6-base-dev qt6-multimedia-dev
For Intel VAAPI (Hardware Acceleration)¶
sudo apt-get install -y libva-dev intel-media-va-driver
Installing from Packages¶
Pre-built Debian packages are available:
# Runtime library
sudo dpkg -i mediax_<version>_<arch>.deb
# Development headers
sudo dpkg -i mediax-dev_<version>_<arch>.deb
# Python bindings (only produced when built with -DBUILD_PYTHON=ON)
sudo dpkg -i mediax-python_<version>_<arch>.deb
AppImage (any Linux distribution)¶
The Qt6 RTSP player (RTSP, HLS, SRT and MJPEG viewer) is also released as an AppImage. It bundles MediaX, Qt6 and the other libraries it needs, so it runs on distributions that have no MediaX package, with nothing to install:
chmod +x qt6-rtsp-player-<version>-linux-glibc2.35-x86_64.AppImage
./qt6-rtsp-player-<version>-linux-glibc2.35-x86_64.AppImage rtsp://camera/stream
| Detail | Value |
|---|---|
| Architectures | x86_64 and aarch64 |
| Minimum glibc | 2.35 (Ubuntu 22.04, Debian 12, Fedora 36, RHEL 10 and newer). RHEL 9 and AlmaLinux 9 have glibc 2.34, use the RPM packages there |
| Display | X11 or Wayland |
| File name | {app}-{version}-linux-glibc{glibc}-{arch}.AppImage |
An AppImage needs FUSE 2 (libfuse2 on Debian and Ubuntu) to run directly. Without it, run
APPIMAGE_EXTRACT_AND_RUN=1 ./qt6-rtsp-player-*.AppImage, or unpack it with --appimage-extract. Hardware video
decoding is not used by the player, decoding is done in software with OpenH264.
To build the AppImage yourself, run scripts/appimage/build_appimage.sh on the oldest distribution you want to
support (see the header of the script for the options). The AppImage (any Linux distro) GitHub Action builds it on
Ubuntu 22.04 for both architectures and attaches the files to each release.
Verifying Installation¶
pkg-config --modversion mediax
Next Steps¶
- Quick Start Guide - Get streaming in 5 minutes
- Building from Source - Build and customize MediaX
Support¶
Need help with installation?
- Website: https://astutesys.com/support
- Email: support@astutesys.com