There are many myths in the video software area which are caused by misunderstanding of basic terms, “standard industry practices” and lack of knowledge. This section explains some of the most common myths that are relevant to Avidemux.
In 2007, a Qt user interface has been added to Avidemux, which misled people into thinking the Qt version replaced the GTK+ one. This is not true, it has never been officially announced. Both versions are still officially a part of Avidemux. The Qt version has become the preferred one for the Microsoft Windows builds, while for Linux or BSD, there is no official preference – GNOME or Xfce users may prefer the GTK+ version, KDE 4 users may prefer the Qt GUI.
Sidenote: The Qt user interface was once a in a “work-in-progress” state, with less functionality than the GTK+ user interface. Since v2.4.4, the Qt user interface is functionally equal to the GTK+ interface. Since v2.5, the Windows installer only comes with the Qt user interface, though the GTK+ interface is still included in the zipped release.
In general, Avidemux does not need external software for reading and writing. Some people believe it uses MEncoder, Transcode, FFmpeg or MJPEG Tools for encoding. This is completely false, even though it contains some borrowed code from these projects.
Avidemux is not an MEncoder frontend. It is not a GUI for MEncoder, it is a standalone program which uses its own code for video editing, reading and writing. The only thing these two programs have in common is that Avidemux includes several filters ported from MPlayer (like denoise3d), plus it uses libavcodec and other libraries (which are used by MPlayer/MEncoder as well as virtually any free software video program).
Avidemux does not use any external video decoders. That's why installing any video codec (for example DivX or Xvid) in the hopes of using it for decoding in Avidemux is a wasted effort (however, Avidemux can use Xvid for encoding). Official Avidemux packages for Microsoft Windows include all external encoders (like Xvid) and decoders and other libraries, so there are no dependencies for them. In particular, as a cross-platform application, it cannot use any DirectShow or VfW decoders or encoders, which are specific to Microsoft Windows.
Avidemux does not use external FFmpeg. A built-in libavcodec library from FFmpeg (i.e. Avidemux contains its own copy of libavcodec, external FFmpeg is not used) is used for decoding and encoding of many formats.
Contrary to popular myths, a codec is not the same thing as a format. A compression format is a way audio or video data are encoded, which is described in its specification (if it is standardized, it can be called a standard). An audio or video codec (a codec means coder/decoder) is a software or hardware tool that encodes or decodes audio or video data. Tools used for encoding are called encoders, tools used for decoding are called decoders. Software codecs, encoders and decoders are typically implemented as libraries.
None of the items listed above is a codec, even though all of them are often erroneously referred to as such. A codec is a tool that actually does something (encodes/decodes, as the term encoder/decoder suggests), while a specification does not do (encode or decode) anything. It only describes how to make tools that do the actual work.
None of the items listed above is a format, even though some of them are often erroneously referred to as such (see below). A software tool is not a specification. It implements the format described in the specification.
This all means that audio or video does not have to be decoded with the same codec it was encoded with. For example, when you encode an MP3 file with the LAME codec, it is not a “LAME file”, “LAME format”, “LAME audio” or just “LAME” – you don't encode “to LAME”. It is an MP3 file and it can be decoded with other MP3 decoders, too.
However, the common practice in digital video is using these two terms interchangeably, which is caused by years of industry obfuscations, greedy proprietarism (pretending that their codec is a format is a common business model for codec vendors and a significant source of their income, as it ties the customers to their products), intentional lying in various magazines, websites etc. (in order to make it “easy” for the readers who could be “confused” by correct terms), and the resulting ubiquitous ignorance and lack of knowledge. The nonsensical use of codec FourCC in AVI files was a major factor in this massive confusion (video codecs have their own four-character identification in AVI files that is used by the player software for choosing a video decoder, so if the encoder uses a common standard format, users are supposed to install multiple decoders for the same format). Historically, when a company released their own proprietary codec, it was automatically supposed to be the only existing codec for that proprietary format. This practice has gone with the 20th century.
There are standards such as MPEG-1, MPEG-2 and MPEG-4. These are specifications. Developers can develop software or hardware implementations that encode or decode audio and video according to the specification. The purpose of standards is interoperability. There can be multiple codecs, made by different people, using the same compression format such as MPEG-2 (used e.g. on DVDs) or MPEG-4 ASP. Video encoded with one of them can be decoded with another one, if they use the same compression format, which means they are compatible. So the essential thing for describing a video file is its format, not which codec was used for encoding. There are only a handful of audio and video formats that are actually used in the 21st century. The vast majority of codecs made in this century only implement one of these common standards.
DivX may arguably be the most widely misunderstood term in the digital video era. Avidemux does not support DivX. But it does support video that was encoded by the DivX software.
DivX is not:
The DivX Codec is a commercial piece of software that encodes and decodes MPEG-4 ASP video (newer versions also support MPEG-4(nbsp)AVC, alias H.264). Note that software is not a format – “supporting DivX” does not mean “supporting video encoded with the DivX codec”, it means supporting the software product made by DivX, Inc., for example by allowing a video editor to use the DivX codec for encoding and/or decoding.
DivX is currently available for Windows and Mac OS. Avidemux is multiplatform, developed primarily on Linux and all codecs it uses are open-source and free. DivX is not available for Linux anymore (an “unofficial” version for developers has been released in 2006) and it's not free (as in Free Software). The older Linux version also did not work properly, with no reaction from the DivX company for 3 years. That's why Avidemux does not support it.
However, as DivX just uses MPEG-4 ASP video compression, it is compatible with other MPEG-4 ASP codecs. The two open-source and free MPEG-4 ASP codecs used by Avidemux are FFmpeg MPEG-4 (built-in, used for decoding and encoding) and Xvid (external, optionally used for encoding). Both are good, feature rich and compatible with DivX, thanks to the MPEG-4 standard.
Xvid is an open-source MPEG-4 ASP video codec. Avidemux can optionally use external Xvid library for encoding if it was compiled with Xvid support.
Xvid is not:
x264 is a free MPEG-4 AVC/H.264 encoder (for the H.264-MPEG-4 AVC relation, see the Wikipedia H.264/MPEG-4 AVC article). Avidemux can use x264 for H.264 encoding.
x264 is not: