Xvid Codec – the MPEG4 video codec built by the open-source community.The Xvid Codec is a community effort and implements code to efficiently compress and decompress digital video.

  • Strong Compression. Reduces video filesize for quick network transmission.
  • Wide Support. Works with VirtualDub, Windows Media Player and more apps.
  • GPL Licensed. All code is published under the GNU GPL license.

Main Features

MPEG-4 Video Codec

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.

Friendly and Versatile APIs

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.

Open-Source under GPL

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.

Best Picture Quality

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.

Cross-platform

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.

Great Performance

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.

Project Goals

Interoperability and Standards

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.

Promotion of Free Software

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.

Supporting Scientific Research

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.

Participation

Success by Team Effort

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.

We need Your Help!

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!

Getting Started...

As a three-step quick start:

  • 1. Get the Code: As your first step, you should get the Xvid source code. More instructions are in our Source section.
  • 2. Compile It: To get familiar with the code, begin with compiling the xvidcore library and the xvid_encraw and xvid_decraw examples (refer to the "/doc" folder for more info).
  • 3. Try the Examples: Once the code is compiled, start playing with it. Studying the source code of xvid_encraw, xvid_decraw as well as the Xvid API (xvid.h) is your best starting point.

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.

Developer Mailinglist

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 xvid-devel@xvid.org: