Funding proposals/Screen movies

/scoping and specification/ page - intended for community development of a specification

Background
COL is commencing a significant free content project to enhance ICT skills across the world, particularly for developing society contexts. However, we have identified a technology gap in available tools to complete this task effectively. This refers to the availability of an easy-to-use, FLOSS authoring tool for creating screen movies with a synchronised audio.

This is a draft funding proposal to specify the requirements for such a tool in order to secure funding for the development of this much needed tool in the world of open education resources.

The ICT skills free content initiative
A unique opportunity has arisen which could make a substantial contribution to the international OER movement at the level of basic ICT skills development. Sir John Daniel, CEO of COL, has mandated the commencement of a project in the learning design for a set of eLearning OERs based on the Open International Computer Driver's License (ICDL). These course materials are currently available under a CC-BY-SA license, and COL will add value to the Open ICDL materials by:


 * improving reusability of these materials around the world because they will be packaged using open standards, as well as formats that can be delivered using any LMS;
 * adding learning design elements that will make the materials more suitable for distance and eLearning delivery.
 * providing an additional avenue for prospective students to utilise the materials by enrolling for certificate programmes at institutions around the Commonwealth that will present the ICT skills course as a certificate programme.

This project will commence in the near future from current budget allocations within COLs core programme.

Technology gap in available tools for developing the ICT skills free content initiative
ICT skills training is greatly enhanced by the use of screen movies. (That is, a digital movie with audio that demonstrates the functions of a particular software package).

A fundamental condition of any OER to meet the requirements of the free content definition is the ability to edit and adapt materials with tools that are freely available. For example - the distribution of pdf files as open resources, would not meet the requirements of the free content definition because this is a closed format and there are no open source tools to edit the content.

Sadly - there are no open source tools available for the easy creation of screen movies on Linux. Ideally we require a cross platform application that is easy to use for the creation of screen movies with synchronised audio.

Requirements
Requirements are differentiated between minimum requirements and nice to have features.

Minimum requirements

 * Open source software
 * A file format for storing source files for all OSs
 * Simple desktop application that is easy to use;
 * Cross platform (Windows, MacOS & Linux);
 * Capable of recording audio realtime;
 * Possibility to add audio tracks after screenmovie is created (this is useful for localisations where software is not available in the language concerned);
 * Output to a multimedia format for the web, eg mpeg, swf;
 * Ability to define multipe screen sizes for recording - drag feature would be ideal;
 * Control buttons for stop, pause/play and next tagged frame.

Nice to have features

 * Ability to add simple text bubbles with pointers to specific areas on the screen
 * To define stop and go control points in the video.

Desktop evaluation of existing freeware & FLOSS tools
There is currently no simple solution for screen movies for Linux.


 * http://kevin.vanzonneveld.net/techblog/article/create_your_own_screencast/

RecordmyDesktop

 * A linux based screen recording software
 * Includes sound recording capability
 * Clean and intutitive interface
 * Lag and system hang ups recorded sometimes.

RecordMyDesktop

Wink - http://www.debugmode.com/wink/

 * Nice application with many features - perhaps too sophisticated for the intended purpose
 * Can export flash file for the web
 * Freeware - not open source, so does not meet minimum requirements
 * Current linux version does not provide audio recording capabilities

Reject - Not open source

Camstudio - http://www.camstudio.org/

 * Very easy to use
 * Exports to flash
 * Some bugs with flash export on Netscape and Mozilla - however, there is a simple HTML fix;
 * Only available for Windows OS.

No Linux version, but is worth a look as an example of a technology that is very easy to use I've not been able to test the software, but the screenshots show suggest that the technology is intuitive. - See interesting work around to record Linux screen movies with Camstudio. (VNC server is used to control the target display (Linux) for recording - http://www.irongeek.com/i.php?page=CamStudioOSS/camstudio.

