Skip to content
Painless timelapsing to show off your productivity.
C Makefile Roff
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
src If a filename was not given, decide on one that works. Jul 14, 2015
.gitignore will move to imlib2 Mar 19, 2015
LICENSE Update copyright. ♥ github-copywriter Mar 15, 2018
Makefile Dump a bunch of info into --version. Jul 13, 2015 Update copyright. ♥ github-copywriter Mar 15, 2018
demo_link.png Add demo link. Nov 23, 2015


Painless timelapsing to show off your productivity.

tl progressively captures and encodes screenshots to an MP4 file. Unlike other timelapse tools, it doesn't store thousands and thousands of images only to encode them later. It captures and encodes in realtime! It is not going to thrash your disk with gigs upon gigs of screenshots, and it is not going to record at 30 fps when you only really need 1 fps.

It's a great way to show off how productive you are! Plus it looks cool! So hit record and start up a coding session! Or boot up Photoshop (or more likely Gimp) and start drawing!

(It can also be used as a decent screen recorder with: tl -d .0333 -r 30.)


Pre-compiled, statically linked binaries can be downloaded in the releases.

For example you can download and run v0.02:
$ wget
$ ./tl-v0.02 --version

Compiling from scratch

Download the required libraries:

Arch Linux:
$ pacman -S --needed base-devel libx11 ffmpeg
Ubuntu (14.04)
$ apt-get install build-essential libx11-dev libswscale-dev libavcodec-dev libavformat-dev

(If you know the correct packages for your distro, please submit a pull request and I'll add it.)

Then just run:

$ make
$ ./tl --help
$ ./tl

To install:

$ make install
# or...
$ make install PREFIX=/usr/local


Feel free to submit any ideas, questions, or problems by reporting an issue. Or, if you're feeling bit brave, submit a pull request. 😬



  • Figure out how to encode an h.264 stream directly into an MP4 container.
  • Recompress the video at the end. (Basically ffmpeg -i in.mp4 -c:v libx264 out.mp4 but using the API.)
  • Maybe add a GUI?
  • Somehow support Mac OS X and Windows...
  • Support drawing a capture box (or even just defining a capture box.)
  • Fix the Using 'XXX' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking warning.


  • After recording, running ffmpeg -i timelapse.mp4 -c:v libx264 out.mp4 will compress the video significantly (around 75%).
  • There is a C++ branch that you can checkout. I prefer to stick with C, but we may need to move to C++ in order to support other OSes or GUIs. The C++ branch compiles fine, but as of now, is a little out of date.


MIT License - see the LICENSE

Copyright (c) 2018 Ryan Jacobs

You can’t perform that action at this time.