September 16, 2004

A Linux graphics project that could be a good opportunity for the right developer(s)

Author: Robin 'Roblimo' Miller

I've spent much of the last month wrestling with video screen-capture
software. My objective is to make simple, human-friendly video
instructions for various Linux distributions and popular free/open
source programs. There are many Windows programs that can do this, but
they use such a bewildering array of proprietary codecs that it's hard
to create videos in Windows that can be displayed by any computer,
running any operating system. On the Linux side of the fence, there are
only a few programs that do this sort of thing, but they are not
competitive with what's available for Windows in either utility or
usability.

This situation is true of many niche applications areas;
there are lots of Windows programs available, but proprietary
limitations make their use frustrating, while Linux alternatives are too
early in their development processes to be truly useful. Each one of
these application niches represents a potential "win" for Linux, but the
nature of open source and free software development often makes it hard
to get developers interested in them.

Face on screen helps emphasize key points

My basic video instruction technique is to open programs and work with
them while recording mouse movements or text commands -- and the
programs' reactions to them -- while talking about what I'm doing. My
face pops up in a small window from time to time when I have a strong
point to make. All who have watched my early efforts agree that this
little face-on-the-screen touch makes my videos far more watchable --
and more human -- than pure screen capture. "Live" voice recording gives
them a spontaneous feel. And because I'm doing all this in front of my
own computer, using a Logitech 4000 Pro Webcam and a lapel microphone as
my input devices, I can make these little video tutorials at any hour of
the day or night, without help. This makes them inexpensive to produce
-- my time is the only cost once the equipment and software is in place
-- so I can make a lot of them.

My current, working production system uses a Linux computer as a VNC
server and a Windows computer running Camtasia
Studio
, a $300 proprietary program, to do the actual screen capture.
The Webcam video is rendered by the utilities packaged by Logitech with
the camera. The computer I use as the (Windows) production machine is a
Toshiba Satellite with a 1.8 GHz Celeron and 256 MB of RAM. The problem
with Camtasia is compression codecs; it took quite a bit of time to
figure out that the reason my video producer, Damen Shaquiri, couldn't
read AVIs produced by Camtasia on his Mac was that by default it used
TSSC -- a proprietary codec -- to compress files it created. Damen
tried to download and install the utility Camtasia's vendor said would
make his Mac able to read their files, but it wouldn't load for him.

Other common Windows video codecs didn't seem to work well with
Camtasia; we had problems with sound synchronization and video quality
in the conversion process. And when it came to Windows-based, AVI-to-MPEG
conversion, we had true horrors. I'm sure there is a program out there
that will competently handle batch video format conversions -- and can
read TSSC-encoded AVI files -- but I haven't found it yet. So far I've
tested six different freeware and shareware video conversion utilities,
and every one has been flawed to the point of unusability.

Using nothing but Linux

So far the two most likely Linux video screen capture programs I've
found are vnc2swf
and Xvidcap.

The problem with vnc2swf is that it produces only .swf files without
sound, so to make narrated videos in MPEG format requires a format
conversion step, possibly using transcode,
a utility neither I nor several friends have managed to get working
correctly. But if we can get transcode working correctly, once we
convert our swf videos to MPEG we should theoretically be able to add a
soundtrack recorded before we started making our screen capture video or
one recorded at the same time -- or record and add a new one after the
fact. This would work, but it would lengthen production time considerably.

The commercial Windows program, Camtasia
Studio
, allowed us to simply speak into a microphone while doing our
on-screen demo, and it produced AVI output that could immediately be played
without any editing or post-production processing. Our problems
with Camtasia were not in the production phase but in making
univerally-readable MPEG videos that didn't rely on proprietary codecs.
This is a solvable problem with enough research; at least one of the
many Windows programs that converts AVI to MPEG probably works
correctly, and with enough time spent trying them out, I'm sure I could
find it. But I would still prefer an "all-Linux" solution, and
particularly one licensed under the GPL or another free or open source
license that allows redistribution, so that I can send a Webcam + CD
"production kit" to "guest video producers" who can use it to contribute
to this video documentation project.

Receptive to suggestions -- and patches

This leads us back to Xvidcap, which does everything we need but has far
higher hardware requirements than Camtasia and other Windows
equivalents. I have ordered a new Intel P4 uP to replace the Celeron in
my HP D220 desktop, and several trusted advisors believe this will give
me enough computing "horsepower" to handle Xvidcap's demands without
spending the money it would take to buy a high-end video workstation.

My editorial assistant, Brice Burgess, has also been in contact with
Xvidcap developer Karl Beckers, who seems receptive to Brice's
suggestions (and a patch he submitted). I personally have made a small
donation to the project through SourceForge.net and will add to it as
work progresses. In addition, I will happily pay other developers who help
produce a final package and possibly work a bit with Camstream -- or help me
work with an alternate video camera solution, since the PWC (Philips Webcam Utility)
that makes Camstream useful with popular sub-$100 Webcams has created an
argument between its creator and Linux kernel maintainers that make me
leery about investing either money or time in anything that involves
this project.

In the end, I suppose I'll need to find another
Linux-supported Webcam or buy a low-end camcorder and use either SVideo
or FireWire input to produce the "live" component of my videos. This
will free me from PWC, just as using Linux frees me from Microsoft, a
company that once threatened
to withdraw Windows from the market
if it didn't get its way.

Scratching niche itches

My Linux video tutorial project is being financed out of my own pocket,
not by my employer. When I say I am willing to pay developers to help
me, I am talking about tens or hundreds of dollars, not thousands. Of
course, I do not want "rights" to any code written; I want to spur
development of software released under a free or open source license. I
offer payment because direct video screen capture (with sound) is
obviously an itch not many free software developers have wanted to
scratch on their own.

Note that I used Windows and a proprietary program to produce my first
round of videos. This was a classic case of an application need
dictating an operating system choice. If there had been a more
highly-developed video screen capture setup for Linux or even if
Xvidcap's documention had given me a hint that its hardware requirements
were much higher than Windows video capture programs (none of which had
trouble working correctly on my Celeron-powered laptop with a mere 256
MB of RAM), Linux might have been a practical alternative, even on a
tight deadline. But because of time constraints, I ended up going with
what installed and worked "out of the box" without fuss. Other people
make this kind of decision every day for both personal and business
projects. The old saw about Linux being free only if your time is worth
nothing applies here; when you're working against a deadline, time can
be far more valuable than money.

So I have my little pet project. Thousands of others surely have
software needs that aren't met in Linux -- and possibly aren't met well
by available (proprietary) Windows or Mac software. Each one of these
needs can either be considered a barrier to Linux adoption or viewed as
an opportunity for free and open source developers to make better
software than what's already out there.

Maybe I'm a rarity -- an individual willing to spend at least as much to
spur open source development as on a piece of proprietary software
($300) -- but I doubt it. I'm also sure many corporate types would be
willing to spend far more than I can afford to have software they need
available to them and may not need or even want exclusive control over
that software.

I have seen several attempts to create an open source software bazaar
where users and developers could meet, but none of them really worked.

Could a free or open source software bazaar succeed today? Are there
finally enough software users willing to support free or open source
development with cash money to make this sort of thing worthwhile? Or
are users willing to pay for free software so rare that the idea of
trying to spur development of niche-use free software for Linux that's
superior to existing proprietary software is doomed to remain a dream
instead of becoming reality?

Click Here!