Screencasting Outline isight story Screencasting intro This is a screencasting tutorial. How many of you know what screencasting is? Screencasting is recording your computer's screen and posting that online as a demonstration of your software, or your arrangement of other people's software. Screencasting is Screenshots+Podcasting (in a very loose way). We're going to learn how to do that. We're going to learn how to record our screens, compress the results, and put them on the web. I hope everyone brought something they're working on to demo; we're going to compare movies later! How many of you have made a desktop movie before? Ok, I'll talk a bit by way of introduction, then step down and we'll get to it. By the end of this tutorial, you should all be able to make a screencast. First some history. Early software was mostly text based, so you usually just looked at the features. In the case of games, there was likely to be an illustration to convey intended effect. Free software? There was so little of it, you saw your colleagues using it first, or there was plent of time to download it and try it yourself. But as GUI software become more common, and more pretty, it became common to show an actual photo of the application in use in books and manuals, and later, as image files on the web. These are called screenshots, and really got going around the linux desktop six or seven years ago. Anyone remember themes.org? It was a massive site in its golden age, where people could share background images, toolkit and window manager themes along the lines of sites like art.gnome.org, and of course screenshots of their tricked out desktops with the windows artfully arranged. How do screenshots work? At the most basic level you just dump the framebuffer to a file. Examples: KSnapshot, Gnome screen capture import -window root file.png xwdump But as GUI development evolved, interaction design became more important. A picture isn't worth a thousand words when you're explaining how to use a complex application, so showing of ease of use improvements. Moreover, as computers have become faster, the development of eye candy has turned more to animations and subtle motion and overlay effects, not just in elegant but static visuals. And that's the benefit of taking not just a single image but a movie. A movie is just a sequence of images, played back quickly enough to give the illusion of motion. So conceptually you make a screencast just by takes a bunch of screenshots quickly. Unfortunately, screenshot apps generally aren't fast enough to make a smooth movie. If you're spending 4 hours testing a linux install in qemu, then grabbing a frame every six seconds isn't bad, but for normal interactive work you need at least 12 frames every second. That's where screen recording applications come in. They focus on reducing the capture overhead, and usually also help you encode the results in a video file. A note on formats: A video made of a sequence of individual frames, even with something like jpeg compression, is generally too large for people to download. So you need to use a compressed video format that takes advantage of the redundancy between successive frames. Unfortunately, almost all video compression formats are patented, including mpeg and flash. So in much of the western world, it's not possible to create them with free software, including here in Australia. I work with the Xiph.org foundation, trying to create free alternatives for digital media, so I'm not going to tell you how to encode your video in mpeg or flash, we're going to focus on two free distribution formats, and some intermediates. Animated GIF gif is now free, the last LZW patent having expired in 2005. It has the advantage that every web browser has native support for playback: just use an tag. The disadvangates are that the compression isn't great, and it's limited to 256 colours, so the subtle shadings of todays desktop environments will end up dithered. Ogg Theora This is a free video format. It compresses much better than .gif and isn't limited by the colourspace. However, default playback support is only common in Linux installs less than a few years old. People on other platforms will probably have to install something. The counterpart to the 256 colour issue is that encoders are designed for photographic images, and at low bitrates you'll get blurring and popping artefacts. Tools There are a couple of screen recorders. I suggest you pick one, and keep going down the list until you get something that works: Byzanz (makes gif, uses the damage extension to construct small animated gif) Istanbul (makes theora, works without damage, heavier cpu load) xvidcap (best capture, makes mpeg, and a bunch of files we can encode to theora by hand) vncrec (need patched version to encode theora Now, I don't know it all, and )typical of emerging support in free and open source software, there are several different screen recording programs, and they all only sort of work. So you may have to try a few things, and we'll need to help each other out. In fine linux tradition, let's all try and get one of the above installed, and try recording our screens. After that we'll compare and critique movies. Ok, sounds like a lot of us have movies going. Now that we have the technical part down, we move in to performance. That's what you're doing with you make a screencast. You're performing your application for others. Demonstrating what's cool, Showing people how it works, and usually trying to educate and impress them. And what is performance without review and critique? We're going to break into small groups now, of around four people each. For 15 minutes, take turns showing the other people the recording you've made. When it's not your turn, think about what you're seeing. Does the video explain the application well? Can you see what's going on? Is it interesting to watch? Try to be constructive and point out things you thing could be better. Then we'll all try again and see if we can improve.