Haakon Langaas Lageng asked me the other day "How do you make your videos?" His question was less technical, more procedural. I answered him and thought that I would share this with you. You might be thinking "why would I do such a thing?" - the answer is that a well-made screencast saves everybody time and is 10 times as effective as a book.
As any speaker will tell you - preparing your content is key.
Peepcode's Geoffrey Grosenbach goes into excruciating, exacting detail when preparing his screencasts. In fact
he made a screencast about it. I bought that screencast a while back - and while I don't follow it exactly - I do much of the same thing.
The point: know what you're going to do a video on and tell that to people right up front. Tell them why they should care about what you're going to tell them (and this is important)
in their own terms. Not yours.
If you have an Open Source project - tell the viewer why they care within the first 60 seconds. Try to avoid reasons like "because it's cool and I made it as a way to try out Technology X". A better thing to say would be "Hate hunting down DLLs online and hoping they play nice? MyBitchenPackageManager solves this by X, Y, Z".
Write It Down and Recite It In Your Head
I crack open Google docs and create an outline for what I'm going to talk about and I make sure that I divide it into "sections" that flow - always starting with "why you should care". I outline each "section" and then add details I want to show.
Often I'll write out the things I want to say - in a script of sorts - so when I read it over as I'm producing I'll remember to say a particular point.
For example, I'm currently recording
Tekpub's Rails 3 episode 8 and it's all about testing. Not an easy thing to cover - so I've laid out each section to logically flow from one to the other - in the user's perspective:*Why Testing Is Important When Using Ruby
*Rails Is Test-Ready, Right Now
*Augmenting Rails Testing To Be More Fun and Get More Done
*Moving To RSpec and Focusing On Behaviour
*10 Minutes of BDD With RSpec and VimThis is my rough outline - not sure if it will be the final - but I fill out each subsection with what I want to show, etc.
Watching people code can be mind-numbing... especially when the microphone is on and I get to hear them breathe (more on this below). So I do my best to use slides or presentation software as much as I can. I've been using Mac's Keynote for over a year and I absolutely love it - Powerpoint works OK too.
The neat thing about Keynote is you can prepare your slides and add what you want to say in the presenter notes - almost like a script. You can then record the screencast - laying audio to the slides.
If you have two monitors this works great - the Presenter's View is up on the right with your transition queues and presenter notes and the slides themselves are on the left.
When you're done, just export the presentation as a Quicktime movie - and boom, you have some pretty good video for introductions or conceptual deep dives.
Bullet Points Are Oatmeal
The only time I use these is when I need to convey precisely what I'm about to do. I never used these but recently I decided to take the outline (the sections above) and convey they through the video.
To start I'll say "this is what you'll learn today", half way through I'll echo it, and at the end I'll recap it. People like the structure and closure.
Never any other time - people would much rather have a visual to enforce the point you're making. Something like dirty, hard-hat wearing oil workers to emphasize that "Modeling a Database is hard work" - point is to use pictures when you can.
I use iMovie on the Mac and I love it. It makes it really really simple to piece a story together with transitions. I've often wanted to add wizz-bang 3d graphics, or clever transitions, but that's not the value of what we're doing. It's the content - and your video should be clean, professional, and nothing more.
For instance - a transition where the screen flips around is jarring and makes people disoriented. A fade between starting code and ending code subtly carries the viewer through time - and they get it without being hit over the head.
iMovie is really well documented as well - so you can watch a set of 3 or 4 videos to get up to speed.
I use my Mac exclusively - recording on Windows is just a tragedy. Yes, I've used every conceivable bit of software on Windows 7 and have, without fail, lost hours of video because of driver crashes or some other crap. Camtasia is horrid and the free stuff from Encoder is clunky.
Instead of paying hundreds of dollars for these things, I paid $29 for iShowU and $99 for Fusion (VM for Mac). I run Win7 in a VM and lay iShowU right over it - perfect, every time, and it's never crashed.
Typically I'll record all the code sessions without audio and then overdub later on. This is a massive timesaver. Your results might come out differently.
When you do record, make sure it's 720p or 480p. This means "720 pixels high" or "480 pixels high" and then use a 16:9 width/height ratio. So if you're going 720p - the width should be 1280, etc. The only reason to do this is that most PCs and laptops are set to 16:9 - as are home TVs.
I used to shoot everything at 1000x600, but found that it was too big for iPad, too small for TV and so I changed things up.
If you're going to take the time to record something for your viewer, try to remember that you're asking them to come sit in your lap while you whisper into their ear. That might sound silly, but it's precisely what you're doing - be sensitive to it.
You'll want to be sure to:*Spit out your gum
*Remember to pause when you need to snort, burp, slurp, or swallow
*Drink excessive amounts of water
*Speak softly - this isn't an auditorium. Your user has volume control, so your voice should be conversational, not "presenter-y". No need to project.
*Spend $50 on a Microphone. Audio is everything - your onboard microphone won't cut it. I use a Blue Yeti and I love it - but I'm already scoping my next mic. You can do well with a $50 mic.
*Turn the gain down to remove room noise and record 2 inches from the microphoneI really can't emphasize enough how much the audio quality will improve your presentation. If people can't listen to you - it doesn't matter how good your stuff is.
Finally - if you can't think of something to say when showing some code - don't. Just roll some music in the background (without words) and for the Love of Mike - don't use Death Metal.
Make sure to watch/listen to what you do. The sound of your own voice will be revolting at first - but you can massage that with the audio controls in iMovie. Don't be afraid to redo a section - it can be time consuming but if you say something wrong, or think of a way to say it better, your viewer will love you for it.
Be precise. Clipping/Editing with a transition is lovely - try to massage a rough edit with a transition, or a long bit of coding with a jump. Be mindful of your viewer's time, and don't drag them through tons of silence and "umm's".
Learning to precisely edit will help you a lot - and pretty soon you'll be the video person at your work. Or at least the person who really helped out their team.