Screencasting for Video Tutorials on Linux with recordMyDesktop

Obviously screencasting falls into my domain of things to do, because it's publishing digital media and also I'm currently recording some Linux tutorials of how to get some games working for Unganked. Secondly I'm negotiating to have a video course published, which I'll mainly record on Linux, because the topic is partly command line specific. So I needed a way to record what ever is going on on my desktop, in full HD, with flawless audio and lots of frames per second. A program that is advertised for all this is recordMyDesktop.

Now the GUI for recordMyDesktop I would not recommend for professional use, since it just lacks some settings that are important for me. I tried recording twice with different settings and the audio with recordMyDesktop was always far out of sync. Turns out this happened to me, because I had the --on-the-fly-encoding flag set. With the file rendering after the encoding is finished, everything works fine now.

The command I currently use:

recordmydesktop -y 0 -x 0 --width=1920 --height=1080 --no-frame --device hw:2,0 --s_quality 10 --v_quality 63  --fps 30 --full-shots

Pay attention to how you specify the arguments for the different parameters, because if you forget a = or - somewhere, you might get an error message like:

Error when parsing `-width': libpopt error: -11

Listing your Linux Audio Devices for recordMyDesktop

To list your audio devices so you can choose one to use with recordMyDesktop, you can use arecord. With arecord -l you get a list of audio devices including subdevices available.

$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Snowball [Blue Snowball], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

The first ones are some on my mainboard or front panel, which I don't care about. I care about the Blue Snowball which I use for podcasting and screencasting. It's card 2, subdevice 0 so that's who the --device hw:2,0 landed in my command.

Multiscreen recroding with recordMyDesktop

Multiple screens can be difficult, but I was lucky to figure out a simple way on cinnamon. Apparently both my screens, that currently are connected with DVI and VGA are considered one display.

record-my-desktop-linux-screencast-multi-screen

If you want to record both screens my best guess would be to add up their resolutions or omit specifying --width and --height.

I only want to record my primary (left) screen, so I set the following parameters: -y 0 -x 0 --width=1920 --height=1080 The full documentation for recordMyDesktop can be found on the manpage.

Screen Recording on Linux Example

I've done a small video tutorial on how to install Hearthstone on Linux, Blizzards card game. Some of the recording still jitters, it seems like everything that is emulated or hardware accelerated does not quite get the best results, check it out below:

http://youtu.be/WZyEu2OrgzU

Tagged with: #Linux #Linux Gaming #recordMyDesktop #screencast #Unganked #video tutorial

Thank you for reading! If you have any comments, additions or questions, please tweet or toot them at me!