Gnome3 Screencasting
Updated 2012-09-26: Fix the gsettings pipeline commands; add current slidecasting configuration
Continuing on a little mini-series of slide- and screen-casting notes (post 1, 2) here is an overview of the screencast recorder built into GNOME3.
Normally, you can just hit ctrl+alt+shift+r in GNOME and it will start recording the screen as a webm video. To stop, hit ctrl+alt+shift+r again.
Under the hood, record uses gstreamer. The webm support is part of the gstreamer vp8enc package. To use this Fedora, you must first install the gstreamer-plugins-bad package, which is available through RPMFusion.
Note that do to the way the screencast pipelines are configured, new recordings will be appended to the end of the first recording. The easiest way I’ve found to stop this is to reset gnome-shell (alt+F2, r, enter).
Configure GNOME Shell Recorder
By default, GNOME Record does not record audio. To enable it, you must change the recorder pipeline. This can be done via the command line or through dconf-editor
To configure the GNOME Shell Recorder to record the audio via pulse (for a list of other gstreamer sources & sinks, see the output of gst-inspect):
gsettings set org.gnome.shell.recorder pipeline "queue ! videorate \ ! vp8enc quality=8 speed=4 threads=%T ! mux. pulsesrc ! audio/x-raw-int \ ! audioconvert ! vorbisenc ! mux. webmmux name=mux"
Since the default webm format requires additional gstreamer plugins, you may prefer to use the Ogg Theora (ogv) video format instead, which is supported in the base gstreamer package). To do this and use video/x-theora with audio/x-vorbis:
gsettings set org.gnome.shell.recorder file-extension "ogv" gsettings set org.gnome.shell.recorder pipeline "queue ! videorate \ ! theoraenc ! mux. pulsesrc ! audio/x-raw-int ! audioconvert \ ! vorbisenc quality=0 ! mux. oggmux name=mux"
For higher or lower quality video and audio, check the theoraenc and vorbisenc gstreamer plugins pages.
To change the framerate, to say 20 frames per second (default 30fps):
gsettings set org.gnome.shell.recorder framerate 20
To reset the GNOME recorder to its defaults, run:
gsettings reset-recursively org.gnome.shell.recorder
Slidecasting
For slidecasting, I am currently using the following recorder configuration:
gsettings set org.gnome.shell.recorder framerate 15 gsettings set org.gnome.shell.recorder file-extension "ogv" gsettings set org.gnome.shell.recorder pipeline "queue ! videorate \ ! theoraenc quality=20 ! mux. pulsesrc ! audio/x-raw-int,channels=1 \ ! audioconvert ! vorbisenc quality=0.5 ! mux. oggmux name=mux"
And after the recording is finished and stopped, I refresh the Gnome3 shell (alt+f2, r, enter) to stop the current pipeline. Otherwise, the next recording session might be appended to the existing screencast file.
Capture System Audio
To enable the recording the audio from an application (e.g., firefox, rhythmbox, impress), we have to change the recording source from the line-in to a monitor. To do this, open the “Pulse Audio Volume Control” (pavucontrol) and go to the recording tab.
Make sure “Application” is selected in the lower right. Now start the recording application (ctrl+alt+shift+r) to make it appear. It doesn’t matter what you are recording.
Discussion