rec

Create free lossless screencasts!


rec is written in C++ by Péter Joó (joo.peter@gmail.com) for Windows XP and above.



Technology and features:
  • portable: no install, no uninstall, no need for administrator rights
  • lightweight: during recording a special intermediate format is used, to save as many RAM, CPU, and disk space as possible
  • minimalistic: no configuration, no parameters, no GUI
  • lossless: screencasts are encoded in the 8-bits per channel RGB color space
  • no frame drops: variable frame rate format is used to save the timecode of each video frame with accuracy of 1 millisecond or less
  • saves space: identical and consecutive frames are saved as only one frame with proper timecode
  • illusion of continuity: screen changes detected at 25Hz, in a real-time thread, driven by a multimedia timer
  • codec: ffmpeg is used to encode the video into the popular Adobe Flash Screen Video Codec V1 format
  • container: mkvmerge is used to put the result into Matroska container, which is designed to store variable frame rate content properly
Performance:
rec has to acquire, compress and save huge amount of video data in every second.
A little math shows how huge it is: the video bitrate on screen at
resolution
of 1280x1024 with 32 bit colors and at frame rate of
25fps is:

1280 x 1024 x 25 x 32/8 bytes/sec = 131072000 byte/sec
131 megabyte/sec 1049 Mbit/s

For comparison the maximum video bitrate of the standard blu-ray disc in encoded form is 40 Mbit/s which is ~26 times less.
Even the decoded blu-ray video in its original raw YUV 4:2:0 format has
~43% less bitrate: 1920x1080x24000/1001x12/1000/1000 597 Mbit/s

Configuration used:
Operating system:     32-bit Windows XP SP3
CPU:                  3 GHz Intel Core 2 Duo E8400
Video card:           512MB ATI Radeon HD 3400
Screen resolution:    1280x1024 32-bit

Results:

In idle state, when there is no change on the screen: rec consumes 15% CPU and 0 byte/sec disk space.
The typical case, when screen changes a lot but the content is flat: rec consumes ~17% CPU and few kilobyte/sec disk space.
The worst case, when full-screen or noisy video playback is on the screen: rec consumes ~22% CPU and several megabyte/sec disk space.

How to use:
Download and extract it wherever you want, for example to C:\myStuff\rec\
Run C:\myStuff\rec\rec.exe and press Ctrl-PrintScreen to start and to stop recording.

If you want to use an other directory for your screencasts
:

Create a shortcut for C:\myStuff\rec\rec.exe and set up its working directory, for example to C:\myScreencasts\

Features excluded
:
sound recording, custom region recording


Playing your screencasts
:
I recommend VLC or MPlayer
but rec produces Adobe Flash Player compliant video, so your existing video player should also play it properly.

How about lagging?
Jason Garrett-Glaser (lead developer of x264) uses an entirely lossless, artificially created high-motion flash video called Azumanga Daioh OP.

Recording that flash animation without lags is a real torture for screencast recorders.
You can check that rec produces no lags: original vs recorded.
SelectionFile type iconFile nameDescriptionSizeRevisionTimeUser
ċ

View Download
  4004k v. 1 Oct 16, 2012, 1:41 PM Peter Joo
ċ

Download
  20015k v. 1 Oct 16, 2012, 1:34 PM Peter Joo
ċ

Download
  8876k v. 1 Oct 27, 2012, 11:14 AM Peter Joo