Requirements for Compiling, Installing and Running Snowmix.
This page lists the supported platforms as well as the required hardware and software needed to compile, install and run Snowmix 0.5.2.1.
- Supported Platforms.
- Supported Hardware.
- Required Libraries.
- Optional Libraries.
- List of libraries per platform/distro.
Similar information for Snowmix 0.5.2.
Supported Platforms.
Snowmix is supported on a wide range of Linux distributions and was supported on versions of macOS (OS X). Native MacOS support is planned to be pickup, when access to hardware for testing has been secured.
Snowmix version 0.5.2.1 release was tested on the following Linux platforms:
- Alma Linux amd64 and i686 (DownStream from RHEL - RedHat). Partly Supported.
- CentOS Linux amd64 and i686 (Downstream from RHEL - RedHat).
- debian Linux amd64 and i686.
- EndeavourOS Linux amd64 and i686 (Arch derived).
- FedoraLinux Workstation amd64 and i686 (Upstream from RHEL - RedHat).
- Linux Mint amd64 and i686 (Ubuntu/debian derived).
- Mageia Linux amd64 and i686 (Derived from Mandriva derived from Mandrake (and Conectiva) derived from RedHat).
- Manjaro Linux amd64 and i686 (Arch derived).
- MX Linux amd64 and i686 (debian derived).
- OpenSUSE Linux amd64 and i686.
- Rocky Linux amd64 and i686 (DownStream from RHEL - RedHat). Partly Supported.
- Canonical Ubuntu Linux Desktop and Server for amd64/i686/ARMv7 (debian derived).
Snowmix 0.5.2.1 has been tested to compile and install and run successfully on the following versions versions of macOS:
and the following version of OS X:
- OS X El Capitan.
The bootstrap script for Snowmix is prepared for macOS Ventura, Sonoma, Sequoia and Tahoe, but has not been tested. Feedback from anyone installing on these versions will be appreciated.
Due lack of access to macOS hardware, support is temporarily limited. That said, you may be able to compile Snowmix for macOS with few or no modifications. If access to hardware for macOS can be provided on a temporary basis, support can be resumed. Feel free to contact author if you can provide access to macOS hardware.
MacOS ARM based M1, M2 etc. hardware is currently not tested due to lack of access.
Legacy and/or Deprecated Supported Platforms.
For Snowmix 0.5.1.1, the following OS distributions was also supported, but testing and support for version 0.5.2 and newer has for now been cancelled.
- Linux Chakra amd64 and i686 (Arch Based).
For Snowmix 0.5.1, the following OS distributions was also supported, but testing for version 0.5.1.1 and newer has for now been cancelled.
- FreeBSD PCBSD and TrueOS amd64.
- Linux Linaro ARMv7 (tested version 0.5.0 on ODROID U2)
For Snowmix 0.5.1.1, the following macOS (and OS-X) for i686/amd64/x86-64 hardware was supported tested to compile, install and run.
- OS X El Capitan.
- OS X Yosemite.
- OS X Mavericks.
- OS X Mountain Lion.
- OS X Lion.
A version of FreeBSD namely PCBSD/TrueOS was partly supported on Snowmix version 0.5.1, but since TrueOS is no longer maintained and online downloads of updated packages are no longer available, Snowmix support for FreeBSD is for now discontinued.
For Windows, please see the relevant section in the FAQ.
Supported Hardware.
Snowmix is very relaxed with its hardware requirements and it has been tested successfully on a variety of older and newer computers with i386/i686, amd64/x86_64 and ARMv7 compatible processors.
Snowmix code until version 0.5.1 was being developed by the author on an old 2007 Lenovo ThinkPad T61 with 2GB of RAM to ensure that Snowmix can run on a wide range of hardware including older hardware. Newer version are being developed on slightly newer hardware with more cores and RAM.
Although Snowmix itself have very modest hardware requirements, a complete video mixer system with many input pipelines decoding HD,FullHD, 4k or higher video, Snowmix mixing highe resolution video and an output pipeline aggressively encoding high quality low bandwidth video will require a substantial amount of both CPU power and CPU to memory bandwidth.
The author is using Snowmix to produce Live television rocket launches from the Baltic Sea for Copenhagen Suborbitals. The productions are in FullHD 1080p - 1920x1080@30fps with up to 14 camera input and up to 18 audio input on old IBM/Lenovo X3690X5 servers with with two Xeon 2.40G0Hz E7-2840 32nm Westmere CPUs, each with 10 cores (40 threads per server) and 32GB RAM in total although less is required. This type of CPU was released for sale in 2011 so obviously Snowmix can run on older hardware as well as very well on newer hardware. Snowmix only uses a fraction of the CPU time as most CPU time on a complete multi core system goes to decoding video and audio streams for input as well as encoding the mixed audio and video stream for output.
Does this mean that you could build a really great 4k or higher mixer platform on a modern quad or dual Xeon or Ryzen Threadripper server? Heck yeah!.
Required libraries.
Snowmix depends on libcairo from CairoGraphics.org and Pango available for Linux, Mac OS X and Windows among others. Libcairo is already part of most Linux distributions. Prebuilt binaries are also available for Mac OS X and Windows although Pango on OS X may have to be built using MacPort or Homebrew.
Snowmix also depends on SDL, libPNG and Tcl/Tk which all have multi-platform support including Linux, Mac OS X and Windows.
For configuring and compiling Snowmix, gcc/g++, make and autotools are necessary.
For scripts and more, usually programs like, bc, nc (netcat), awk and many more standard Un*x tools are expected to be available.
The bootstrap script supplied with Snowmix will offer to check, download and install necessary tools, libraries and needed software for you. This inlcudes checking on bc for most distros.
Optional libraries.
Snowmix now has support for embedded Python scripting like Snowmix has had support for embedded Tcl scripting for many years. Embedded Python scripting in Snowmix requires libpython3. The bootstrap for Snowmix will offer to download libraries needed if your computer has not already done so. For Snowmix version 0.5.2, embedded Python scripting is alpha code and disabled by default. To enable it please follow the instructions for adding embedded Python support to Snowmix.
Snowmix has support for hardware accelerated OpenGL 3D scripting and features. Depending on distro and platform this requires som libraries typical named some combination of MESA, OS, GL, X11, GLU and more. There is also support for OpenGL in pure softwatware, but that is slow. Libraries for OpenGL support is included in the listing for supported platforms/distros below. Instructions on how to enable OpenGL support in Snowmix is described here.
Snowmix uses a shared memory model for efficiently inputting to and outputting video from Snowmix. The shared memory model is compliant with GStreamer shmsink and shmsrc so Gstreamer is recommended as required software too. All the scripts for inputting and outputting audio and video to and from Snowmix uses Gstreamer.
Snowmix bootstrap scripts, configure scripts and more has been tested in a bash shell. It is recommended to run bootsrap and compilation/make in a bash shell and remeber to set the environmenr variable SNOWMIX as mentioned many times in the documentation and in the text printed to the terminal running the bootstrap script. Other shells may work, but they are not tested here.
List of libraries per platform/distro.
The table below list the packages needed to be installed for Snowmix to compile, run and test on each supported platform. Snowmix's boostrap script will detect platform and offer to install missing packages.
| Operating System | Version | Packages |
| Alma Linux | v9.7 - v10.1 | gcc gcc-c++ autoconf automake make libtool SDL2-devel libpng-devel pango-devel tcl tcl-devel tk python3-devel orc-devel (bwidget will be installed as part of Snowmix) PackageKit-gstreamer-plugin gstreamer1 gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-libs gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-ugly-free pipewire-gstreamer gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-plugins-base-tools gstreamer1-plugins-good-gtk gstreamer1-rtsp-server mesa-libGL mesa-libGLU mesa-libGL-devel freeglut-devel For v10.x and newer, the following are also to be installed: mesa-libOSMesa mesa-libOSMesa-devel Version before 10 are not supporting SDL3 and are not expected to support SDL3. Version 10 does ultimo 2025 not yet offer support for SDL3 and as such downloading SDL as a apcakge to install is not offered. |
| CentOS Linux | v9.7 - v10.1 | gcc gcc-c++ autoconf automake make libtool SDL2-devel libpng-devel pango-devel tcl tcl-devel tk python3-devel orc-devel (bwidget will be installed as part of Snowmix) PackageKit-gstreamer-plugin gstreamer1 gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-libs gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-ugly-free pipewire-gstreamer gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-plugins-base-tools gstreamer1-plugins-good-gtk gstreamer1-rtsp-server mesa-libGL mesa-libGLU mesa-libGL-devel freeglut-devel For v10.x and newer, the following are also to be installed: mesa-libOSMesa mesa-libOSMesa-devel Version before 10 are not supporting SDL3 and are not expected to support SDL3. Version 10 does ultimo 2025 not yet offer support for SDL3 and as such downloading SDL as a apcakge to install is not offered. |
| debian Linux | 11.x Bullseye 12.x Bookworm 13.x Trixie | build-essential automake autoconf libtool g++ pkg-config bc libpango1.0-dev libpng-dev libsdl3-dev libosmesa6-dev freeglut3-dev libglew-dev python3-dev libpython3-dev gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav liborc-0.4-dev tcl tk bwidget tcl-dev From version 13 and on, the ./bootstrap script will offer to install SDL3 (libsdl3-dev). For ealier versions, the ./bootstrap script will offer to install SDL2 (libsdl2-dev). |
| EndeavourOS Linux | Ganymede 2025.11.24 | openbsd-netcat bc gnome-terminal pkg-config autoconf automake make libtool awk gcc sdl3 libpng tcl tk gnome-terminal gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav bwidget will be downloaded and installed as part of Snowmix OpenGL requires OSMesa and libglut however the packages have not been identified, but it seems to work so the libraries are there somehow as part of something else. |
| Fedora Linux | Workstation 42 Workstation 43 | gcc gcc-c++ autoconf automake make libtool libpng-devel pango-devel python3-devel orc-devel SDL3-devel tcl tcl-devel tk gnome-terminal bwidget GStramer: PackageKit-gstreamer-plugin gstreamer1 gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-libs gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-ugly-free pipewire-gstreamer gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-plugins-base-tools gstreamer1-plugins-good-gtk gstreamer1-rtsp-server OpenGL: mesa-libGL mesa-libGL-devel mesa-libEGL mesa-libEGL-devel mesa-libGLU mesa-libGLU-devel freeglut freeglut-devel The ./boostrap script will for Fedora Workstation 42 offer to install and use SDL2 instead of SDL3. |
| Linux Mint | 20 Cinnamon, 21 Cinnamon, 22.2 Cinnamon, 22.3 Cinnamon | build-essential automake autoconf libtool g++ pkg-config gnome-terminal libpng-dev libsdl2-dev libpango1.0-dev libosmesa6-dev freeglut3-dev python3-dev libpython3-dev liborc-0.4-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer-tools tcl tk bwidget tcl-dev |
| Mageia Linux | 9, 10 alpha1 (8 not tested with 0.5.2 and 0.5.2.1) | gcc make automake libtool bc pkg-config gcc-c++ netcat-openbsd tcl tk bwidget tcl-devel liborc-devel gnome-terminal libpython3-devel libpng-devel libcairo-devel libpango-devel lib64sdl2.0_0 lib64sdl2.0-devel libSDL-devel SDL3 was not available as package ultimo 2025. For OpenGL: osmesa-devel freeglut-devel lib64mesagl-devel lib64freeglut-devel lib64mesaglu1-devel lib64glew-devel. GStreamer: gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-mpeg gstreamer1.0-lame gstreamer1.0-flac gstreamer1.0-mpeg2enc |
| Manjaro Linux | KDE 25.0.10 | openbsd-netcat bc gnome-terminal pkg-config autoconf automake make libtool awk gcc sdl3 libpng tcl tk gnome-terminal gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav bwidget will be downloaded and installed as part of Snowmix OpenGL requires OSMesa and libglut however the packages have not been identified, but it seems to work so the libraries are there somehow as part of something else. |
| MX Linux | 21 23.6 25 | build-essential automake autoconf libtool g++ pkg-config bc libpango1.0-dev libpng-dev libsdl3-dev libosmesa6-dev freeglut3-dev libglew-dev python3-dev libpython3-dev gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav liborc-0.4-dev tcl tk bwidget tcl-dev From version 25 (based on debian 13) and on, the ./bootstrap script will offer to install SDL3 (libsdl3-dev). For ealier versions, the ./bootstrap script will offer to install SDL2 (libsdl2-dev). |
| OpenSUSE Linux | Tumbleweed 20251015Leap 16 | autoconf automake make libtool bc gcc gcc-c++ pkg-config orc libpng16-devel libcairo2 cairo-devel libpango-1_0-0 pango-devel tcl tk tcllib tcl-devel bwidget libglut3 freeglut-devel python3-devel gnome-terminal SDL3-devel Mesa-devel GStreamer: gstreamer gstreamer-utils gstreamer-plugins-base gstreamer-plugins-good gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-qt gstreamer-plugins-libav Leap 16 does not have H.264 suppport in GStreamer plugins and cannot play the Big Bunny movie used in the snowmix_demo program. Leap 15 was not tested, but Leap 15 does not support SDL3 (use SDL2) and the Mesa-devel changed named from Leap 15 to Leap 16. For this reason the bootstrap script (bootstrapd/bootstrap-opensuse) will probably fail if used for installing required packages unless modified to request installed the right packages. Leap 15 libOSMesa-devel -> Leap 16 Mesa-devel . |
| Rocky Linux | v9.7 - v10.1Require CRB for OpenGL/OSMesa support. | gcc gcc-c++ autoconf automake make libtool SDL2-devel libpng-devel pango-devel tcl tcl-devel tk python3-devel orc-devel (bwidget will be installed as part of Snowmix) PackageKit-gstreamer-plugin gstreamer1 gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-libs gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-ugly-free pipewire-gstreamer gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-plugins-base-tools gstreamer1-plugins-good-gtk gstreamer1-rtsp-server Optional from CRB Repo: mesa-libGL mesa-libGL-devel mesa-libOSMesa mesa-libOSMesa-devel freeglut-devel WARNING: 3D OpenGL and OSMesa support require enabling the CRB repository. After doing so, 'dnf update' reports errors in time of writing (Ultimo November 2025). After installing the packages required, you can disable the CRB (sudo dnf config-manager --disable crb) to make dnf work again without errors. |
| Ubuntu Linux | 20.04 LTS, 22.04 LTS, 24.04 LTS 3, 25.04, 25.10 | build-essential automake autoconf libtool g++ pkg-config gnome-terminal libpng-dev libsdl2-dev libpango1.0-dev libosmesa6-dev freeglut3-dev python3-dev libpython3-dev liborc-0.4-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-vaapi libgstreamer1.0-dev gstreamer-tools tcl tk bwidget tcl-dev For Ubuntu 25.04 and newer the ./bootstrap script will try to install SDL3 (libsdl3-dev) instead of SDL2. |
| macOS Sierra | 10.12 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, mesa, python314, freeglut, orc, tcl, tk, bwidget, gstreamer |
| macOS High Sierra | 10.13 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, mesa, python314, freeglut, orc, tcl, tk, bwidget, gstreamer |
| macOS Mojave | 10.14 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, mesa, python314, freeglut, orc, tcl, tk, bwidget, gstreamer |
| macOS Catalina | 10.15 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, mesa, python314, freeglut, orc, tcl, tk, bwidget, gstreamer |
| macOS Big Sur | 11 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, mesa, python314, freeglut, orc, tcl, tk, bwidget, gstreamer |
| macOS Monterey | 12 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, mesa, python314, freeglut, orc, tcl, tk, bwidget, gstreamer |
| macOS Ventura | 13 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, mesa, python314, freeglut, orc, tcl, tk, bwidget, gstreamer |
| macOS Sonoma | 14not tested. | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, mesa, python314, freeglut, orc, tcl, tk, bwidget, gstreamer |
| macOS Sequoia | 15not tested. | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, mesa, python314, freeglut, orc, tcl, tk, bwidget, gstreamer |
| macOS Tahoe | 26not tested. | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, mesa, python314, freeglut, orc, tcl, tk, bwidget, gstreamer |
Previously supported or support currently on hold
| Operating System | Version | Packages |
| CentOS LinuxNo longer supported. | 7.6-8.2 | gcc, gcc-c++, autoconf, automake, make, bc, libtool, SDL-devel, libpng-devel, pango-devel, tcl, tcl-devel, tk, bwidget (and possibly liborc-devel) OpenGL requires mesa-libOSMesa mesa-libOSMesa-devel freeglut-devel GStreamer: gstreamer gstreamer-devel gstreamer-tools, gstreamer-plugins-base gstreamer-plugins-good gstreamer-plugins-good-extras gstreamer-plugins-bad gstreamer-plugins-bad-free gstreamer-plugins-bad-free-extras gstreamer-plugins-bad-nonfree gstreamer-plugins-espeak gstreamer-plugins-fc plugins-ugly gstreamer-ffmpeg |
| Chakra Linux | 2017.10 Euler | openbsd-netcat bc gnome-terminal gstreamer gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav pkg-config autoconf automake make libtool awk gcc sdl2 tcl tk bwidget (may not exist so bootstrap will offer to download, compile and install bwidget OpenGL requires OSMesa and libglut however the packages has not been identified. |
| OS X | Lion 10.7 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer |
| OS X | Mountain Lion 10.8 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer |
| OS X | Mavericks 10.9 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer |
| OS X | Yosemite 10.10 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer |
| OS X | El Capitan 10.11 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer |
