Thursday, February 28, 2008

Screencasting Software

I produce the occasional video tutorial, and the tool I've used for it up to now is the venerable SnapzPro X (from Ambrosia), which is more of a screen capture program with video capture added as a bit of an afterthought. There's been a flood of cheap(ish) and even free programs aimed at the video-capture and screencasting market, and I decided to try some out.

One of the first pages you'll find if you google "screencast mac os x" is here. This is a pretty good, if already dated, overview. The author concludes by saying he (?) has chosen IShowU, which is definitely a pretty neat app (if a pretty lame name for an app).

I'd say there are basically three contenders, none of which is perfect, and even if you took the best features of each of them and combined them into a single package, I wouldn't be happy.

IShowU ($20) is the cheapest of the three, and it has one killer feature that the others simply can't match -- when you finish recording, you're done. Assuming you've chosen the right preset, your session is compressed on-the-fly, so instead of having a 2GB uncompressed video file which will need to be slowly recompressed when you're finished, you can just quit and post your session. If you have QuickTime Pro, you can probably make a bunch of simple edits (delete excess crap) and save. Done.

On the down-side IShowU is pretty unpolished. There are typos in its preset names, when you create a new preset it defaults to some random (horrible) setting rather than assuming you'd like to start with your current setting, and it's all too easy to mess up your presets (there's no explicit save). The "record cursor to sprite channel" option produces horrible results, and there's no option to display keystrokes or mouse clicks visually.

Screenflick ($29) used to be called Screencast, until they found out that there was already a Windows app with the same name. Screenflick has a few slick features, such as showing left and right mouseclicks and keystrokes visually, but it has the same weakness as SnapzPro in that you end each session by recompressing everything.

Of the three applications, Screenflick is the slickest and most mature. It has a brilliant feature which lets you hide or replace your desktop during sessions which is a huge boon. But in the end it's just a slicker version of SnapzPro, lacking the workflow support of Screenflow and the killer feature (no recompression) of IShowU.

Screenflow ($99) is produced by Vara software who produce very serious webcasting software which is all but a digital TV studio. This is an app aimed at professionals who will use it a lot, not just once in a blue moon. They obviously know their stuff and have thought out what most users probably want to do really well.

First of all, Screenflow captures a bunch of metadata (mouse position, window locations, keystrokes, etc.) independently of the actual video, and thus allows you to change what's shown on screen after you're done capturing (whereas Screencast burns it into the video).

Second, it allows you to edit the video before saving it out (but you do need to wait for it to recompress everything). The editing interface is very well done; anyone who knows their way around iMovie will be at home instantly.

Third it allows you to simultaneously record video of yourself during the screencast (using your iSight, for example) and then lets you composite the video channels however you like.

Screenflow is very easy to use and powerful, despite being a 1.0 product. It is still lacking in some attention to detail. E.g. you can't set defaults or presets for your screen capture tracks, so you'll find yourself setting the same options over and over. Worst of all, it does a poor job of differentiating left- and right- mouseclicks.

The Somewhat Depressing Conclusion

In the end, none of these apps do everything I want. None of them will record modifier keys that I hold down without pressing a non-modifier key. So if I'm explaining how to use some exotic application which behaves differently when you hold down the option or shift key (you know -- like Finder) I need to constantly explain which key I'm holding down.

Of the three, Screenflow has the most promise, while IShowU allows you to get a screencast done really quickly. It's not really possible for Screenflow to adopt IShowU's approach, because it renders a lot of stuff post-hoc using metadata, so if you want the additional power and flexibility of Screenflow, you'll need to deal with a recompression pass. Screenflick lets you achieve most of what you can do with Screenflow, but without the flexibility of changing your mind, and without the speed of IShowU.

There are two things which prevent me from posting video tutorials at the drop of a hat. One of them is the various annoying limitations of the capture programs (and if I could get Screenflow with better defaults/presets and proper keystroke recording, I'd be happy here) and the difficulty of uploading the videos to most forums. It's nice to see that my first problem is almost solved; now for the second problem.

Post Script:
It looks like there's a solution to my problem: Mouseposé. In combination with IShowU it's probably the best all-round option, at least for my purposes. (Before I stumbled across it,, I wrote an application called KeyReveal to accurately display all keypresses. It's a quick hack, so it's not quite as elegant as those apps that use translucent windows. Hopefully it will be useful to someone...)