Screen casts: now with fade transitions
It was inevitable. The second you give someone the ability to make a fade, they have to try it out. It's not really PowerPoint's fault there are so many crappy slide decks out there...it's just...well...totally not really my fault. "Fade transitions?" you ask. Yes. Fade transitions. A sucker for punishment and then some I've actually managed to figure out a work flow for screen casting since my last post. It still takes way too much time (approximately 2 hours for a five minute tutorial ... four hours if you include all the failed attempts to output different formats and writing this blog post), but at least I know I can do it now. I'm slightly saddened that I can't zoom in to my video using my new tools of choice, but with a bit of tinkering and a lot more work I know that I could split the video, insert a zoomed in screenshot and then fade back to the full screen video. Yes. Kdenlive makes it that easy. And I'm not even using the new and improved version yet. (But they're using Drupal. So I was already in heart with them even before I gave the project a whirl.)
I'm using Kdenlive version 0.6 for KDE version 3.5.x (but I'm running gnome). And this is how I made that.
- Use gtk-recordmydesktop with the sound turned off to record yourself completing the task you want to screen cast. Don't worry TOO much about timing at the beginning because you can always add a static image in later. Do give yourself plenty of time as you're completing commands though. You can see that I had a hard time keeping up with the voice over in my second screen cast.
- Write out what you're going to say. Playback the screen cast to see if you can fit in all the words in time with the screen cast. Yes, I did the writing part second. It should probably come first, but I found it easier to think, and then type and watch. For my screen cast I did all the typing first and then tried to record the video while following the script and I found it to be awkward.
- In Audacity read your script with the screen cast running. You may need to play with things a bit. Or you may need to re-record your screen cast if you can't make the words fit in with the video. Or adjust your script to say more or less stuff to make it all work.
- Open Kdenlive import your video and audio clips. Drag them into the timeline at the bottom of the window. If you need to, you can "mute" the sound track on the video clip.
- Adjust the start of the video so that it matches with the start of the audio (drag the clips so audio beginning matches the video beginning). If you need more space in the audio, or video, to have them sync, break the clips into smaller chunks using the "split clip" tool and re-align the clips by dragging them around.
- Insert intro and outro slides (I made PNGs in GiMP, but I think Kdenlive has the option to make text slides from within the program). Slides are imported as clips (the same as audio or video clips). Stretch the slides so they fill the entire block that is missing video.
- If you needed to: split your video into smaller components and fill in the gaps with screen captures. There's probably a more elegant way to extend the video output, but I found a screen capture worked just fine (you can see the jump at the end as it jumps from the video version of the terminal to the screen shot version of the same).
- Export the "timeline" (aka the movie). I used the following: Medium Quality (second tab) and chose the following output format: Theora/640x480/Low quality. QuickTime and MPEG4 did not work for me. I got only audio with MPEG4 and only video with QuickTime.
- Upload the OGG file to your video host of choice.
The only problem left is that the conversion tools on BlipTV are unsyncing my voice and my video. It works perfectly locally, but I'm out of sync when I upload. I think this might be because I recorded the video at 15 frames per second, but Kdenlive has a default setting of 25 frames per second. Maybe the Web-based conversion tool is getting confused? I'm not sure...
Huge shouts out to Kyran and heathenx who gave me useful scripts to make my first screen cast suck a little bit less, and to Cinephiliac for letting me know that improvements are on the way to Kdenlive. I always like to hear about an active project!

