Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I create a screencast on Ubuntu?

The app I'm looking for has ideally all of these features:

  1. Can record in a format that can be played back easily on any platform and/or accepted by youtube or another popular video site
  2. Can record just a window (instead of the whole screen), possibly selecting it with a mouse click
  3. Can start recording after a configurable delay (e.g., I launch the app and have time to do arrangements to my desktop/window before actual recording starts)
share|improve this question

20 Answers 20

up vote 149 down vote accepted

gtk-recordmydesktop install gtk-recordmydesktop

Adds an easy to use graphical icon on the GNOME toolbar to make a pleasure use and configure the audio and video capture and screencast application recordMyDesktop.

enter image description here

xvidcap install xvidcap

A screen capture enabling you to capture videos off your X-Window desktop for illustration or documentation purposes. It is intended to be a standards-based alternative to tools like Lotus ScreenCam.

Video can be saved in MPEG or AVI files format.

share|improve this answer
Thanks for these two suggestions! I've tried them both, but could get neither to do what I need: gtk-recordmydesktop insists on recording the whole virtual screen (3200x1200), which is way too large... xvidcap lets me select a rectangular area of the screen to be recorded, but then wants to place its control buttons on top of it (and moves the area if you move the controls), which doesn't work for recording a window almost as tall as the screen (I'm using a tiling window manager). – Riccardo Murri Sep 20 '10 at 13:03
Success with the command-line version of xvidcap: xvidcap --audio no --file testvid.avi --cap_geometry xwininfo | fgrep geometry | cut -c12-. This won't work with windows that don't report pixel-based geometry (e.g., xterm), so one should give the recording window location explicitly as widthxheight+x+y, as in xvidcap ... --cap_geometry 1336x1170+0+0 – Riccardo Murri Sep 22 '10 at 10:09
We've removed xvidcap from the repository now because it's no longer maintained. – popey May 14 '12 at 7:40
@RiccardoMurri: gtk-recordmydesktop does allow you to record only a selected screen area. Just drag a rectangle in the preview area. – MestreLion Sep 21 '12 at 4:47
gtk-recordmydesktop gets Linux-screenrecording crappiness to a new level. It actually recorded different parts at different FPS :D Audio syncing (which of course fails) is REALLY hard after this. – Henrik Heino Apr 19 '15 at 0:04

I like Byzanz; it records your activity as a GIF file.

enter image description here

It's pretty light and works well, especially for putting a shorter screencast on a webpage or in an email.

You can either get it from the PPA (might have a more up-to-date package but is 'unsupported'):

sudo add-apt-repository ppa:fossfreedom/byzanz
sudo apt-get update && sudo apt-get install byzanz

Or you can get it from the official Ubuntu repositories by clicking the button below:

Install Byzanz

For further information:

How to create animated GIF images of a screencast?

share|improve this answer
Wow! This too cool to get only 28 votes. – Ufoguy Dec 13 '13 at 9:22
To record GIF screencasts, I am using Silentcast (, which is far more ergonomic IMO. – Jonathan Petitcolas Jun 2 '15 at 6:57
This app is not yet for Ubuntu 16.04. It would be great to get it. – Masi May 4 at 12:46

kazam Install kazam is a good application for this purpose.

It gives you a delay before recording. Recording is done in HD and the output is in .mkv format which is accepted for YouTube so there is no need to convert and re-render.

share|improve this answer
I've tried recordmydesktop, and for me kazam works better. – ThiagoPonte Jul 16 '13 at 13:24
I installed kazam but the output for mp4 is .movie and when I try to play it it gives me "there is no application for sgi video files" Also I cant locate the stop button on gnome. – SurvMach Oct 22 '14 at 3:09
I had glitch issues with recordMyDesktop, while Kazam works just fine. It is also faster as it generates an mp4 right away as soon as you finish recording. – Juampy May 19 '15 at 21:52
I tried it, it has problems with webm format which is smaller than mp4, good thing is that records speakers and mic and saves file right away. I will try vokoscreen now. – juanpastas Jun 6 '15 at 4:05
I'll give this a +1 since I know the author. :-) It has a decent set of feature and is pretty simple to use out of the box. – csgeek Aug 22 '15 at 22:06

___________________ Simple Screen Recorder __________________

SimpleScreenRecorder is a Linux program that I've created to record programs and games. There are programs that can do this, " but I wasn't 100% happy with any of them, so I created my own "

My original goal was to create a program that was just really simple to use, but as I was writing it I started adding more and more features, and the result is actually a fairly complex program. It's 'simple' in the sense that it's easier to use than ffmpeg/avconv or VLC :).

sudo add-apt-repository ppa:maarten-baert/simplescreenrecorder
sudo apt-get update
sudo apt-get install simplescreenrecorder
# if you want to record 32-bit OpenGL applications on a 64-bit system:
sudo apt-get install simplescreenrecorder-lib:i386

enter image description here

share|improve this answer
It's not obvious after installation how you use your simplescrrenrecorder. what command gives hat interface? – Drewverlee Aug 5 '13 at 5:59
@DrewV well you can start by searching in dash > simple screen , from command line you can open terminal and type simplescreen tab tab and enter – Qasim Aug 6 '13 at 12:58
Really love the program, thanks Qasim! – Leng Sep 26 '14 at 21:55
This is probably the best one and all you need for screencasting. – Rmano Feb 18 '15 at 9:13
@Drewverlee $ simplescreenrecorder gives the interface – Akavall Nov 9 '15 at 17:01

This is what I use to make screencasts, the cli command that comes with recordmydesktop

recordmydesktop --width 1920 --height 1200 --full-shots --fps 15 --channels 1 --device hw:1,0 --delay 10

The delay 10 gives me 10 seconds to "prepare" my desktop before it starts recording. When I'm done I hit ctrl+c, then it starts encoding the file.

I have a dual display, and the width/height argument lets me focus recording on one of my monitors. By adjusting this value I can also record onto my second monitor.

Other pointers:

share|improve this answer
Look up recordmydesktop --help via terminal for more info (or just click the link). – its_me Nov 28 '12 at 16:20
How did you get the coordinates? – Exeleration-G Jun 8 '15 at 16:03
once again, command line rules! Thanks for sharing – augusto Dec 28 '15 at 17:15
RecordMyDesktop 3.8 creates invalid files which are hard to recode, edit, and YouTube doesn't accept them. I advice to avoid it. – Ondra Žižka May 16 at 23:07

Recently I tried to record a screencast with audio. I tried many of the options listed here and other websites. My goal was not to write a comprehensive summary of all tools available, but to find a single one which works.

In my case (after several hours of struggling) it was VOKOSCREEN which worked, so I did not look further. My system is Linux Mint 15 Olivia, 64-bit, which is based on Ubuntu Raring.

This is my summary/log which I wrote while experimenting. Hope it will save you several hours:

avconv: audio and video get out of sync, audio is lagging behind Tried all the options I could. This is the command line I used:

avconv -f alsa -i pulse -f x11grab -r 15 -s 1024x768 -i :0.0 -vcodec wmv1 -acodec pcm_s16le -q 7 b4.avi

Byzanz: creates animated gif (not tried, since I need sound as well and longer screencast)

Eidete: unable to install (with 20 years of Linux experience, didn't try forever though)

gtk-recordmydesktop: creates ogg which is fine, but unable to convert to anything. Best converter was mencoder but is speeds up video (but not audio) so they get out of sync.

istanbul: freezes immediately

Kazam: if record area larger than ~640x480 memory starts leaking, leaving at most a few minutes before system becomes unresponsive. Many have reported similar issue, this is a known bug.

pyvnc2swf: Is a tool to record a VNC session. Not convenient if you want to record your own screen (not tried)

screenkey: advertised as a "screencast tool", but is not about recording your screen

tibesti: seems to be no longer maintained (since 2011), does not even install

vokoscreen: FINALLY!!!! Quality is good: both audio and video. After recording I could compress the file to about 1:7 with mencoder without any loss of quality. I discovered that it uses the following command line:

ffmpeg -f alsa -i pulse -f x11grab -r 15 -s 1024x768 -i :0.0+0,0 -vcodec mpeg4 -acodec libmp3lame -ar 48000 -sameq -r 15 my.avi

xvidcap: As stated above: "We've removed xvidcap from the repository now because it's no longer maintained." (not tried)

wink: distributed as downloadable executable not as package, (not tried)

share|improve this answer
Wow, vokoscreen is awesome! Umm, except for this HUGE irritation: It records its own center marker!… – Jeff Ward Nov 5 '15 at 23:13
Am pretty sure the bug mentioned for Kazam is gone because I have recordings from 2015 and 2016 that go beyond 30 minutes (Biggest is 2 hours 19 minutes) with no problems at all and perfect recorded session. – Luis Alvarado Mar 12 at 14:04

You can also use ffmpeg to create a screencast. Example:

ffmpeg -f x11grab -r 25 -s 1024x768 -i :0.0 /tmp/output.mpg


  • 0.0 is your display.screen number of your X11 Server. You can get the number with echo $DISPLAY
  • -r = frames per second
  • -s = resolution

To get audio:

ffmpeg -f oss -i /dev/audio -f x11grab -s 1280x1024 -r 3 -ab 11 -i :0.0 /tmp/out.mp4
share|improve this answer
and how does one get audio as well? – Volomike Dec 10 '12 at 9:33
Ah, I found the way: ffmpeg -f oss -i /dev/audio -f x11grab -s 1280x1024 -r 3 -ab 11 -i :0.0 /tmp/out.mp4 – Volomike Dec 10 '12 at 9:43
On ubuntu 14.04, use avconv instead of ffmpeg. – user674669 Oct 14 '15 at 20:54
Also good examples on the wiki page: – Ciro Santilli 巴拿馬文件 六四事件 法轮功 Apr 1 at 10:18


Tibesti Screencaster is a program for Ubuntu that allows you to record your screen and your microphone and/or audio out sounds.

Screenshot from OMG!Ubuntu!

To install add the PPA ppa:ackondro/tibesti (How to add a PPA) and then install tibesti from the software center.

Alternatively, open a terminal and paste:

sudo add-apt-repository ppa:ackondro/tibesti
sudo apt-get update
sudo apt-get install tibesti
share|improve this answer
First thing i looked was the last changelog. I like it that it says 2011. And it looks like it is progressing nicely for when natty comes out. i will try it out but i read it does not yet work with 3D OpenGL stuff. – Luis Alvarado Apr 5 '11 at 16:33
@alukik, can i got this code sudo apt-get install tibesti, that's would be work? – Jose King Apr 5 '11 at 16:38
the framerate issue has resolved itself – d3vid Oct 12 '11 at 6:02
Afaik, tibesti does not install on ubuntu 11.10. A pity, because it looks really interesting to me. – nathanvda Mar 22 '12 at 20:58
This seems to be available upto natty(11.04) only. – i08in Jan 30 '14 at 10:30

Have a look at Wink.

There are two tutorial projects created in Wink which you can view. Use the Help, View tutorial menu options to render and view them before you start using Wink.

Features as told on their website:

  • Freeware: Distributed as freeware for business or personal use. However if you want to redistribute Wink, you need to get permission from the author.
  • Cross-Platform: Available for all flavours of Windows and various versions of Linux (x86 only).
  • Audio: Record voice as you create the tutorial for explaining better.
  • Input formats: Capture screenshots from your PC, or use images in BMP/JPG/PNG/TIFF/GIF formats.
  • Output formats: Macromedia Flash, Standalone EXE, PDF, PostScript, HTML or any of the above image formats. Use Flash/html for the web, EXE for distributing to PC users and PDF for printable manuals.
  • Multilingual support: Works in English, French, German, Italian, Danish, Spanish, Serbian, Japanese, Brazilian Portuguese and Simplified/Traditional Chinese.
  • Smart Capture Tools: Capture screenshots automatically as you use your PC, based on mouse and keyboard input (great time saver and generates professional captures).
  • Performance/Quality: Creates highly compressed Flash presentations (few kbs to few hundreds of kbs, much smaller than competing commercial products) ideal for using on the web.


enter image description here

share|improve this answer from official package: "This installer only has x86 binaries. Sorry." ... – Jiří Doubravský Apr 4 '15 at 6:47

Vokoscreen: A new screen casting tool for Linux

 sudo add-apt-repository ppa:vokoscreen-dev/vokoscreen
 sudo apt-get update
 sudo apt-get install vokoscreen

enter image description here

For More HELP

share|improve this answer
This works in Ubuntu 13.04 / Raring x86. – Rudiger Wolf May 7 '13 at 10:34
this does not seem to have an option to choose one of the monitors -- if you have a multiple monitor setup – Aras Jun 28 '13 at 19:22
Vokoscreen is indeed a fantastic small tool. Link to the Github. – orschiro Jan 18 at 8:40

How to create an animated (GIF) screenshot

Added bonus with this approach is that you can post the screencast without embed tags on any forum that includes animated GIFs as embedded like this

The answers prior to mine have clearly answered how to create a video screencast. Now if you just want to show an animated screenshot, essentially an extremely short screencast in an image format (GIF, and not more than ~10 sec), it's also easy.

First create a screencast of what you want to show in the animated GIF. Then follow the instructions below...

You'll need Gimp, mplayer (WARNING! NOT mplayer2) and mencoder. Issue the following commands to install them.

sudo apt-get install gimp
sudo apt-get install mplayer
sudo apt-get install mencoder
sudo apt-get -f install

Alternatively, you can install them from the Synaptic package manager that comes with Ubuntu.

The following command breaks your screencast into a number of jpeg or png (based on which command you choose) images:

mplayer -ao null -ss 0:0:33 -endpos 2 eagles.avi -vo jpeg:outdir=Desktop/animated
mplayer -ao null -ss 0:0:33 -endpos 2 eagles.avi -vo png:z=9:outdir=Desktop/animated

Where, -ss 0:0:33 tells mplayer where you begin (0 hours, 0 minutes, 33 seconds), -endpos 2 tells mplayer where to stop (2 minutes), z=9 sets compression level for the output png images to 9, Desktop/animated is the directory (~/Desktop/animated/) where you want the images to be output to.

You can also tell mplayer where to stop, as a specific time, like so:

mplayer -ao null -ss 0:0:33 -endpos 0:1:12 eagles.avi -vo jpeg:outdir=Desktop/animated
mplayer -ao null -ss 0:0:33 -endpos 0:1:12 eagles.avi -vo png:z=9:outdir=Desktop/animated

Now you have the images, but you need to combine them into a single, animated GIF. This is really simple:

  • Start Gimp > File > Open as Layers > browse to the directory (~/Desktop/animated/), Ctrl+A to select all images, and click 'Open'.

  • Simple hit Shift+Ctrl+S or go to File > Save As... and name the image as 'animated.gif' > hit 'Save' > check 'Save as Animation' radio button > hit 'Export' > in the next window, simply hit 'Save' unless you know what you are doing.

That's it. You have your animated GIF ready!

Here's an example:

Animated GIF screenshot

PS: I am not very comfortable with the terminology when it comes to this kind of stuff, but I hope I am clear nevertheless. :)


share|improve this answer

After trying everything, this is the solution I came up with:

Note: The "fake" ffmpeg from Libav has been depreciated (within Libav) and has been replaced by avconv from Libav. The "deprecated" message does not apply to the real ffmpeg from FFmpeg which is unaffected and is still under heavy development.

First install the required codecs:

sudo apt-get install libavcodec-extra-5*

Use the following command to record the screencast:

avconv -f alsa -i pulse -f x11grab -r 30 -s 1280x800 -i :0.0 -vcodec libx264 -acodec libmp3lame myscreencast.mkv

Change -s 1280x800 to whatever resolution you like.

more examples

all screen with given resolution and sound

avconv -f alsa -i pulse -f x11grab -r 30 -s 1024x768 -i :0.0 -acodec pcm_s16le -vcodec libx264  -threads 0 output.mkv

all screen with mouse following and sound

avconv -f alsa -i pulse -f x11grab -show_region 1 -follow_mouse 100 -r 10 -s 960x540 -i :0.0+10,200 -acodec pcm_s16le -qscale 0 -threads 0 output.mkv

Detailed options I know are following

  • -f: input file format
  • -i: input file name
  • -r: fps (Frame Per Second)
  • -s: frame size (width x height)
  • -i :0.0+10,200: size of squared area to follow
share|improve this answer
if you have two monitors, how do you select one of them to record? – Aras Jun 28 '13 at 18:19

This bash script is based on ffmpeg. It calculates the required resolution and record your desktop in high-definition.

Xaxis=$(xrandr -q | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f1)
Yaxis=$(xrandr -q | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f2)
ffmpeg -f x11grab -s $(($Xaxis))x$(($Yaxis)) -r 25 -i :0.0 -sameq ~/Video/output.mkv

Change the filename to your taste. This script can be found on github here.

share|improve this answer
ffmpeg -s cif is a way to avoid xrandr calls! – gavenkoa Oct 25 '13 at 15:30
@gavenkoa cif is a video size alias for 352x288 which is a size I doubt anyone wants to use. – LordNeckbeard Dec 22 '13 at 4:35
OK, all this sizes can be found in man 1 ffmpeg-utils... – gavenkoa Dec 22 '13 at 14:53

Check out this article about Screenkey

It turns your key strokes into highly readable subtitles overlaid on the recording. It seems like it would be incredible for tutorial and training type videos about CLI-based topics.

Not positive it fits all the original criteria, I will try to update later.

It's on Launchpad here

share|improve this answer
this makes for a great comment, not an answer. – barraponto Mar 10 '12 at 18:15
News version of screenkey is at – nachtigall Jun 12 at 6:28

Gnome 3 already seems to have a very simple thing to do record Screencasts - you can assign what shortcut it uses in Keyboard settings. It records the entire screen, and records directly into a webm file (a fairly widely used format) into XDG_VIDEOS_DIR - by default "$HOME/Videos".

example screencast
The above image should be animated - if you have animations disabled it won't work. Click to view the file

If you want to convert the image to a animation, this answer on Superuser is very helpful - the best method is to basically:

Another command-line method would be to export the movie to frames using ffmpeg:

mkdir frames
ffmpeg -i input -vf scale=320:-1 -r 10 frames/ffout%03d.png

Then use convert from ImageMagick (or GraphicsMagick) to make your animated GIF:

convert -delay 5 -loop 0 frames/ffout*.png output.gif

This is how I did the above animation, with the exception that I added -dither None -colors 80 -fuzz "40%" -layers OptimizeFrame to the convert command*, and cropped the result in GIMP.

*Be careful with these options, some like using ALL of the CPU

share|improve this answer

Kdenlive is a free open-source video editor for GNU/Linux and FreeBSD, which supports DV, AVCHD and HDV editing. Kdenlive relies on several other open source projects, such as FFmpeg, the MLT video framework and Frei0r effects.

share|improve this answer

Thanks for all of the great suggestions here. My recommendation for tools that will work great for recording audio, video and editing the screencast is Camtasia and Screenflow. If you're looking for more ideas on recording your screen and creating an engaging screencast then check out this post: It includes tons of tools and tips on audio, video and editing your screencast

share|improve this answer
It would be much better if you could provide a summary of what's included in the linked article. This way if the link becomes unavailable, your answer will remain helpful. – hmayag Jun 18 '14 at 23:35

I would like to recommend Open Broadcaster Software.

It is currently in beta for Linux. But this works really well. The main reason why I use it is because I can record both my microphone AND monitor output with ease.

Plus you can stream to Twitch if you'd like.

sudo apt-add-repository ppa:jon-severinsson/ffmpeg
sudo apt-add-repository ppa:obsproject/obs-studio
sudo apt-get update
sudo apt-get install ffmpeg obs-studio
share|improve this answer

Scshoot is open-source cross-platform (Java) screen capture and recording tool:

Besides of single-image capture, can record part of screen to animated PNG (APNG) or video.

share|improve this answer

I just installed RecordItNow and Kazam.

RecordItNow seems more complete that Kazam as you can set the recording size. However, both seem primitive compared to this ScreenFlow shown in this tutorial on making screencasts:

share|improve this answer
Isn't ScreenFlow only available for Mac at this time? – its_me Nov 28 '12 at 15:40
yes -- a reason to use a Mac! – justingordon Nov 28 '12 at 20:06
The codeschool link seems to be dead. – i08in Jan 30 '14 at 11:11

protected by Community Apr 7 '15 at 10:42

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.