Provided by: its-playback-time_0.2017-08-30.3c40fd3-1_amd64 bug

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 80×24 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.

       -U     Treat the input terminal data as being encoded in UTF-8.

              If ipbt has been compiled against the ncursesw library and is running in a UTF-8 terminal, it will
              reproduce  the  Unicode  characters  in the input file as faithfully as it can. If not, it will at
              least try to reproduce as many of the characters as it can on whatever terminal it does have.

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. Some output features supported by PuTTY are therefore not supported by ipbt

       For example, xterm 256-colour mode is not supported at all.

       Also, ipbt's Unicode support does not currently handle various Unicode complications such  as  characters
       outside  the  Basic  Multilingual Plane, double-width CJK characters, right-to-left scripts, or combining
       characters.

       (Patches or help from people who know how to persuade ncursesw to do any or all of those things would  be
       welcome!)

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)