While thinking about how to extend Byzanz and what features to add to it, I came up with four requirements for a good screencasting application on Linux, which are, in descending importance:
- Can be played back inside a browser with a default installation of current versions of Windows, RHEL and Ubuntu.
This is important because most screencasts are made for the web and for a wide audience. And these audiences probably use an average distribution and are not into installing weird software. They probably just use the default. This is why I picked Windows (the biggest audience) and Linux (a big audience for recordings of Linux desktops).
- Can be recorded on a recent Fedora or Ubuntu with a default install and an install of the recorder.
It should not be hard to get going. If there's a custm compile needed or packages are required that for some reason cannot be included in the package tree (think multimedia and patents here), then it's not an easy tool.
- Has a decent quality and file size.
This is fairly obvious. You don't want to wait an aeon until the download is finished and you want to be able to see what the screencast is about. And this point requires special care because a lot of video formats are bad for screencasts since they fail to produce good enough recordings of text.
- records audio
While this sounds fairly easy ("just add the feature!"), it becomes a problem when choosing the right format. It's also currently a problem in the "just works" department because there's quite some setup required in all the apps I've used that support audio input. Even Ekiga, which is a simple to use multimedia application, still has a druid.
- GIF does (1) and (2) and is ok for (3). That is, until you start recording images or videos, because the format only supports 256 different colors and videos or images tend to use all the 16 million different ones. And the file size starts to suck, too. GIF totally fails at (4), because it has no sound.
- Flash is the probably the best choice for (3) and (4), might work for (1) - I have no clue about Flash playback in current Linux distros, but totally fails at (2). Flash audio is MP3 and currently no distro ships an MP3 encoder in their main repository. Add to that the missing availability of flash encoding libraries in Linux and especially Linux distros.
- All video formats (think MPEG, AVI formats or OGG THEORA here) do (4) and are ok at (3). But none of them does (1). Either they work in Windows or they work in Linux. Probably they work nowhere because browser plugins for video playback aren't installed by default. And the we haven't touched (2) which is hard becase multimedia production enters the patent minefield again which makes distros not ship encoding libraries.
- JAVA is an option. A custom Java applet for playing back screencasts could easily handle (3) and (4). And it would do (1) and (2) for every distro that has a JRE and Java browser plugin installed. Unfortunately this is the first problem. Most current Linux distributions don't have that installed. And the second problem is that a good Java applet is missing and noone has stepped up yet to code a screencast applet.