DragonFly On-Line Manual Pages
ipbt(1) Simon Tatham ipbt(1)
NAME
ipbt - play back tty recording files with random access
SYNOPSIS
ipbt [ options ] file [ file ... ]
DESCRIPTION
ipbt is a curses-based playback utility for recordings of terminal
sessions in either ttyrec or nh-recorder format.
ttyrec and nh-recorder are both programs which record the output of a
terminal session, interspersed with timestamps. This allows the session
to be replayed on another terminal at the original speed, so that the
replaying terminal screen looks identical to the original, provided the
recording and replaying terminals are sufficiently compatible. ttyrec
and nh-recorder produce differently formatted files, but the principle
is very similar.
To replay a tty recording in a forward direction, a program such as
ttyplay will simply write the contents of the file to the output
terminal, stopping to wait for the appropriate period every time it
encounters a timestamp. Speeding up, slowing down and pausing the
replay are easy. Rewinding, however, is almost impossible with this
replay architecture.
ipbt solves this by running the entire tty recording through an
internal terminal emulator and storing the resulting screen contents in
a manner that permits random access. Once this loading process is
complete, ipbt can play forwards and backwards, or jump to an arbitrary
point in the recording, with equal ease.
This flexibility comes with two disadvantages:
* ipbt takes noticeable time to load a tty recording in the first
place. At the time of writing this, it typically takes a few
seconds per megabyte of input. Simpler programs such as ttyplay
can begin playing instantly.
* Since ipbt does its terminal emulation internally, it can
support only one type of terminal, namely that provided by PuTTY
(of which ipbt is a derived work). Any tty recording which is
not compatible with that terminal type will not come out looking
right. Simpler programs such as ttyplay rely on the terminal
they are running in to interpret the terminal control sequences,
so they can be made to support any terminal type simply by
running them in that type of terminal.
If either of these is a serious problem, you probably don't want to be
using ipbt.
OPTIONS
By default, ipbt interprets tty recordings as if they were intended to
be replayed on an 80x24 screen. You can alter this using the following
options:
-w width
Set the width of the emulated terminal to width columns.
-h height
Set the height of the emulated terminal to height rows.
-u Set the width and height of the emulated terminal to be the same
as that of the real terminal in which you are running ipbt.
By default, ipbt will attempt to analyse the input files and
automatically guess whether they are in ttyrec or nh-recorder format.
On rare occasions this automatic guessing may fail: for example, a
ttyrec made on a system whose clock occasionally jumps backwards may
contain timestamps in non-increasing order, in which case ipbt may
consider the file not to be a valid ttyrec and either try to interpret
it as nh-recorder format or (more likely) refuse to load it at all. If
this happens, you will need to explicitly tell ipbt what type of file
it is dealing with using the following options:
-T Specify that all files appearing on the command line after this
point (until a subsequent format-specifying option) should be
assumed to be in ttyrec format.
-N Specify that all files appearing on the command line after this
point (until a subsequent format-specifying option) should be
assumed to be in nh-recorder format.
ipbt also provides the following miscellaneous options:
-f frame
After loading the tty recordings, jump to the specified frame
number. Frame numbers are allocated starting from zero, as if
all the input files were concatenated; so if you provided two
input files, one with 100 frames and one with 50, then frame
numbers 0-99 would indicate positions in the first file and
frame numbers 100-149 would indicate positions in the second.
-P After loading the tty recordings, terminate immediately. This
option is unlikely to be very useful at present, although it
might have specialist uses for people wanting to measure ipbt's
loading speed or test its automatic format detection.
PLAYING
Once ipbt has loaded a set of tty recordings, it enters a full-screen
playing mode. This section describes the keypresses which control the
player.
To terminate the player, press `q', or Control-C.
Press `p' or `s' to toggle between pause and play mode. The player
starts up in pause mode, so you may well want to press this immediately
to begin playing.
To go back by one frame, press `b' or `<'. To go back by many frames,
type a number followed by `b' or `<'.
To go forward by one frame, press the space bar or `>'. To go back by
many frames, type a number followed by the space bar or `>'.
To jump to a particular frame number, type the number followed by `g'.
Pressing `g' on its own will jump to the start of the recording.
Pressing capital `G' will jump to the end of the recording. If you type
a number followed by `G', it will jump to that many frames before the
end.
To play back the recording at higher speed, type a number followed by
`x'. For example, typing `3x' will set the player to three times normal
speed. (This will not automatically bring you out of pause mode; you
still need to press `p' or `s' for that.)
To play back at a lower speed, type a number followed by capital `X';
for example, `3X' will set the player to one-third normal speed.
To return to normal speed, you can type `1x' or `1X', or just `x' or
`X'.
If you press `l', the player will toggle logarithmic time compression.
This is a mode in which the delay between frames is scaled in a non-
linear fashion: small delays are changed very little, but extremely
large delays are made significantly less large, so that an hour between
frames in the original recording becomes only about eight seconds, a
day becomes eleven, and even a year between frames would become around
seventeen seconds. This is helpful if the person who made the recording
left the terminal for a long time in the middle of their session.
Logarithmic mode can be used in conjunction with the `x'/`X' scaling
feature.
If you press `o', the player will show an on-screen display near the
top left of the screen, showing the current frame number and playback
settings. Press `o' again to make the display go away.
You can also search the recording for a frame in which a particular
piece of text appears on the screen. Press `/' to search forwards from
the current position, or `\' or `?' to search backwards. Each of these
commands will cause ipbt to prompt for a piece of text to find, and
will then search for a frame that contains that text. Press `n' to
search for the same piece of text again in the same direction.
BUGS
ipbt's internal terminal emulation is that of PuTTY, but its display of
the resulting data is rather more simplistic. Many output features
supported by PuTTY are therefore not supported by ipbt: among those
features are Unicode and xterm 256-colour mode.
LICENCE
ipbt is free software, distributed under the MIT licence. Type ipbt
--licence to see the full licence text.
Simon Tatham 2007-04-19 ipbt(1)