Notes on screen casts from Windows to flash, edited and processed on Linux/Windows, and getting it on the web with e.g. Plone

published Jan 14, 2009 12:42   by admin ( last modified Jan 14, 2009 12:42 )

Here are some notes on my experiments with screen casts. I have just started experimenting with it so these notes are here mostly for my own use. All software I use is free. There are probably better ways to some of these things, please inform me if you know. I will cover:

  • How to set up your browser for a screen cast
  • What software to use in Windows to make a complete screen cast in flash format
  • How to edit out portions of that screen cast on Windows
  • How to convert the screen casts to a Flash swf file, ready for inclusion in a web page

  • How to use mencoder to convert to flv in those cases it is too long/awkward for CamStudio swf producer
  • How to convert the video from CamStudio's avi so that it can be edited with Cinelerrra on Linux
  • What Plone products can be used to display the screen casts, swf and flv formats respectively, on a web page

 

What is a screen cast?

The term screen cast as used in this post, is a video showing a piece of the computer screen, with a voice over.

How to set up your browser for a screen cast on Windows

Use a separate browser from the one you usually use. The idea behind this, is so that you do not get distracting text suggestions in forms, when you do your screen cast. You e.g. do not want Firefox to suggest "I think I am pregnant" right in the middle of a screen cast, just because you wrote that in a subject line in an e-mail four days ago in a form field by the same name as the form you are now demoing on screen. I use the portable Firefox. It can live in a folder without getting "installed" into windows, and so becomes a Firefox separate in its settings from your system Firefox. Disable form autocomplete and all other such things in it.

How to do a screen cast on Windows

I use Camstudio. It is free and open source.

It can:

  • Capture what you are doing on screen and save it to an avi file
  • It can simultaneously record your voice and save it to the same avi file

In this way you can make a screen cast in the avi file format.

 

How to edit out portions of the screen cast on Windows

I used the free and open source program Virtualdub. Virtualdub allows you to set markers in the video and cut out the portion in between. When saving the avi file from Virtualdub, it becomes huge. I believe this is because it makes all frames into key frames, but I am not sure. Incidentally, all subsequent instructions in this post operate on an avi file that has been through Virtualdub after Camstudio. (I don't know if that matters.)

 

How to convert the screen cast to a Flash swf file, ready for inclusion in a web page

After you have created the avi screen cast with CamStudio, you can use the accompanying program Camstudio swf Producer to make an swf file, complete with a player and an example html page. Neat!

 

How to publish swf in Plone

I used ATFlashMovie 1.0.2 on a Plone 3 site, to publish the swf file. For flv format, see further down.

 

How to use mencoder to get the avi file from Camstudio/Virtualdub into Flash flv file

I made a long screen cast that Camstudio swf Producer wanted to break up into smaller parts. It did not succeed in this. It may be because I edited it in between with Virtualdub. I then resorted to mencoder on Linux. Mencoder is a part of MPlayer, and is also available on Windows. On this page I found an incantation that worked in getting my avi file from CamStudio/VirtualDub into a Flash flv file:

mencoder screencast.avi -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -of lavf
-ovc lavc -oac pcm -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -o screencast.flv

The above command gave a file containg a 10 minute screencats with PCM sound, weighing in at 114 MB.

The following command (found here):

 mencoder screencast.avi -forceidx -of lavf -oac mp3lame  -lameopts abr:br=56 -srate 22050 -ovc lavc 
-lavfopts i_certify_that_my_video_stream_does_not_use_b_frame -lavcopts
vcodec=flv:vbitrate=250:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -o screencast.flv

...gave a file weighing in at 16MB. The quality is noticeably worse. From what I can tell, sound has been encoded as mp3 with a low bitrate (56 Kb/s), and the bitrate of the video has been cut in half. Subjectively I find the sound to be too bad, but the video OK, but a bit on the grainy side. Future adjustment would be to get a higher (or variable) bit rate for the sound. I have not deployed this later more compressed version of the file, but I assume it works with flash.

If you want to find out what codecs mencoder supports on your system, type:

mencoder -ovc help

and

mencoder -oac help

for video and audio codecs respectively.

 

How to publish the flv movie in Plone

I then used the Plone product FlashVideo 0.8.2 on a Plone 3 site, to directly publish the flv file.

FlashVideo will automatically wrap the flv file in a player. But it wants you to manually specify the height and width of the video in pixels. FlashVideo will automatically extract information on the height and width of the video (I failed to note this capability first, verified 2010-01-04). You also need to make an image the size of the movie. I used Gimp and took a screenshot and resized it to the desired dimensions.

How to convert the video from CamStudio's avi so that it can be edited with Cinelerrra on Linux, using ffmpeg

Cinelerra is what seems to be a capable video editor for Linux systems (actually all X systems according to their pages). Cinelerra likes to work on Quicktime movies. The avi file can be converted to Quicktime movie that Cinelerra can read with the following incantation:

ffmpeg -i screencast.avi -acodec mpeg4aac screencast.mov

 
ffmpeg is a converter that is meant to be easy to use. If you want to find out what codecs ffpmeg supports on your system, type:

ffmpeg -formats

Finally

I am looking into how to crop movies after they have been made. With crop, I mean removing a region of the video, throughout the movie. It seems both cinelerra and ffmpeg can do this.

ffmpeg has commands like cropbottom, cropleft etcetera.