Updated for version 0.4.5.
Snowmix require a laptop or PC or server running Linux with i386/i686/amd64/ARMv7 CPU or Mac OS X with Intel CPU.
Snowmix has been tested on Ubuntu, Fedora, Debian OpenSUSE, Chakra and Linero Linux. It has also been tested on Mac OS X Lion, Mountain Lion, Mavericks and Yosemite.
The table below list the packages needed to be installed for Snowmix to compile, run and test on each platform. Snowmix's boostrap script will detect platform and offer to install missing packages.
Operating System | Version | Packages |
---|---|---|
Linux Ubuntu | 12.04 LTS - 14.04 LTS | build-essential, automake, autoconf, libtool, g++, pkg-config, libsdl1.2-dev, libpango1.0-dev, libpng12-dev, tcl-dev, tcl, tk, bwidget, gstreamer-tools |
Linux Mint | 17.1 Cinnamon | build-essential, automake, autoconf, libtool, g++, pkg-config, libsdl1.2-dev, libpango1.0-dev, libpng12-dev, tcl-dev, tcl, tk, bwidget, gstreamer-tools |
Linux Debian | 7.7.0 Wheezy | build-essential, automake, autoconf, libtool, g++, pkg-config, libsdl1.2-dev, libpango1.0-dev, libpng12-dev, tcl-dev, tcl, tk, bwidget, gstreamer-tools |
Linux Fedora | Live Workstation 21 | gcc, gcc-c++, autoconf, automake, libtool, SDL-devel, libpng12-devel, pango-devel, tcl, tcl-devel, tk, bwidget, 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 Chakra | 2014.11 Euler | openbsd-netcat, bc, gst-libav, pkg-config, autoconf, automake, libtool, awk, gcc |
Linux OpenSUSE | 13.2 | autoconf, 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, gstreamer, gstreamer-utils, gstreamer-plugins-base, gstreamer-plugins-good, gstreamer-plugins-bad, gstreamer-plugins-ugly, gstreamer-plugins-qt |
Mac OS X | Lion 10.7 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer |
Mac OS X | Mountain Lion 10.8 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer |
Mac OS X | Mavericks 10.9 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer |
Mac OS X | Yosemite 10.10 | Xcode, Xcode Command Line Tools, port, autoconf, automake, libtool, pkgconfig, pango, cairo, libsdl, libpng, gstreamer |
The bootstrap script will use the command sudo for installing missing packages and you will be required to provide your password for sudo for it to succeed. ALternatively you can manually install any missing packages and safely ignore the install process in the bootstap script, but you still need to run the bootstrap script. Debian users do not by default have access to execute sudo commands. To have access to execute the sudo command on a Debian system, you need to add your username to the sudo group in the /etc/group file. After adding your username to the sudo group, you need to log out and log in again.
On Ubuntu you can manually install the missing packages using the following command:
$ sudo apt-get install build-essential automake autoconf libtool g++ pkg-config libsdl1.2-dev libpango1.0-dev libpng12-dev tcl-dev
Some Ubuntu/Debian alike distros may require tcl8.5-dev or tcl8.6-dev instead of tcl-dev.
GStreamer 1.0 (GStreamer 0.10 is no longer recommended) is needed by the demo example and the scripts to feed audio and/or video streams to Snowmix and to read mixed video from Snowmix. GStreamer version 1.2.1-1.2.2 have a performance issue (uses 2-4 times as much CPU) when converting video streams from I420/YUV to BGRA lowering the overall performance of a Snowmix video mixer system. GStreamer version 1.2.0-1.2.1 have an issue (seting value to 127 instead of 255) with the alpha value when converting video streams from I420/YUV to BGRA. Due to these issue, the scripts of Snowmix will require GStreamer 0.10 if GStreamer 1.2.0-1.2.2 is installed. The recommended GStreamer version is GStreamer-1.4.x. The basic GStreamer tools can on Ubuntu be installed by executing the following command:
$ sudo apt-get install gstreamer-tools
Additional plugins from the good, bad, ugly and libav packages may be required as well.
If you want to run snowcub, which is a gui tool for controlling primarily audio and some other settings of Snowmix, you will need Tcl/Tk and BWidgets. To install these packages execute one of the following:
$ sudo apt-get install tcl8.5 tk8.5 bwidget tcl8.5-dev $ sudo apt-get install tcl8.6 tk8.6 bwidget tcl8.6-dev $ sudo apt-get install tcl tk bwidget
Once again, the boostrap script will off to install the required Tcl and Tk tools.
Unpack the Snowmix package, enter the main directory and run the bootstrap script. The script may be needed to run more than once if packages are missing. After running the bootstrap script, you can rerun the configure program with your own customized settings. After bootstrap and the optional configure process, you run the make command as shown below:
$ tar -xzvf Snowmix-0.4.5.tar.gz
$ cd Snowmix-0.4.5
$ ./bootstrap
$ make
That's it.
You now have the binary snowmix in the src directory. You can change the default installation directory through the configure command before running the make command. Use ./configure --help for more information.
It is strongly advised not to run Snowmix as root. Testing Snowmix requires that you have installed a complete set of GStreamer and GStreamer plugins. You will need the plugin-base, plugin-good, plugin-bad, plugin-ugly and plugin-libav. On how to to install GStreamer and these plugins, please use Google.
Before running any of the scripts, you need to set the enviroment variable SM to the base directory of your Snowmix installation. If you are in the Snowmix base directory, you can execute the following command assuming you are using bash as your shell:
$ cd WHERE_EVER_YOUR_SNOWMIX_BASE_DIRECTORY_IS $ export SM=`pwd`
A more permanent solution would be to add the following line to your ~/.profile or ~/.bash_profile and after changes, you need to logout and login again.
export SM=WHERE_EVER_YOUR_SNOWMIX_BASE_DIRECTORY_IS.
On Mac OS X you should add it to your ~/.bash_profile.
When SM has been been set, you can now run the demos:
$ cd $SM $ bash scripts/demo
This demo will open one xterm-like window for Snowmix, one experimental audio mixer based on Tcl/Tk, one xterm running output of audio and video as well as more xterm windows running test input streams. if all goes well, you will hear audio and see a window with the mixed result depending on which menu point you choose when running the demo.
If you want to test individual ini files, you can do so using the following commands and replacing the some_ini_file with your choice of ini file.
# In one terminal window $ cd $SM/src $ ./snowmix ../ini/some_ini_file # In another terminal window $ cd $SM/scripts $ xterm -e bash output2screen& $ xterm -e bash input2feed 1&
In the window running Snowmix, you can now type Snowmix commands. To begin with, you can type 'help' and press return. Type 'quit' when you want to stop Snowmix. If you terminate Snowmix in any other way, some of the shared memory allocated will stay allocate and build up until you can not start Snowmix again. Allocated shared memory can be found listed in /run/shm (on Linux) and can be deallocated by deleting files in there. The files you need to delete are /run/shm/shmpipe*. However if you don't know what you are doing, bets are you will create problems for you and your machine. If you delete the shm files there, you will have to restart your GStreamer pipelines.
Should you desire to install it, you can do $ make install
However unless you set installation directory in the configuration process to be something writable, you may have to do
$ sudo make install
Currently Snowmix is largely tested without being installed and the current distribtution is not optimized for installing Snowmix and running an installed version of Snowmix.
Snowmix will core dump if the shared memory file system is full. On Linux you can see the state of the shared memory file system is full by executing the command:
$ df -k /run/shm
If Snowmix exits abnormally (or by using CTRL-C), Snowmix will leave shared memory allocated. If this happens a couple of times, you will eventually run out of shared memory space. The allocated shared memory space can be released by deleting the files /run/shm/shmpipe*. However if you do that, you will have to restart your GStreamer pipelines feeding Snowmix and reading from Snowmix.
The following is no longer thought to be true, but left here for later inspection. In the code in controller.cpp Snowmix will core dump when calling mmap() after shm_open() and ftruncate(). So far I don't know how to prevent it. Suggestions and hints are welcomed. This problem however seems to have gone, though it has not yet been fully verified.
Snowmix no longer require special instructions for Fedora. Just set the SM variable and execute the following:
$ cd WHERE_EVER_YOUR_SNOWMIX_BASE_DIRECTORY_IS $ export SM=`pwd` $ ./bootstrap $ make $ bash scripts/demo
PLEASE NOTE. Fedora Live Workstation 21 appear to be missing a H.264 encoder and decoder for GStreamer. Without it, the current input2feed used in the demo script will not work. If you know how to install H.264 encoder and decoder support for GStreamer on Fedora, please drop a note in the Discussion Forum.
Snowmix compiles on Mac OS_X Lion, Mountain Lion, Maverick and Yosemite. It might also work on older Snow Leopard, but it has not been tested.
Yosemite, Maverick and Mountain Lion
To compile Snowmix on OS X on Yousemite, Maverick and Moutain Lion, you need to install Xcode, which Apple provide through App Store for free. So install Xcode first and possibly the Command Line Utilities. The bootstrap script will check for the Utilities and offered to be downloaded and installed if missing.
Lion and Snowleopard
To compile Snowmix on OS X on Lion and Snowleopard you first need to install Xcode, which Apple provide through App Store for free. Then you need to download the Command Line Utilities and install this package as the bootscript can not do this. You can find the Utilities for Lion on the Apple Developer website, but for Snowleopard you may have to search elsewhere.
Yosemite, Maverick, Mountain Lion, Lion and Snowleopard
The boostrap script will offer to download and install port for Mac as well as a number of libraries mentioned in the Linux Section. It will also offer to download and install GStreamer for Mac for you. If you have a GStreamer version older than 1.4.1, you may want to remove that version before running the bootstrap script.
When Xcode has been installed and Snowmix-0.4.5.tar.gz has been downloaded to your Download directory, you can execute the following commands to compile Snowmix:
$ cd $HOME $ mkdir Developer $ cd Developer $ tar -xzvf $HOME/Downloads/Snowmix-0.4.5.tar.gz $ cd Snowmix-0.4.5 $ export SM=`pwd` $ echo "export SM=$SM" >>~/.bash_profile
Now logout and login again for changes to take effect and the run:
$ cd $SM $ ./bootstrap $ make $ bash scripts/demo
If GStreamer is not in your PATH environment variable, you may have to execute the following before running the demo scripts and possibly also add it to your ~/.bash_profile for future logins.:
$ export PATH=$PATH:/Library/Frameworks/GStreamer.framework/Commands
Again logout and login for changes to take effect.
Reports on success and failures on the Mac OS X platform are very welcome in the Forum
Wiki: Home
Wiki: Release Notes
Wiki: Snowmix News
I tried following the instructions .. and all i get is a folder with the files in it .. What else can i do ? is there an installer pagkage available anywhere?
Hi ladyQonlmv
Snowmix is a tool and not an application. The installation process is described in the page above. If you have followed the instructions on this page, you should have compiled an executable file called snowmix. It resides in WHERE_EVER_YOU_PLACED_IT/Snowmix-0.4.4/src/snowmix.
If you follow the instructions on this page, you can run the demo as explained. Got to the Snowmix directory and run these commands:
Note that you need t ohave GStreamer installed to feed video into Snowmix or to get Video out of Snowmix.
If the bootstrap process fails or the make process fails, post me the output of the terminal window, but please do so in the Forum under Discussion found here and please do so in a new thread. You can create a new thread by clicking on the 'Create Topic' button on the page of the Discussion/Forum.
If you can run the demo, then please start reading the documentation in the Wiki.
When you have done so, feel free to describe in Forum what you want to do if you need help to do that.
Best regards
Peter Maersk-Moller
downloaded the package and apt-getted everything ... but "sh bootstrap" fires me an "unsupported OS".
I'm running the script on a debian 7 32 bit.
Hi Frederico.
Support uestions are best handled in the Dicussion/Forum
Debian is currently not tested with SNowmix, but if you have the required packages installed, you can run the following commands in the Snowmix directory
If you are using bash, you can do that by executing the following command:
echo " export SM=$thisdir"
echo "If you are placing the command in the .profile file in your home directory, it will be done automatically when you log in"
echo
fi
Now you can compile Snowmix by cd into src and run make.
After that, you can run Snowmix by executing the command
or you can run the demo by executing the command
../scripts/demo
For questions and help, please use the discussion forum at http://sourceforge.net/projects/snowmix/
where you in the Wiki also can find a lot of documentation, examples and help