Fraps

From MultimediaWiki
Revision as of 21:22, 4 November 2006 by Kostya (talk | contribs) (Mention v4)
Jump to navigation Jump to search

The Fraps video codec is used to store in real-time data that is captured from high frame-rate computer games played on Windows PCs.

There are at least 3 versions of the codec that are all used with the same FOURCC. v0 is a reordered YUV420, v1 is an upside-down BGR24 encoding, v2 - the most commonly found variant - is Huffman-coded YUV420 planes, v4 is virtually the same as v2 but codes only one plane (i.e. grayscale).

Version 2 format and encoding

All data is stored in 32-bit little-endian words. If frame size is 8 bytes long then repeat previous frame otherwise proceed to frame decoding.

Frame header

 bytes  0- 7 - should be ignored
 bytes  8-11 - 'FPSx'
 bytes 12-15 - offset to the Y plane (minus 8), should be always 16
 bytes 16-19 - offset to the U plane (minus 8)
 bytes 20-23 - offset to the V plane (minus 8)

Plane format

First 256 words (1 kB) of plane data are symbol frequencies used to construct Huffman tree. The rest of data represents bitstream packed into 32-bit words, MSB first.

Lines are coded as difference to the previous lines. For Y plane the line with index -1 should contain all zeroes, for chroma planes - all 128.