Wednesday, April 21, 2010

FBS files

FBS stands for Frame Buffer Stream.

When you access the remote desktop with the help of VNC viewers, you might be in need of record the screen updates for future references. Most of the VNC viewers have the feature to record the screen updates into a file. These files can be
played back whenever you need.

The file which has the Frame buffer updates stored is FBS file. Some people may call it as VNC file.

There are very few(countable) programs which works as VNC recorder which only records the remote desktop. vastly available as a part of VNC viewer.

File content:

The fbs file will have FBS version and series of chunks of frame buffer data as the image represent below,
* [capture file] ::- [version][data]
* [version] ::- 'FBS 001.000\n' | 'FBS 001.001\n'
* [data] ::- [byte-count][raw-data][timestamp][data][data]
* [byte-count] ::- 32-bit number of bytes, big-endian
* [raw-data] ::- data received at timestamp [timestamp], which is [byte-count] bytes in length, padded to multiple of 32-bits
* [timestamp] ::- 32-bit number of milliseconds since beginning of capture, big-endian
(Extracted from RfbProxy source code.)

Key points about fbs file:

  • The size of the file is based on the frequency of FramebufferUpdates received and the amount of changes in the desktop.
  • File extension can be given as 'fbs'.
  • Timestamp available in every chunk of data represents the relative time from beginning.
  • Byte count and Timestamp are in big-endian representation.
  • This file doesn't have any kind of indexing to ease positioning.
  • The first chunk of data doesn't only contain the frame buffer update, it also has the meta data(SecurityType and ServerInit) which includes the frame buffer width, frame buffer height, desktop name and pixel format.
  • FBS files are quiet similar to protocol dumps.
Some questions could have raised in your mind on how to record the remote screen in fbs format, what tools to be used to record and what tools to be used to playback. The following articles will have the answers for your questions.

Further reading:
    RfbProxy - Tool which helps to record, stream, convert FBS files.
    Rfb protocol - Know how Rfb protocol works.