Requirements for Compiling, Installing and Running Snowmix.

Updated for Snowmix 0.5.1

This page list the supported platforms as well as the required hardware and software needed to compile, install and run Snowmix.

Content

Supported Platforms.

Snowmix is supported on a wide range of Linux distributions, a version of FreeBSD and versions of Mac OS X. Snowmix version 0.5.1 release was tested on the following platforms:

For Windows, please see the relevant section in the FAQ.

Top

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 is 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.

Although Snowmix itself have very modest hardware requirements, a complete video mixer system with many input pipelines decoding HD video, Snowmix mixing HD 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 HD 720p - 1280x720@25fps with up to 10 camera input and up to 10 audio input on an old Dell PowerEdge 1950 Generation III with with two Xeon 2.33-2.5G0Hz E5420 CPUs, each with 4 cores and 4-8GB RAM in total although less is required. This type of CPU was released for sale in 2007 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.

Top

Required software.

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.

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++ and autotools are necessary.

The bootstrap script supplied with Snowmix will offer to check, download and install necessary tools, libraries and needed software for you.

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.

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 SystemVersionPackages
Linux Ubuntu12.04 LTS - 14.04 LTSbuild-essential, automake, autoconf, libtool, g++, pkg-config, libsdl1.2-dev, libpango1.0-dev, libpng12-dev, tcl-dev, tcl, tk, bwidget, gstreamer-tools
OpenGL requires also libosmesa6-dev and freeglut3-dev
Linux Debian7.7.0 Wheezybuild-essential, automake, autoconf, libtool, g++, pkg-config, libsdl1.2-dev, libpango1.0-dev, libpng12-dev, tcl-dev, tcl, tk, bwidget, gstreamer-tools.
OpenGL requires also libosmesa6-dev and freeglut3-dev
Linux Mint17.1/17.2 Cinnamonbuild-essential, automake, autoconf, libtool, g++, pkg-config, libsdl1.2-dev, libpango1.0-dev, libpng12-dev, tcl-dev, tcl, tk, bwidget, gstreamer-tools
OpenGL requires also libosmesa6-dev and freeglut3-dev
Linux CentOS7 15.03gcc, gcc-c++, autoconf, automake, libtool, SDL-devel, libpng-devel, pango-devel, tcl, tcl-devel, tk, bwidget.
OpenGL requires mesa-libOSMesa mesa-libOSMesa-devel freeglut-devel
For script support many of the following GStreamer packages are required, but not all are available from standard repositories : gstreamer, gstreamer-devel, gstreamer-ffmpeg, gstreamer-plugins-bad, gstreamer-plugins-bad-free, gstreamer-plugins-bad-free-extras, gstreamer-plugins-bad-nonfree, gstreamer-plugins-base, gstreamer-plugins-espeak, gstreamer-plugins-fc, gstreamer-plugins-good, gstreamer-plugins-good-extras, gstreamer-plugins-ugly gstreamer-tools
Linux FedoraLive Workstation 21/22gcc, gcc-c++, autoconf, automake, libtool, SDL-devel, libpng12-devel, pango-devel, tcl, tcl-devel, tk, bwidget.
OpenGL requires mesa-libOSMesa-devel freeglut-devel. For script support many of the following GStreamer packages are required, but not all are available from standard repositories : gstreamer, gstreamer-devel, gstreamer-ffmpeg, gstreamer-plugins-bad, gstreamer-plugins-bad-free, gstreamer-plugins-bad-free-extras, gstreamer-plugins-bad-nonfree, gstreamer-plugins-base, gstreamer-plugins-espeak, gstreamer-plugins-fc, gstreamer-plugins-good, gstreamer-plugins-good-extras, gstreamer-plugins-ugly gstreamer-tools
Linux Chakra2014.11 Euleropenbsd-netcat, bc, gst-libav, pkg-config, autoconf, automake, libtool, awk, gcc
OpenGL requires OSMesa and libglut however the packages has not been identified.
Linux OpenSUSE13.2autoconf, automake, libtool, gcc, gcc-c++, pkg-config, libSDL-1_2-0, SDL-devel, libpng16, libpng16-devel, libcairo2, cairo-devel, libpango-1_0-0, pango-devel, tcl, tk, tcllib, tcl-devel, bwidget.
OpenGL requires libOSMesa-devel and libglut.
The following packages are useful for GStreamer support in the scripts: gstreamer, gstreamer-utils, gstreamer-plugins-base, gstreamer-plugins-good, gstreamer-plugins-bad, gstreamer-plugins-ugly, gstreamer-plugins-qt
Mac OS XLion 10.7Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer
Mac OS XMountain Lion 10.8Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer
Mac OS XMavericks 10.9Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer
Mac OS XYosemite 10.10Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer
Mac OS XEl Capitan 10.11Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer

Fedora and CentOS

The following commands has for earlier versions of Fedora been useful to install GStreamer support for scripts. However this has not been tested recently.

GST_PACKAGES='gstreamer gstreamer-devel gstreamer-ffmpeg gstreamer-plugins-bad gstreamer-plugins-bad-free gstreamer-plugins-bad-free-extras gstreamer-plugins-bad-nonfree gstreamer-plugins-base gstreamer-plugins-espeak gstreamer-plugins-fc gstreamer-plugins-good gstreamer-plugins-good-extras gstreamer-plugins-ugly gstreamer-tools' su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm' sudo yum install gstreamer-plugins-bad-nonfree sudo yum install $GST_PACKAGES
Top