Comments
Leave your feedback at the bottom. Comments may be held in moderation.
Nice tutorial !
But isn't that not a little bit too complicated.
What about recording the audio directly when recording. I know you need a little bit talent so that you don't speak any nonsense but after some time of training this will work quite well.
So here's my tip howto record a screencast (btw. I did this quite often because I am the one that created 'Ubuntu Switcher' one of the largest Ubuntu Videotutorial Sites in germany)
First of all I created two scripts(because I want to use them anytime I record a screencast). So I fired a Texteditor and typed in:
#!/bin/bash
sound-recorder -c 2 -A /dev/dsp2 -f wav test.wav
I saved this as record.sh
Thats the first script I use to record audio from my USB Headset (/dev/dsp2). It will basically record everything in 2 channel mode (-c 2) and create a wav output called test.wav . Of course the 'sound-recorder' package needs to be installed.
Then for the second script we will use recordmydesktop, so make sure that this package is also been installed.
Open a new textfile and type in :
#!/bin/bash
recordmydesktop --no-sound -o test.ogg
Saved this as recscrn.sh
This will simply record everything on the desktop with no sound and will create a test.ogg (OGG Theora) encoded file.
So now to the interesting part. Make sure that both scripts are executable (chmod +x )
Openup your first slide of your presentation (or the intro image). I normally use OpenOffice for this.
then switch to desktop 2. (I supposse everyone has more then 2 virtual desktops)
Then simply open up a terminal window and type in
sleep 10; ./record.sh This will count till 10 and then start recording the audio (perhaps you need to adjust the path where the record.sh is in)
Open up a second tab in the terminal app. And type in : sleep 10; ./recscrn.sh This will do the exactly same but for the video.
Then go on to the first tab press enter to execute. Do the same with tab 2 of the terminal and then switch to desktop 1 (CTRL+ALT+arrow left might be handy here) and then press F5 for presentation mode (at least in OpenOffice). Start counting down from 10 to 0 and then you can go on with your screencast and a small introduction. If you want to go to the desktop show something there simply switch directly to desktop 3.
If you are at the end simply go to the desktop 1 press a button to show the next slide (this one will be the end slide) and then quickly switch to desktop 2 and abort (CTRL+C) the two programs running in the terminal.
Ok now the merge process.
First of all the situation: 1 OGG Theora video stream (called test.ogg) and 1 WAV Audio Stream ( called test.wav)
In the terminal simply convert with mencoder (package needs to be installed) the ogg stream to lavc (avi-mpeg4) : mencoder -ovc lavc -nosound test.ogg -o test.avi
While this is encoding you can adjust the volume or add effects to your audio or mute the "ähms and ähs". I personally use Audacity for this. If your done editing the audio file simply save it as wav again.
After encoding the video open up avidemux (again it needs to be installed) and load the newly created video (test.avi). Scroll forward and check the end of the video. You need perhaps cut a little part, depending on how fast you switched to desktop 2 and aborted recording, during the recording session.
After this go to the audio menu select main track, select source -> WAV File and then simply choose your audio file (test.wav) . Hit OK
Ok the final step now is to press on 'Save' and give it a name (leave video and audio at the right on copy!) One example would be TestScreencast.avi . Click ok and after a few seconds you have your screencast ready.
Final words.
Of course after this you have quite a large avi file. I suggest encoding it to OGG Theora with ffmpeg2theora and adjusting the screensize to nothing more then 720x480 (if you want to put it on a online service just like blip.tv)
You can do this by : ffmpeg2theora -x 720 -y 480 TestScreencast.avi This will automatically give you an TestScreencast.ogg . The quality is very very good if you don't use a two big recording desktop .
Have fun with my method on recording a screencast.
Hi there - you may want to try uloading to archive.org, it provides conversion to several formats including Ogg Theora. It also provides animated thumbnails and a flash player, which you can then all use to embed in your site, while also proposing an open format. I've heard the conversions are pretty good.
@emmajane
Wow! That's still a lot of work but judging by the the blip.tv screencast that you made it looked like it paid off. Nice work and congratulations. :)
I would make one suggestion. In kdenlive, if you could export just one finished video in whatever container works the best and in the highest quality that you can get...then you can use Mencoder to encode the other formats that you want. That way you won't have to worry about kdenlive spitting out other junky formats that aren't as pleasing.
So, for instance, if kdenlive likes to export to the ogg container the best then do that. Mencoder with the help of FFmpeg's libraries can give you mov, mpg, avi (xvid or h.264), flv, ogm, matroska, and mp4 (with the help of mp4box) among others. The point is that you need a good looking video to start with so that you can transcode into other formats. Audio and video are just like jpegs. Start out with a high quality "thing" and then reduce it's quality later. Low quality audio and video cannot be made better most of the time.
If you are a bit green regarding Mencoder then I highly recommend that you check out h264enc and xvidenc. They are basically scripts that walk you through the process of building a rather nifty Mencoder script. Once the script is saved then you can alter it to suit your needs for other things. The scripts are geared more for avi's but you will have the option of throwing them into the ogm container if you are looking for an unencumbered format.
@leszek
That's an interesting method that you use. I had to try it myself just to review the results. Unfortunately, I wasn't to happy with the audio quality of sound-recorder so I switched to arecord instead. That gave me pretty clear audio as opposed to the scratchy audio that I got before. Perhaps that's just my computer. After viewing the man page for arecord I was surprised at all of the switches that could be used. :)
Taking a stab at it, I opened a terminal and then opened another tab. In one tab I pasted: arecord -vv -c 1 -f S16_LE -r32000 out.wav. In the other I pasted: recordmydesktop --no-sound -o out.ogg. Btw, that would be out.ogv depending on the version of recordmydesktop. Anyway, I hit enter in each one and away I went recording. I prefer recording into only one channel when I'm screencasting. Never really thought two channels were necessary but that's just my opinion. I'm no expert anyway.
I normally do not like to record separate audio and video files for my stuff but in the case of emmajane's issues then the RMD/arecord combo might be the trick.