AMV is a proprietary video file format, produced for MP4 players, as well as S1 MP3 players with video playback. There are now two different MTV formats: the older one for the Actions chip, and a newer one for ALi’s M5661 chip. This format for ALi one was ALIAVI.
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 frame/s), file sizes are small in bytes per second. With a resolution of 128×96 pixels and a framerate of 12 frame/s, a 30-minute video will be compressed into 80 MB.
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 and the mainline version of FFmpeg now decodes and encodes AMV.
External links