Screencasting in Linux

I just got myself set up to do screencasting on my Linux machine. I use Fedora, and it was not too bad. I just want to record my set-up and recording process so that I don’t forget anything.

First, I would like to thank my Linux administrator for helping me (he is awesome), and I would like to thank Vincent Knight and Andrew Stacey for giving me the outline and encouraging me.

To set up, I had my linux administrator install recordMyDesktop (I tried to do this, but I either don’t have permission or I don’t know how to do it properly. Or maybe both). But initially, the video would freeze, creating a lag between my voice and the screen. I was able to fix this by using this solution.

But it all works now. Here is my process:

To record:

  1. Open gtk-recordmydesktop.
  2. Open MyPaint.
  3. Use my Wacom Bamboo tablet to write in MyPaint.
  4. Record the screencast with recordMyDesktop.
  5. This records in ogv format, which does not play well with YouTube. To convert to avi, I type the following into the command line: ffmpeg -i foo.ogv foo.avi

I welcome feedback on how to improve this process. In particular, I am not certain that .avi files are the best to upload to YouTube.

Tags: , , , ,

7 Responses to “Screencasting in Linux”

  1. Raymond johnson Says:

    This is a well-timed post, as I’ve been wanting to get back to screencasting my feedback to students’ homework. In the past I’ve used Screencast-O-Matic ( which worked fine on my Windows laptop, but I think my multi-monitor setup on my (much, much faster) Linux desktop caused it to not record the part of the screen I aimed it at. I gave recordMyDesktop a try and while it works, it shows its age.

    I don’t know how much you know about video, but there are typically three components to the file: the video compressed with a particular codec, audio compressed with a codec, and a container that holds and syncs the two together. AVI is a very old container standard. OGV is the file extension used for the OGG container when it holds video, and recordMyDesktop uses the Theora video codec and the Vorbis audio codec. There’s nothing particularly wrong with any of that, Theora is a bit older and it never became mainstream and there’s some part of the OGV/Theora combo that YouTube doesn’t like. When you convert with ffmpeg it’s probably converting the Theora video to MPEG-4 and either copying the Vorbis audio or converting it to MP3.

    I did some looking around and found Kazam, a different screencast tool that I’m going to try using. Kazam makes it easy to record an area of the screen (which is important to me) and has three encoding options: VP8 video + Vorbis audio in a webm container (VP8 is a descendant of Theora, which started as VP3, and is now owned and promoted by Google) or H264 (MPEG-4) + Vorbis audio in an mp4 container. H264 is more common than VP8, but in most cases the quality is similar and VP8 has the advantage of being publicly licensed and royalty-free. Vorbis is open/free, too, and that’s why it appears instead of mp3. YouTube should be happy with either of these choices and save you the extra ffmpeg transcoding step while providing higher quality.

    • drvinceknight Says:

      I know it’s also possible to screen cast directly with ffmpeg but I spent a couple or hours trying to figure that out a while back and couldn’t quite get it working…

      • bretbenesh Says:

        I toyed around with screencasting via ffmpeg directly, but I couldn’t get the audio to work (I think that I could have figured this out if I had spent just a little more time), and I couldn’t figure out how to record only a specific section of my monitor (I think this would have taken me much, much longer).

        In the end, I had to intentionally stop playing with ffmpeg, since I had a working solution and I should be spending my time on other things right now.

    • bretbenesh Says:

      Hi Raymond,

      Yeah, I used screencast-o-matic on Windows before, and I liked it. But I can’t get it to work on my Linux machine. Hence, recordMyDesktop.

      I do NOT know much about video, so all of your comments were very helpful. Even the basics of “compressed video/compressed audio/syncing container” was beyond what I knew.

      Would you recommend trying to use, say, .mp4’s instead of .avi’s? Or doesn’t that really matter?

      I did read a bit about Kazam while trying to get recordMyDesktop to work, but I was already almost done getting recordMyDesktop to work. And—in case you didn’t know—it is easy to record an area of the screen with recordMyDesktop as long as you use the gtk (or possibly qt) front end.

      Thanks for the help; I really do feel better about using the technology after learning a bit about the files from you. Bret

      On Tue, Dec 10, 2013 at 12:02 AM, Solvable by Radicals

      • Raymond johnson Says:

        For a simple video+mono/stereo stream, an avi container is probably fine. Newer containers do things like manage multi-channel audio and multiple audio tracks, subtitles, and provide more support for streaming and keeping in sync. There are plenty of newer containers like mp4, ogv, or mkv, even if avi will probably do the job. Of course, if this is just aimed at being uploaded to YouTube the container becomes pretty irrelevant for the rest of the world anyway.

      • bretbenesh Says:

        Thanks, Raymond. My set-up will be pretty simple and uploaded to YouTube, so I will just use mp4 or avi.

        Good day! Bret

        On Tue, Dec 10, 2013 at 1:45 PM, Solvable by Radicals

  2. Doceri vs. Explain Everything | Solvable by Radicals Says:

    […] have complete control over it to make it reliable. For instance, I had screencasting in my office figured out a year ago, but now my Wacom Bamboo tablet has stopped working. I do not have the permissions (I […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: