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 recordMyDesktopMultiple 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.
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 ExampleI'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: