Linux Screencasting Tool Kazam Goes Gstreamer, Adds PulseAudio Support

Kazam Screencaster is a small program used for screen recording. It was mainly written by Andrew Higginson, you can read his initial blog post about it to get more background info. After the release of Ubuntu 11.04 (Natty Narwhal) there were no updates and and new releases and initial release will fail to install on Ubuntu 11.10 (Oneiric Ocelot). I’ve dug into the sources a little and fixed few minor issues and made everything installable on Ubuntu 11.10.

Later, I’ve exchanged couple of emails with Andrew and offered my help. So, I’ll release an official version of Kazam in mid January and continue to work on it.

What has changed?

There were many isses with ffmpeg from audio recording device selection to codec nightmares. What to install, where to get it? Compiling my own codecs?! Seriously? Truth be told, ffmpeg and H264 are a minor nightmare on Ubuntu there are problems with legal restrictions and there are problems with continuously changing parameters for x264 and ffmpeg, beside that, ffmpeg has API that could be used for accessing it.

The first thing to go was ffmpeg support, then I decided to drop H264 encoding too. I sacrificed some quality and CPU power for ease of use. Ffmpeg is still there, just disabled and waiting for better times in one of next releases I’ll enable it for those users that have necessary support libraries installed and I’ll provide a short guide on how to install them.

  • Default backend is now gstreamer.
  • Video is encoded with vp8 instead of x264.
  • Audio is encoded with Ogg Vorbis.
  • Audio/Video container is now WebM.
  • Package dependencies revised to include only essential packages.

Pulseaudio support

There as no real support for selecting audio devices and which input to use for recording sound. Right now the default pulse audio input was used and user had to change the default in order to use different input. To make things worse, Ubuntu sound settings don’t list monitor devices as input devices and recording application sound was close to impossible for most of the users. After a lot of digging I managed to whip up python support for pulseaudio and extracted list of all audio devices that can be used for recording.

  • Pulseaudio basic support.
  • Independent audio input device selection, no need to open sound settings.
  • Volume setting slider in the working.
  • The path to multiple source recording is now open. Next release should support recoding audio on two channels (application sounds and voice-over commentary, for example).
Kazam Screencaster - Audio selectionKazam Screencaster – Audio selection

User interface changes

In Ubuntu 11.10 I found menu bar icons too subtle and hard to read. I changed them just tiny little bit and I added colors to record and pause indicator. Before I got rid of ffmpeg I also added one combo box for selecting back-end, currently it doesn’t do a thing.

  • Panel icons made a bit less subtle so that you can easily notice if you are recording or not.
  • Back-end selection combo box.
  • Audio source selection combo box that actually works.
  • Temporary files are now removed if you quit application and application exits gracefully.
  • Added prefix “kazam_” to temporary files for easier recognition.
Kazam Screencaster - Combobox too long?Kazam Screencaster – Combobox too long?

Is something broken?

Most likely it is. I didn’t even try to edit any of recorded videos. I will do that at some other time. Those parts of code are still as they used to be and rely heavily on ffmpeg. If you don’t have ffmpeg installed Kazam will break if you try to edit recorded captures.

There’s also multiple screen support. In my configuration it works, two screens side by side. If you have more than one screen not side by side or you have multiple screens then your mileage my vary. Gstreamer is very precise when it comes to specifying what part of the desktop to record.

How to install?

Update (01/01/2012): Kazam Team PPA from the unstable series is already available, info below.

Source code and PPA build for Ubuntu 11.10 Oneiric Ocelot is available in my personal PPA. Official PPA will be available after some more polishing and few minor changes, most likely in January 2012.

Source code is available in Launchpad and there is an official unstable PPA available. Version number was bumped to 0.13.

$ sudo add-apt-repository ppa:kazam-team/unstable-series
$ sudo apt-get update
$ sudo apt-get install kazam

All the input is greatly appreciated!

Comments are closed.