How to create a screencast on Linux

Table of Contents

1 Foreword

This is not meant to be a definitive guide, and there are plenty other solutions.

This is mainly a DIY guide, on how to use a Debian or Ubuntu system with a particular choice of equipment.

We'll record a video that kind of complements this guide.

2 Hardware

We are using the following hardware :

  • a laptop equipped with an HDMI display port (to connect a Wacom tablet to it), and numerous USB ports
  • a Wacom Cintiq 13 HD tablet, which displays a video screen onto which it is possible to use a stylus. It connects through USB and HDMI, and needs an additional power socket.
  • a Samson Meteor Mic external microphone, connected to USB, which captures sound with higher quality dans headset microphones plugged to a sound card (digital capture supported out of the box on modern Linux OS). Laptops may have a microphone providing good quality… YMMV. Note that the Samson Meteor Mic includes a gain knob and a sound jack to connect a headset to it, in order to have an idea of the quality of the captured sound (like whether noise in the surroundings is captured, to adjust the gain knob, etc.).
  • an external USB webcam (it may include a microphone but we won't use it, as it is normally lower quality than the microphone above). The laptop may include an integrated webcam, but being able to position the external webcam in order to get the best frame on the speaker is a plus. Another video source may be better, like a camera including a zooom, a pod to put it at the best place for a perfect image, etc.

The external microphone and webcam are optional in this setup. The important piece is the tablet with integrated screen.

The price of this equipment is variable, but should be affordable.

3 Contents of the video capture

We intend to capture the following elements :

  • slides (from a PDF source) covering the major part of the recording area.
  • hand drawn annotations on the slides made with the tablet and stylus, allowing to complement the content of the slides. Slides may be prepared for later live completion, in order to help sustain the viewer's attention, or be fully prepared, and the stylus will only help underlining particular interest items. YMMV.
  • the voice of the presenter, synchronized live on the slideshow. The goal is to have some amount of liveliness, improvisation, and vocal mistakes, in order to mimic a traditional human presentation. You may prefer a kind of news show presentation, where the text is written beforehand and sound capture can be performed later, rehearsed and very much controlled until perfect…
  • an optional tiny video capture of the presenter, in a side area of the video, which provides some amount of humanity. This is the trickiest part, for good quality, as it is hard to (self) capture one who looks at the camera while performing annotation on slides at the same time. Rehearsing is advised.

4 Annotating slides

We intend to use xournal, which allows annotating already made PDF documents, while allowing to browse through the document pages, and even to save the annotations into a new PDF document.

This allows us to prepare in advance a PDF containing a slides deck, which may be completed live by annotations made on the graphic tablet, and which can later be distributed as a side document complementing the video.

Other options exist, but AFAIU, none with free software working on Linux, that allows authoring with any tool, and annotating with another tool. Separating the preparation of the PDF, be it made with LibreOffice, Powerpoint of Beamer (maybe from org-mode), from the annotation with xournal, makes it a repeatable process, where your authors are not forced to use the authoring tool that you have selected for making anotations.

Of course, it would be better to be able to anotate on animated slides, or using nice presenter console features, like presenter notes and preview of next slides, but there's currently no tool that integrates that together with anotations.

5 Capturing the presentation

We intend to use vokoscreen which will capture a part of the desktop screen of the laptop, which will be output to the tablet's display (potentially replicated on another screen, like the laptop's internal display).

This part of the screen will include the following elements :

  • part of xournal's window which displays the page contents (this needs to be configured in the xournal menu), and will contain overlayed annotations
  • a side window displaying the webcam's captured video in realtime (displayed by vokoscreen, without desktop manager decorations, and kept on the front of other windows)
  • optionally, a colored background containing a logo, for instance in a Gimp or another graphic display app opened below cournal

Vokoscreen will display a (blue) frame of the captured zone's edges which allow positioning it over the background and xournal's window. We intend to use a zone of around 1190 x 770 which allows to have a big enough room for displaying slides in A4 landscape together with a video on the side, while keeping the figures in the slides highres (provided the video is later encoded and delivered in HD).

The display zoom in xournal needs to be adjusted to window's width or heigth so that the PDF's content is fully displayed

Vokoscreen will capture the sound from a selected pulse audio source, chosen to capture the external microphone.

We use pavucontrol to mute other sources and adjust input levels and likes.

Vokoscreen can display a countdown before the actual capture starts, which help focus and look at the webcam "in the eyes".

You may need to adjust the FPS of the video capture. Iy the presenter's face is displayed and lots of lively annotations are made, it's different from static slides + sound.

You may position the webcam on the top edge of the tablet so that the look of the presenter can easily switch eye focus from the webcam to the slide annotated on the tablet, back and forth. If the angle to move between the 2 axis is low, the presentation will most likely be better looking. Yeah, looking at the camera while thinking about what to say and perfoming annotations on the tablet requires a lot of training.

The fact that vokoscreen integrates everything related to recording in one app makes it easier given the amount of jest that you already have to perform.

6 Configuration

6.1 Configuring screen layout

Activating the display on the external tablet through HDMI could be tricky depending on the graphics cards and other bioses.

We currently use a 1440 x 900 resolution on the tablet's display which allows to open xournal (and gimp), and position them wrt the vokoscreen capture zone of 1190 x 770 (more or less). However, you may need to diminish the resolution on the tablet's display if you have refresh issues, which may likely mean out of memory issues. Scroll slowly through all the slides in xournal to check that they display correctly on the tablet's display.

6.2 Configuring stylus calibration

Depending on the version of Linux used, the calibration of the stylus may be working out of the box or need additional configuration.

It seems this works correctly out of the box with :

  • Ubuntu 14.04

Additional configuration seems needed for :

  • Debian Jessie 8.0

6.3 Xournal

Configure Single Page display so that page up/down scrolls one slide at a time

6.4 Configure the button mappings of the tablet

So that the page up and down can be performed from the tablet, avoiding to have to juggle with the laptop's keyboard.

7 Software versions tested

  • vokoscreen : Debian package of v. 2.1.0 (actually a custom repackaging including a fix for pulse audio devices - see below).
  • xournal : Debian package of 0.4.8

7.1 Additional fixes need

7.1.1 vokoscreen

  • The following bug [ Debian bug / upstream bug ] may be annoying if you have plugged the external microphone as a last device, as vokoscreen only displays the first 5 pulse audio sources. A workaround is to plug the microphone before other USB devices.

Created: 2015-04-30 jeu. 15:24

Emacs 24.4.1 (Org mode 8.2.10)