(add lwn article)
(added gnome's screencast)
|Line 1:||Line 1:|
= Screening using Fedora =
= Screening using Fedora =
== Istanbul ==
== Istanbul ==
Revision as of 21:02, 7 February 2012
- 1 Screening using Fedora
- 1.1 Using Gnome's embedded screencast tool
- 1.2 Istanbul
- 1.3 Byzanz
- 1.4 recordmydesktop
- 1.5 WebHuddle.sf.net
- 1.6 Why not Flash?
- 1.7 How to convert VMware video to Ogg Theora video
- 1.8 References
Screening using Fedora
Using Gnome's embedded screencast tool
Gnome3 has already a screen recording functionality. Pressing Alt+Ctrl+Shift+R recording will start. There should be a red icon on the right-bottom corner of your screen. Pressing it again will stop the recording. The video is saved on your home directory on webm format.
This howto is here to provide instructions on how to use the Istanbul application in order to make Theora videos of your desktop sessions. This can be useful to create video howtos to support help documentation or it can be helpful for testers who need to show developers unexpected desktop application behavior.
Istanbul relies on new x display screen capturing support in gstreamer-plugins package. The ximagesrc gstreamer element is under active development upstream. As newer versions of gstreamer-plugins becomes available in Fedora development, the recommended settings in this howto will be updated to take advantage of performance enhancements
- Set your ["Xorg"] server display to use 800x600. You can't just set this resolution via gnome's support for xrandr yet. To make sure you get a proper screen capture you need to make sure that the X server itself is set to 800x600 (with system-config-display for instance) and that the gnome desktop is configured to use the default X resolution and refresh rate. If you attempt to lower your desktop resolution using xrandr for your desktop you will most likely see artifacts in the videos.
- Set istanbul framerate to 1.0 frames per second. This should be fast enough to record most human interactions with the desktop and will be slow enough to prevent egregious problems with frames being dropped. Upstream is currently working on fixing the performance issues with capturing the x display image. The recommended framerate will be adjusted as performance improvements to gstreamer's display capture plugin are made available.
- Set the istanbul encode image size to be 240x192 for a web friendly video size. This is 1/4 the area of the desktop and text should still be legible. If you shrink the image too much as part of the encoding process small text can become obscured.
Istanbul is available in Fedora. Just install it with the following command:
yum install istanbul
Using Istanbul on Gnome Desktop
- Istanbul will be located in the Sound and Video menu. Once you run Istanbul from the menu you will see a new icon appear in the gnome notification area applet. You can also run the command istanbul from a terminal.
- When Istanbul is not recording or encoding the icon will be a red record button.
- Istanbul settings are accessed via a right-click menu when Istanbul is idle and the red record button is displayed. Here you configure the encoded video width and height, the framerate and the file location for the resulting video. You can also choose whether you want instabul to encode after video recording is complete. This option may help you avoid bad frame dropping on slower cpus. I've personally had this option cause unexpected segfaults so I've opted not to use this feature for now. This howto does not cover use istanbul's support for network streaming of the video, but you are free to experiment.
- Clicking on the red button will place Istanbul in record mode and will start the recording of the desktop. Perform normal desktop tasks, keeping in mind that you are recording a display image about once per second. You will want to make sure you do important operations slow enough to be caught by the recording process.
- When Istanbul is recording the icon will become a square stop button. Clicking the stop button will cause Istanbul to stop recording. If Istanbul is configured to encode after recording is done , the square stop button will change to an encoding icon. You are able to record a new session when you see the red button graphic again.
- Once encoding is done, you should be able to use the totem media player to view the video you produced.
Advanced Topics: Adding Audio
- You must have audacity (or other audio recorder) installed
- Record your audio track, taking care to synchronize it with events in your recording (I believe this may be easier to record the audio track first, then go back and play the audio while recording video)
- Export your audio to a wave or ogg-vorbis file, I use /tmp/stream.wav
- Grab the script File:ScreenCasting fedora-av-splice.sh . This script uses the gstreamer framework to add the audio and re-encode the theora video file
- Run fedora-av-splice.sh /tmp/stream.wav /path/to/theora.ogg /path/to/result.ogg
- Get a cup of coffee while things encode, this will be cpu intensive.
- You should be able to play the resulting file in mplayer, vlc, totem, or xine
Advanced Topics: Alternative Audio Tracks
Goal: Create alternative audio tracks for pre-existing screencast named desktop-recording.ogg
Additional Software Needed: libannodex in Fedora
- Create a 10 second timestamp test pattern video with gstreamer
gst-launch-0.8 videotestsrc num-buffers=250 ! video/x-raw-yuv,framerate=25.0 ! timeoverlay ! theoraenc ! oggmux ! filesink location=test.ogg
Or use the provided File:ScreenCasting test.ogg
- chain the two videos together to produce a video with 10 second lead-in
cat test.ogg desktop-recording.ogg > edit-video.ogg
- begin playing video with totem edit-video.ogg
- begin recording new audio track at the end of the 10 second lead in.
- make small edits as needed at the beginning and end of the audio to have audio file make time length of the original video
- use File:ScreenCasting fedora-av-splice.sh as above to replace the original audio track
Advanced Topics: Adding a video timestamp
For further editing needs, one can overlay the time over the original video. This may help in the production of additional audio tracks. Here is a small script to produce a video with video timestamp visible File:ScreenCasting fedora-video-timestamp.sh
Byzanz is available in Fedora. It is similar to Istanbul, but can also produce:
- animated GIF files (video only)
- Ogg Theora files (with or without audio)
- FLV Flash screen files (lossless, can be postprocessed)
- Byzanz format for conversion later to multiple formats
Refer to http://www.advogato.org/person/company/diary.html?start=18 for more information. To install, use your preferred software manager to install the
Fedora also includes recordmydesktop, which has commandline, gtk, and qt user interfaces and produces Ogg Theora movies. You can install it with
yum install gtk-recordmydesktop
yum install qt-recordmydesktop
It is very easy to use. Refer to https://lwn.net/Articles/478370/ for a LWN article on screencasting.
WebHuddle allows you to record a desktop whether in a multi-user meeting or not. Requires a download from WebHuddle.SourceForge.net. Java based, so both the server and clients are CrossPlatform.
Why not Flash?
vnc2swf (http://www.unixuser.org/~euske/vnc2swf/) is a excellent program which produces screencasts using the Flash format. However this is not acceptable to Fedora for a wide variety of reasons
- Flash format is proprietary and Fedora uses and supports open specifications and formats.
- Free and Open Source Flash players and plugins such as GPLFlash and swfdec do not provide all the required functionality or features.
- Flash plugins or players are not available in all architectures provided by Fedora such as x86_64 or ppc.
- Ogg Theora is a open source codec and works out of the box in Fedora without any third party components.
- If you still want to use flash videos for Fedora, create the screencasts in ogg theora and do the conversion to flash and make them available in both formats.
How to convert VMware video to Ogg Theora video
- Byzanz - http://www.advogato.org/person/company/diary.html?start=18