4.23.3 Recording Movies

This section describes how to use the in-game movie recorder.

What is the Movie Recorder Used For?

The movie recorder plugin lets you record a Crystal Space application's video
output quickly into a NuppelVideo file. NuppelVideo is a format designed for
fast recording rather than efficient storage, so typically you would reencode
the resulting video in DivX or a similar format.

The plugin keeps Crystal Space's virtual clock in sync with the movie's frame
rate, so you can render very complex scenes slower than real-time and play them
back later full speed.

Currently this plugin does not handle audio or formats other than NuppelVideo,
but both of these are planned for the future.

Preparing Up the Movie Recorder

The movie recorder plugin (probably ‘movierecorder.so’ or
‘movierecorder.dll’) should be compiled as part of a full Crystal Space
build.

You can also use the movie recorder with an existing binary without any
recompilation. Just place the movie recorder plugin in the application's
library directory.

Like the BugPlug plugin (see section Using the BugPlug Debugging Plugin), the movie recorder can be loaded
and manipulated explicitly by an application or it can be loaded transparently
into any application automatically. To load it transparently for all
applications, you add a setting to your user-specific, application-neutral
configuration (see section Configuration Domains). To do this, in the
‘CrystalSpace.Global’ configuration domain, give the setting
‘System.Plugins.iMovieRecorder’ the
value ‘crystalspace.utilities.movierecorder’. To find out how to do this
for your particular platform, see the platform-specific intructions for
manipulating configuration information (see Config PerUser). The movie
recorder plugin should now load automatically when your application
initializes. Last, but not least, you can use the command line argument
‘--plugin=crystalspace.utilities.movierecorder’ to enable the recorder on
a per-application basis.

Using the Movie Recorder

Like the BugPlug plugin's screenshot facility, the movie recorder creates a new
numbered file when you press the recording hotkey. By default, this key is
ALT-r. If you can see notice messages overlaid on your application
or in the terminal you are running it from, you should see a “Video recorder
started” message indicating the name of the file being recorded to. Press the
record hotkey again to stop the recording.

During recording, you can use the pause hotkey to temporarily suspend
recording. By default this is ALT-p. Press it again to resume
recording to the same file.

Processing the Resulting Movies

You can view the resulting NuppelVideo files using mplayer, an open
source and cross-platform media player. For re-distribution, you should use a
format with a better compression ratio, like DivX. mplayer's counterpart,
mencoder, handles this task nicely:

This creates an AVI file using FFmpeg's mpeg4 codec. See mencoder's
manpage for more information.

Configuring the Movie Recorder

The movie recorder reads its configuration from
‘data/config-plugins/movierecorder.cfg’ if it exists. This lets you change the
recording and pause hotkeys, the filenames, and compression settings. See the
comments in the default ‘movierecorder.cfg’ for a description of each
item.