Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
ipbt(1)				 Simon Tatham			       ipbt(1)

       ipbt - play back	tty recording files with random	access

       ipbt [ options ]	file [ file ...	]

       ipbt is a curses-based playback utility for recordings of terminal ses-
       sions 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	termi-
       nal, stopping to	wait for the appropriate period	every time it  encoun-
       ters  a timestamp. Speeding up, slowing down and	pausing	the replay are
       easy. Rewinding,	however, is almost impossible with this	replay	archi-

       ipbt  solves this by running the	entire tty recording through an	inter-
       nal terminal emulator and storing the resulting screen  contents	 in  a
       manner  that  permits  random access. Once this loading process is com-
       plete, ipbt can play forwards and backwards, or jump  to	 an  arbitrary
       point in	the recording, with equal ease.

       This flexibility	comes with two disadvantages:

       +o      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.

       +o      Since ipbt does its terminal emulation internally, it  can  sup-
	      port  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  run-
	      ning them	in that	type of	terminal.

       If  either of these is a	serious	problem, you probably don't want to be
       using ipbt.

       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

       -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 automati-
       cally 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	 time-
       stamps  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 hap-
       pens, 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.

       Once  ipbt  has loaded a	set of tty recordings, it enters a full-screen
       playing mode. This section describes the	keypresses which  control  the

       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

       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

       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. Loga-
       rithmic	mode  can be used in conjunction with the `x'/`X' scaling fea-

       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.

       ipbt's internal terminal	emulation is that of PuTTY, but	its display of
       the resulting data is rather more simplistic. Many output features sup-
       ported  by  PuTTY are therefore not supported by	ipbt: among those fea-
       tures are Unicode and xterm 256-colour mode.

       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)


Want to link to this manual page? Use this URL:

home | help