Tell me more ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

How can I create a screencast on Ubuntu? What applications are available?

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
Wow, looks like there really is not much out there. Just tried recordmydesktop, istanbul and kazam and... well - they are pretty crappy. Clumsy controls, bad or no global hotkeys, strange output formats, ... – fgysin Feb 28 at 11:01

15 Answers

up vote 51 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.

screenshot of gtk-recordmydesktop

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
1  
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
2  
We've removed xvidcap from the repository now because it's no longer maintained. – popey May 14 '12 at 7:40
1  
@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
Actually select what window to record by using the windowid option. You can check the window id of a window using the xwininfo utility – tomodachi Jan 10 at 14:02

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

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

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.

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

For further information:

How to create animated GIF images of a screencast?

share|improve this answer

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

Tibesti

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
user13499, the answer has been updated with step-by-step instructions from console. – Scaine Apr 5 '11 at 18:37
@alaukik I've found the framerate to be terrible and there doesn't seem to be a framerate setting, and "record audio out" doesn't seem to work, which is a great pity - am I doing something wrong? – d3vid Aug 19 '11 at 5:47
1  
the framerate issue has resolved itself – d3vid Oct 12 '11 at 6:02
show 1 more comment

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.

Tutorials:

enter image description here

share|improve this answer

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

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

Notes:

  • 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
share|improve this answer
and how does one get audio as well? – Volomike Dec 10 '12 at 9:33
1  
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

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. :)

SOURCE: http://www.youtube.com/watch?v=OhJtyblE_D0

share|improve this answer

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

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

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.

http://www.kdenlive.org/features

share|improve this answer

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

Note: The tool ffmpeg has been depreciated and is replaced by anconv

First install the required codecs:

sudo apt-get install ubuntu-restricted-extras

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.avi

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.avi

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.avi

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 You can tuneup these options to play more...

Some more commands are available on http://www.step4wd.com/tips/recording-screencast-in-ubuntu-linux/ although the tip is not well written.

share|improve this answer

Using Ubuntu 11.04 natty on my laptop I've tried xvidcap, gtk-recordMyDesktop, and tibesti. Only tibesti lets me easily pick whether to record from the screen or microphone or both. Highly recommended.

share|improve this answer

I just installed RecordItNow http://www.piotrkrzyzek.com/screencasting-in-linux-with-recorditnow-pulseaudio) 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: http://www.codeschool.com/code_tv/screencasting.

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

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 at 10:34

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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