By Jake Edge
October 13, 2010
Clint Savage set out to inexpensively record audio from Linux user group
(LUG) meetings that could be easily shared. Soon after he started making
podcasts available, though, he started getting requests for video. That led
him to
investigate cheap video hardware as well as free software solutions for
video. At the Utah Open Source Conference (UTOSC), Savage described his
journey and the solutions he has found.
Near the beginning of his talk, Savage stressed that he is not an
audio/video engineer, just an interested hobbyist, and that he was
presenting tools and equipment that worked for him—not necessarily
the "best" way to handle audio and video on Linux. He started out very
simply, using a $7 microphone from Radio Shack to record LUG meetings. He
used Audacity to add in some
introductory audio and then made the audio available as podcasts.
Once he had that working, he investigated live streaming with a
Shoutcast-compatible server. He tried Icecast, but it "took a long time to
set up". In the meantime, his listeners wanted video, and he wanted
to stay with free and open solutions while not breaking the bank, so he
started looking into cheap
video hardware.
For cameras, he settled on a Canon ZR80 MiniDV digital camcorder, but said
you can also use almost any webcam, including those built-in to laptops. He
wanted to be able to do screen capture for presentation slides and
screencasts, which led him to the vga2usb device from Epiphan. While
that works well, it costs around $300, so he found a much cheaper solution
using a scan converter and EZCap, which does a reasonable job for around
$60. Lowering the cost allowed him to outfit each of the half-dozen UTOSC
presentation rooms with systems capable of recording audio synced with each
talk's slides.
For video capture software he looked, briefly, at the proprietary
offerings for Windows and Mac OS X, but was quickly put off by the price.
Not only is there the "Apple tax" on hardware, which makes it
more expensive than the equivalent Windows or Linux box, but then you need
to spend something like $3000 for video software. Windows has similar
offerings, but it is just as expensive.
For Linux, there are multiple choices for video editing (Kdenlive, Kino,
PiTiVi) and for screen capture (Istanbul, gtk-recordMyDesktop), but none of
those directly provide streaming solutions. Flumotion is a free streaming server,
but he spent three days and "never got it working". Most of
those tools use GStreamer under the
hood, though, so he started looking into that.
GStreamer is a library and set of command-line tools for handling
multimedia content. Savage showed several examples of using GStreamer from
the command line, starting with a very simple:
$ gst-launch videotestsrc ! ximagesink
and moving up into much more complex examples, including one that combined
audio and video. GStreamer is based around the idea of sources
(i.e. inputs) and sinks (i.e. outputs), along with capabilities
(i.e. filters), that can all be combined with a pipe-like syntax using '!'
rather than the shell's '|'. One can examine the available
sources/sinks/capabilities with:
$ gst-inspect | more
But the command line doesn't allow programmatic changes, nor changes "on
the fly".
For doing more interesting things with GStreamer, Savage pointed to gst-python,
which are Python bindings for the GStreamer library. Using gst-python
allows adding and removing filters or adjusting audio/video inputs and
outputs in real-time under the control of a program. It has been used to
build various applications including audio players like Rhythmbox and Amarok.
Savage is quite excited about another, fairly new tool that uses
gst-python. Freeseer is an "open
source video studio in a backpack", according to its web page, that is
built on GStreamer, Python, and KDE. It originally used the FFmpeg command
line, but switched over to gst-python after a fairly short time. It is
designed for recording conferences, but is more versatile than that.
Freeseer has a simple interface and, as Savage demonstrated, just hitting
the "record" button starts recording the screen. It can record from
various sources, including audio sources, and is set up to tag the
multimedia files with things like which room is being recorded,
title and presenter from an RSS feed, and so on. There are some features
that Freeseer is missing—streaming, multiple video sources for
picture-in-picture, and automatic upload for example—but development
is moving quickly so those things, and undoubtedly others, will be
addressed soon.
Savage was the executive director for this year's UTOSC, so he set up
systems using Freeseer to do the audio and slide recording for each
presentation room. He borrowed refurbished, low-end systems from the Electroregeneration society,
and added in around $100 worth of equipment (screen grabber and microphone)
for each room. He recommended a $50 Radio Shack wireless lapel microphone
as the best he had found for presentations, and recording systems only
require a Pentium 4 or better. So, for "a few hundred
dollars", anyone can put together a system to record presentations,
and it wouldn't take that much more to add in live video.
That was clearly a major part of Savage's intent with his presentation: to
get other
conferences, LUGs, and user groups of all kinds to do more recording of the
presentations that they have. From a financial standpoint, it is well
within the budget of almost any group, and the free tools are available and
getting better. The financial barriers to entry for any
group—technical or not—are
pretty low, which is quite a change from where things stood five or even
three years ago.
(
Log in to post comments)