The Xvid project implements video coding based on the MPEG-4 standard. Early Xvid versions implemented only MPEG-4 simple profile (SP) de- and encoding whereas newer versions introduce support for more profiles. The Xvid 1.x stable branch supports MPEG-4 advanced simple profile (ASP) including advanced coding tools like B-frames, quarterpel motion compensation and GMC.
Xvid has a flexible, low-level interface that makes it easy to integrate it into larger applications. There is further a plugin API by which the codec can be enhanced with extra functionality without touching the core code. We further provide integrations for most of the popular multimedia frameworks like DirectShow, VfW or Gstreamer.
The Xvid codec is developed as an open-source project with all code published under the GNU General Public License (GPL). The Xvid project is a community effort that benefits from the contributions of many people from all over the world. The Xvid Codec's entire code is GPL and other than typical system libraries it currently has no further external dependencies.
Xvid's best feature is the excellent picture quality it provides even at high compression ratios. We put major emphasis on achieving the highest possible picture quality and using the latest algorithms for outstanding detail-richness and image fidelity. The Xvid codec is especially suited for offline, two-pass coding to prepare video for storage or distribution but works well in live-streaming also.
The Xvid codec was primarily developed for x86 but can be compiled also to other platforms like Mac or ARM. The Xvid code base supports both 32-bit and 64-bit CPUs and can be compiled for many operating systems like Linux, Windows or Mac OS X. Consequently, the Xvid library is frequently used in third-party software players or video encoder applications on many platforms.
Due to extensive algorithmic optimizations and specific support for latest SIMD processor extensions like e.g. SSE3/SSE4 instructions, Xvid provides highest performance video de- and encoding on modern CPUs. Further, Xvid is designed to parallelize its work-load and thus make best use of modern multi-core CPUs. In result, it enables Ultra HD resolution video encoding easily on today's hardware.
The Xvid codec was created to promote the adoption of open standards, namely ISO MPEG-4 video, and in order to enable the interoperable creation and exchange of digital video between different software applications as well as among consumer electronics devices like DVD or Bluray players.
A major goal of our project is to stimulate further the creation of GPLed applications and to support the Free Software movement. Consequently, we publish the source code of the Xvid codec under the terms of the GNU General Public License, which ensures that derivative works must be distributed as a whole under the GPL as well.
By providing the source code of Xvid, we aim at creating a platform for students and interested engineers to exchange fresh ideas. The Xvid project aims at triggering innovation in the area of digital video processing. As of today, Xvid has become a subject of university lectures and got referenced in numerous scientific publications.
Since short after the Xvid project got founded, its code base has been further developed and maintained by a small team of about four to six core developers. All the main Xvid features as well as the design of the Xvid code and its interfaces are the result of this strong team effort.
In addition, the Xvid project receives also more sporadic contributions from many developers worldwide. These are often important bug fixes or ports of the Xvid code to new platforms.
The success of our Xvid project depends on your support. Any contribution you can make to the Xvid project is very welcome! New developers interested in joining the development of our xvidcore video codec library will definitely benefit from having some solid background in signal processing or at least be very comfortable with general C/C++ programming.
But even if you're not familiar with video coding algorithms or you're not even a programmer, there may still be possibilites to contribute: Test scripts need be written, documentation can always be improved, content needs be added to the website - there's always something to do!
As a three-step quick start:
As an interested developer or potential new contributor you should also join the xvid-devel mailinglist. Here, you can discuss your ideas with the Xvid developers or other knowledgeable fellow programmers. Also, just post any contributions or bug fixes that you have as a patch (in unified diff format) against the latest svn code to the list for review.
Have a question or an idea you'd like to discuss? Or maybe you even have a patch you'd like to contribute?
Then just subscribe to our developer mailinglist at firstname.lastname@example.org: