Flic Video

From MultimediaWiki
Jump to navigation Jump to search

This is the original format used by Autodesk Animator. You can find a complete description of the fli/flc format (both container and video codec) here http://www.compuphase.com/flic.htm.

The codec uses RGB colorspace: paletted RGB8, RGB15, RGB16, RGB24. RGB8 is tightly coupled with the VGA mode 0x13.

Compression methods are RLE-based.

Container

There are many variations of flic container, the most common are the original FLI from Autodesk Animator and the extended FLC from Autodesk Animator Pro.

Standard FLIC files are video-only. However, various deviations also include audio.

The file format is chunk-based.

In AVI

FLIC video frames can be stored inside of an AVI file. In this case, a 256-entry 32-bit RGB palette is stored in the AVI header per the usual method for doing so.

In MOV

FLIC video frames can be stored inside of an Apple QuickTime file. In this case, a 256-entry 32-bit RGB palette is stored in the video atom's stsd atom per the usual method for doing so.

Magic Carpet

The game Magic Carpet contains FLIC files with a few deviations from the standard:

  • the files bear the extension .dat
  • The header is only 12 bytes instead of 128
  • The header is too short to carry speed info; all MC FLIC files appear to play fine at 15 fps
  • Even though they report themselves to be 0xAF12-type FLIC files and have 256_COLOR palette chunks, the files are actually 320x200 pixels and have 6-bit palettes like 0xAF11-type FLIC files

Variations of the FLIC format are also found in Bullfrog's Syndicate and Hi-Octane.

Scorched Earth FLH

This is 15- or 16-bit FLIC variation that uses either 15-bit DTA FLH (with tag 0xAF43) or RNC ProPack-compressed 16-bit frames (with tag 0x1234 and actual data in subchunks with type 0x5555). Additionally it may contain audio in subchunks with type 0x5344.

Under a Killing Moon PTF

These files have a different header but still keep general FLIC structure. It may contain WAV file split into parts and stored in chunks with ID 0x5657.

There is also a new frame compression method, data for it is stored in chunks with ID 0x0B1C. In that case frame is divided into 4x4 blocks of different type and there are flags defining what kinds of blocks are present in the current row plus skip+count pairs telling the ranges of each block type. Block types are skip, fill, two-colour, raw and two-colour per each 2x2 sub-block.