AMV is a proprietary
video file format, produced for
MP4 players, as well as
S1 MP3 players with video playback.
Format
The container is a modified version of
AVI. The video format is a variant of
motion JPEG, with fixed rather than variable
quantisation tables. The audio format is a variant of
IMA ADPCM, where the first 8 bytes of each frame are origin (16 bits), index (16 bits) and number of encoded 16-bit samples (32 bits); all known AMV files run sound at 22050 samples/second.
Low decoder overhead is paramount as the S1 MP3 players have very low-end processors (a Z80 variant). Video compression ratio is low — around 4 pixels/byte, compared with over 10 pixels/byte for MPEG-2 — though as the files are of low resolution (96×96 up to 208×176) and frame rate (10, 12, or 16 fps), file sizes are small in bytes per second. With a resolution of 128×96 pixels and a framerate of 12 fps, a 30-minute video will be compressed into 80 MB.
Documentation
Documentation for this format is not publicly available, but Dobrica Pavlinušić
reverse engineered the format to produce a Perl-based decoder and Pavlinušić, Tom Van Braeckel and Vladimir Voroshilov produced a version of
FFmpeg that works on AMV files. The AMV code has been sent upstream to the main FFmpeg project.
References