What is a DivX File?

A DivX file contains video encoded with a DivX codec, commonly MPEG-4 Part 2 or a later DivX variant. The encoded stream is often stored in an AVI or MKV container rather than a container unique to DivX.

How DivX Files work

DivX is a brand that covers several codec generations and device profiles, not one file structure. DivX 3 was based on Microsoft’s MPEG-4 v3 codec, which decoders treat as a codec separate from standard MPEG-4 Part 2; the DivX 5 encoder is documented as an MPEG-4 Part 2 implementation (Simple and Advanced Simple Profile); and DivX states that versions 3 through 6 used AVI as their container. DivX 6 introduced the DivX Media Format, which uses the .divx extension and adds XSUB subtitles, menus, chapter points, and alternate audio tracks. Later generations changed both layers: DivX describes DivX Plus video as based on H.264, and it uses MKV for DivX Plus and DivX HEVC video. The decoder a file needs therefore follows from its stream, while the container supplies timing and track layout.

Key facts

  1. DivX-labeled AVIs do not all need the same decoder. FFmpeg maps the FourCCs DIVX and DX50 to its MPEG-4 Part 2 decoder but maps DIV3, DIV4, DIV5, and DIV6 to msmpeg4v3, the Microsoft MPEG-4 v3 variant that DivX 3 was based on. The FourCC is only a tag in the stream header, and FFmpeg’s table includes entries for broken AVIs, so confirm the codec by decoding a sample, not by reading the tag alone.
  2. Stream-copying DivX video out of AVI can produce a file that standard decoders reject. FFmpeg documents DivX-style packed B-frames as not valid MPEG-4 and warns that they cause trouble when copied into MP4 or MPEG-PS/TS. Its MPEG-4 decoder logs a message when it meets them and suggests the mpeg4_unpack_bframes bitstream filter “without encoding but stream copy”: the filter repairs the stream during a copy, and FFmpeg’s documented example copies from one AVI file to another. A re-encode does not need the filter, because the decoder handles packed B-frames itself.
  3. Not every DivX-era stream can be stream-copied into MP4 with FFmpeg. Its MP4 muxer’s codec tag table has entries for MPEG-4 Part 2, H.264, and HEVC but none for msmpeg4v3 or XSUB subtitles, and the muxer stops with an error when a stream’s codec has no tag. Video that decodes as msmpeg4v3 therefore has to be re-encoded to go into an FFmpeg-written MP4, and XSUB subtitles cannot be copied across.
  4. The extension does not identify the codec, and it suggests the container without confirming it. DivX describes .divx files as based on the AVI container and .mkv as the Matroska extension, and its profile table lists .avi and .divx for its MPEG-4-era profiles and .mkv, .avi, and .divx for DivX Plus HD. A .divx filter therefore misses DivX video stored as .avi or .mkv, and no extension settles which codec is inside.
  5. Decoding in software does not mean a DivX Certified device will play the file. The profile table sets separate ceilings per device class for frame size, bitrate, B-frame count, and quantization method: the Home Theater profile, for example, lists H.263 quantization and one B-frame, while DivX HD 1080p lists two B-frames and H.263, MPEG, or custom quantization.

When DivX Files matter

Support DivX when handling legacy video collections or converting them for newer playback environments. Detect both codec and container because an extension alone may not reveal the decoder or demuxer required.

How Transloadit helps with DivX Files

Transloadit’s video codec reference, which covers its FFmpeg-based Robots such as /video/encode, lists mpeg4 (MPEG-4 Part 2, with encoders that include mpeg4 and libxvid) and msmpeg4v3 as readable and writable. These are the two codecs that FFmpeg maps the FourCCs above to.

The reference lists codecs. It does not cover DivX Media Format features such as menus or XSUB subtitles, so test files that depend on them.

Explore Transloadit’s file formats & compression capabilities

Sources

Turn media knowledge into a working pipeline

Connect uploads, processing, AI, storage, and delivery through one declarative API — with the encoding stack, scaling, and format churn handled for you.

Try Transloadit for free