Istanbul - http://live.gnome.org/Istanbul

 * Records Ogg Theora files
 * Nice implementation with Istanbul icon running on the Gnome toolbar
 * Easy install, but buggy and unreliable on my Ubuntu Dapper. Numerous reports of bugs on the net, but will be a neat tool when more mature

Not mature enough for consideration

Xvidcap (&Gvidcap) - http://xvidcap.sourceforge.net/

 * GTK UI
 * Very clean and easy to use interface
 * Good demo movies here: http://xvidcap.sourceforge.net/
 * Had problems getting gvidcap running properly on Ubuntu Dapper because of Libavcodec1 library - couldn't source the library.

Good example of gui designed for ease of use

pyvnc2swf - http://www.unixuser.org/~euske/vnc2swf/
This is the python version of vnc2swf.

This is the most promising find. High quality output but very limited gui and would be difficult for non technical users. It would appear that to build an easy to use GUI for this technology would be the most cost effective solution and its python-based.


 * The technology uses a VNC server - I tested it on Ubuntu Dapper with X11vnc
 * Can be used on Windows, MacOSX, Linux, Unix - http://forums.showmedo.com/viewtopic.php?t=12
 * Uses pygame and pymedia (if required for mpeg encoding)
 * There are two main files which are used - one for recording and one for editing.
 * Using arecord - audio can be recorded directly and some smart scripting can automatically convert .wav into mp3 which is required by the editing file to append the audio to screen movie before exporting to swf.
 * Useful tutorial on pyvnc2swf on Ubuntu Dapper
 * Smart hack using an [http://wolphination.com/linux/2006/06/30/how-to-record-videos-of-your-desktop/ executable script to automate some of the process when using pyvnc2swf. (There are a few minor bugs in the script example).

Questions

yes ''yes, there are various available and all have the same format of output. eg. Tight VNC''
 * Is it possible to package an executable instalation for a Windows box with py2exe (including the VNC server)?
 * What are the issues re a FLOSS VNC server for Windows? Is one available? Will it talk to pyvnc2swf?


 * What would be the best development environment for the GUI - can this be done within the Mozilla -XUL framework to promote future integration with eXe?

Example script
Because vnc2swf, only records video, no sound, we need another program/library to record the sound. In the below example they're using arecord.

This script was borrowed from here, originally submitted by Bruce:

x11vnc -localhost -viewonly -wait 10 -defer 10 & python ~/Documents/pyvnc2swf-0.8.2/vnc2swf.py -o tutorial.swf -N -S "arecord -c 2 -f cd -t wav voice.wav" localhost:0 ffmpeg -i voice.wav -ar 22050 voice.mp3 python ~/Documents/pyvnc2swf-0.8.2/edit.py -o tutorial1.swf -a voice.mp3 tutorial.swf mv ~/tutorial1.swf ~/tutorial.swf rm ~/voice.wav rm ~/voice.mp3 rm ~/tutorial1.html
 * 1) !/bin/sh


 * OK - have used the arecord feature myself when testing - works pretty well. Is there a comparable solution for a Windows box for the recording of audio using this python package? --Mackiwg 08:03, 20 September 2006 (CEST)

Available options in vnc2swf.py to consider for implementation in the GUI

 * File save and save as (output option -o)
 * Specifying the recording area - drag feature required (clipping option -c)
 * Framerate - possibly a pull down with a few options could be confusing for the user (framerate -r)
 * Encoding type - I think this should be an options or preferences setting - this could be important for editing files (encodingtype -t)
 * Disable cursor pseudo-encoding - have not tested the differences in file size verus quality of output (-N)
 * Passwordfile - Important to implement for security reasons associated with a VNC server.
 * vncencodings - Not sure of the impact of different settings on quality. Should be tested (-e)
 * subprocess - This is necessary for synchronous recording of audio (-S)

Ideas

 * wxPython for the GUI: Advantage - cross platform GUI toolkit

Resources

 * Good summary of Screencast technologies on Wikipedia
 * Summary presentation of wxPython.