efficient terminal/console screencasting

Girish Venkatachalam girishvenkatachalam at gmail.com
Thu Nov 22 00:24:22 PST 2007

On 21:26:41 Nov 21, Andrew Pantyukhin wrote:
> A while ago I needed to screencast a terminal to a class of
> students in real-time. It turned out to be quite straightforward
> with screen(1) in multiuser mode.

screen(1) is really cool. :)

> Now I want to record screencasts and allow people to watch them
> later. I'm looking at recordmydesktop, but the innefficiency
> strikes me: I'm operating in text-only environment, there's no
> need to record every frame as a flat bitmap. Whatever codec I
> choose, the files will be huge and of low quality.

How about ttyrec(1) and ttyplay(1) ?

> What I need is something like script(1) on steroids:
> - accurately record the complete state of my terminal window at
>   any given moment
> - store it as a succession of updates, each represented in a
>   text-based format (as opposed to pixel-based)

If you want pixel based output then there are quite a few options but
none to my taste. As you mention they all are bloated.

> - record timings correctly
> - allow for a method to record speech in the background

This you have to do manually with sox(1). Not a big deal. A simple shell
script can do what you want.

> - allow for a method to play it all back in sync

This is no big deal either. If you want to create a video, then you have
to go in for pixel based stuff. You can however do efficient compression
and use a good codec like x264 or something.

> Has anyone heard about any tool which would help me achieve at
> least some of my requirements?

Your idea seems good enough to create an open source tool that does
exactly what you want.


More information about the freebsd-questions mailing list