Copenhagen Suborbitals Release Snowmix, an Open Source Video Mixer

snowmix_feat

The Copenhagen Suborbitals, if you weren’t aware, have a pretty simple goal: to launch a human being into space.

As you might expect, this takes a bit of work to accomplish; and along the way they will be creating and researching many ideas and technologies that otherwise would be limited to global superpowers and corporate entities. Good thing for us, they are doing it all open source.

One of the latest open source releases from this project isn’t technically related to rocket engines and spacecraft, but just may well end up being one of the most widely used contributions the Copenhagen Suborbitals make to the open source community: Snowmix.

Streaming Science

There seems to be one universal truth about rockets: everyone wants to watch when one fires. So part of the Copenhagen Subortitals work has been with recording and streaming the video collected while they test their various engines and craft.

This is a much more important task than you might think, as it serves not only to convey valuable data to interested parties all over the globe for review (a core element to an open source project), but also as an important advertisement for the group’s work. The Copenhagen Suborbitals rely on donations to keep going, so it’s vitally important they give the public something to keep them interested.

Streaming the video is so important that they’ve even formed a “StreamTeam”, who is responsible for getting the video recorded and distributed. One of the StreamTeam’s earlier projects, created by Alexandru Csete, was to turn a BeagleBone embedded ARM computer into a HD IP camera for use in and around the Copenhagen Suborbitals spacecraft.

With low cost HD streaming cameras the team had plenty of video coverage, but that only presented a new problem: how do you convey that to viewers all over the world in a usable way?

Snowmix

Originally, the Copenhagen Suborbitals StreamTeam used off the shelf Linux video encoding software and existing services like Livestream to get videos of their tests online. This worked well enough considering there was very little preparation, but definitely left a lot to be desired. The team wanted to be able to combine multiple video streams and easily overlay them with text and graphics. The team looked into working with GStreamer to make their own video mixer, but they didn’t like the limitations that would have put on them.

But the more pressing problem wasn’t aesthetic issues like text overlays, but the fact that launching from sea meant the video setup didn’t have a very good Internet connection while on location. The team simply couldn’t upload all the video at once and have it combined on a server somewhere, they didn’t have the bandwidth for it. So that meant the video mixing had to be done right there on the boat in the middle of the ocean.

So developer Peter Maersk-Moller began work on what would eventually become Snowmix, a Linux video mixer that easily allowed adding text and effects to unlimited numbers of video streams, and could combine that down into one compressed feed suitable for online streaming. Over the next few test fires, the software was tested and further developed until the team thought it was complete enough to be its own project suitable for public use.

A sampling of Snowmix’s features, as listed when the source code went public:

  • Unlimited number of video feeds, geometries and frame rate.
  • Command language for scripting text overlays.
  • Video scaling of regular feeds limited to 1:1, 1:2, 1:3, 1:4, 1:5, 2:3, 2:5 and 3:5.
  • Handling of PAR (Pixel Aspect Ratio) for regular feeds.
  • Unlimited number of virtual feeds (unlimited number of copies from regular feeds).
  • For virtual feeds unlimited vector based up and down scaling of both height and width independently.
  • For virtual feeds unlimited vector based rotation of video images.
  • For virtual feeds unlimited vector based alpha blending of video images.
  • Unlimited overlay of external PNG based images with or without transparency.
  • Unlimited number of vector based (font based) texts in any color on top or underneath video.
  • Unlimited vector based rotation and alpha blending of text.
  • Support for solid and shaded (transparent) background for text.
  • Support for changed shading of background under text also known as individual linear pattern shading.

A nice rundown of the basic Snowmix capabilities and features has been provided on YouTube. This gives you a good idea about the kind of professional video presentations you can put together with it:

Snowmix is licensed under the GPLv3, and is currently available via the project’s page on SourceForge.


Tom Nardi

Tom is a Network Engineer with focus on GNU/Linux and open source software. He is a frequent submitter to "2600", and maintains a personal site of his projects and areas of research at: www.digifail.com .

Related posts

  • Ancurio

    I would be interested in seeing to what extend they’ve been able to reuse existing tech/libraries

    • http://www.oz9aec.net/ Alex Csete

      The video infrastructure itself is built using Gstreamer. This includes capturing, encoding, muxing, streaming over RTP and so on. It’s just that the software mixer available in gstreamer is very hard on CPU, which is why a new mixer was written.

  • Pingback: An Open Source Video Mixer, Inspired by DIY Space Exploration

  • Peter Maersk-Moller

    A new version of Snowmix was released on the 4th of July 2013. Snowmix now supports shapes.
    Shapes adds support for complex graphics and image drawing, clipping,
    patterns, gradients and masking using graphic primitives of the 2D Cairo Graphics library. In this context, a video feed is an image that happens to change at the frame
    rate and shapes are macros that can do complex graphic operations on video, images and graphic primitives.
    Snowmix is still available at https://sourceforge.net/projects/snowmix/

    Best regards
    Peter Maersk-Moller

Top