Xvid

Last updated
Xvid
Initial release2001;22 years ago (2001) (as XviD)
Stable release 1.3.7 (December 28, 2019;3 years ago (2019-12-28)) [±]
Preview release SVN [±]
Repository websvn.xvid.org
Written in C
Operating system Cross-platform
Size 11 MB
Standard(s)MPEG-4 ASP
Type Video codec
License GNU General Public License, version 2
(SPDX identifier: GPL-2.0-or-later)
Website www.xvid.com

Xvid (formerly "XviD") is a video codec library following the MPEG-4 video coding standard, specifically MPEG-4 Part 2 Advanced Simple Profile (ASP). It uses ASP features such as b-frames, global and quarter pixel motion compensation, lumi masking, trellis quantization, and H.263, MPEG and custom quantization matrices.

Contents

Xvid is a primary competitor of the DivX Pro Codec. In contrast with the DivX codec, which is proprietary software developed by DivX, Inc., Xvid is free software distributed under the terms of the GNU General Public License. [1] This also means that unlike the DivX codec, which is only available for a limited number of platforms, [2] Xvid can be used on all platforms and operating systems for which the source code can be compiled.

History

In January 2001, DivXNetworks founded OpenDivX as part of Project Mayo which was intended to be a home for open source multimedia projects. OpenDivX was an open-source MPEG-4 video codec based on a stripped-down version of the MoMuSys reference MPEG-4 encoder. The source code, however, was placed under a restrictive license and only members of the DivX Advanced Research Centre (DARC) had write access to the project's CVS. In early 2001, DARC member Sparky wrote an improved version of the encoding core called encore2. This was updated several times before, in April, it was removed from CVS without warning. The explanation given by Sparky was "We (our bosses) decided that we are not ready to have it in public yet." [3]

In July 2001, developers started complaining about a lack of activity in the project; the last CVS commit was several months old, bugfixes were being ignored, and promised documentation had not been written. Soon after, DARC released a beta version of their closed-source commercial DivX 4 codec, which was based on encore2, saying that "what the community really wants is a Winamp, not a Linux." [4] It was after this that a fork of OpenDivX was created, using the latest version of encore2 that was downloaded before it was removed. Since then, all the OpenDivX code has been replaced and Xvid has been published under the GNU General Public License.

Patent issues

As an implementation of MPEG-4 Part 2, Xvid uses many patented technologies. [5] For this reason, Xvid 0.9.x versions were not licensed in countries where these software patents are recognized. With the 1.0.x releases, a GNU GPL v2 license is used with no explicit geographical restriction. However, the legal usage of Xvid may still be restricted by local laws.[ citation needed ] Fortunately, the Fedora Project, a community backed by Red Hat, has imported xvidcore to its repositories on January 24, 2023. [6] The last US patents expired in November 2023. The only patents left worldwide are in Brazil.

Sigma Designs controversy

In July 2002, Sigma Designs released an MPEG-4 video codec called the REALmagic MPEG-4 Video Codec. Before long, people testing this new codec found that it contained considerable portions of Xvid code. Sigma Designs was contacted and confirmed that a programmer had based REALmagic on Xvid, but assured that all GPL code would be replaced to avoid copyright infringement. When Sigma Designs released the supposedly rewritten REALmagic codec, the Xvid developers immediately disassembled it and concluded that it still contained Xvid code, only rearranged in an attempt to disguise its presence. The Xvid developers decided to stop work and go public to force Sigma Designs to respect the terms of the GPL. After articles were published in Slashdot [7] and The Inquirer, [8] in August 2002 Sigma Designs agreed to publish their source code. [9]

Playing Xvid encoded files

Encoder and decoder configuration dialog Xvid config in Wine.png
Encoder and decoder configuration dialog

Xvid is not a video format; it is a program for compressing to and decompressing from (hence the name codec ) the MPEG-4 ASP format. Since Xvid uses MPEG-4 Advanced Simple Profile (ASP) compression, video encoded with Xvid is MPEG-4 ASP video (not "Xvid video"), and can therefore theoretically be decoded with all ASP-compliant decoders. This includes a large number of media players and decoders based on libavcodec (such as MPlayer, VLC, ffdshow or Perian). As of 2016, xvid.com carries binaries for using the codec. [10] However, early versions of the codec had a bug that prevented XviD-encoded files from being decoded with DivX, even when they were encoded using the DivX fourcc.

Xvid encoded files can be written to a CD or DVD and played in some (but not all) DivX compatible DVD players and media players. However, Xvid can optionally encode video with advanced MPEG-4 features that most DivX Certified set-top players do not support. Files encoded with global motion compensation, Qpel, MPEG quantization, multiple B-frames or files that exceed the Video buffering verifier limitations may not play back properly on DivX Certified hardware devices.

For example, Xvid specifies three warp points for its implementation of global motion compensation as opposed to the single warp point implementation of DivX. Enabling some of the more advanced encoding features can compromise player compatibility. Some issues exist with the custom quantization matrices used in tools such as AutoGK that automate encoding with Xvid. This can (depending on the decoder chipset of the set-top player in question) produce videos that have unstable playback and artifacts. However, most recent model DivX compatible DVD players have improved support for custom quantization matrices.

Encoding applications

Operating systemsSoftwareComment
Windows VirtualDub, DVDx, xvid encraw, AutoGK, MeGUI etc.And all other applications that support encoding through the VfW framework.
Mac OS X, Linux, BSD, and Windows MEncoder, Avidemux, VLC, [11] WinFF (graphical front-end based on FFmpeg), etc.These platform and framework independent applications access the Xvid library directly.

See also

Related Research Articles

<span class="mw-page-title-main">Video codec</span> Digital video processing

A video codec is software or hardware that compresses and decompresses digital video. In the context of video compression, codec is a portmanteau of encoder and decoder, while a device that only compresses is typically called an encoder, and one that only decompresses is a decoder.

<span class="mw-page-title-main">DivX</span> Brand of video codec products by DivX, LLC

DivX is a brand of video codec products developed by DivX, LLC. There are three DivX codecs: the original MPEG-4 Part 2 DivX codec, the H.264/MPEG-4 AVC DivX Plus HD codec and the High Efficiency Video Coding DivX HEVC Ultra HD codec. The most recent version of the codec itself is version 6.9.2, which is several years old. New version numbers on the packages now reflect updates to the media player, converter, etc.

<span class="mw-page-title-main">FFmpeg</span> Multimedia framework

FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing of video and audio files. It is widely used for format transcoding, basic editing, video scaling, video post-production effects and standards compliance.

<span class="mw-page-title-main">VideoLAN</span> Non-profit organization developing software

VideoLAN is a non-profit organization which develops software for playing video and other media formats. It originally developed two programs for media streaming, VideoLAN Client (VLC) and VideoLAN Server (VLS), but most of the features of VLS have been incorporated into VLC, with the result renamed VLC media player.

<span class="mw-page-title-main">VLC media player</span> Free and open-source media-player and streaming-media-server

VLC media player is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project. VLC is available for desktop operating systems and mobile platforms, such as Android, iOS and iPadOS. VLC is also available on digital distribution platforms such as Apple's App Store, Google Play, and Microsoft Store.

ffdshow Open-source unmaintained codec library

ffdshow is an open-source unmaintained codec library that is mainly used for decoding of video in the MPEG-4 ASP and H.264/MPEG-4 AVC video formats, but it supports numerous other video and audio formats as well. It is free software released under GNU General Public License 2.0, runs on Windows, and is implemented as a Video for Windows (VFW) codec and a DirectShow filter.

x264 is a free and open-source software library and a command-line utility developed by VideoLAN for encoding video streams into the H.264/MPEG-4 AVC video coding format. It is released under the terms of the GNU General Public License.

MPEG-4 Part 2, MPEG-4 Visual is a video compression format developed by the Moving Picture Experts Group (MPEG). It belongs to the MPEG-4 ISO/IEC standards. It uses block-wise motion compensation and a discrete cosine transform (DCT), similar to previous standards such as MPEG-1 Part 2 and H.262/MPEG-2 Part 2.

These tables compare features of multimedia container formats, most often used for storing or streaming digital video or digital audio content. To see which multimedia players support which container format, look at comparison of media players.

FAAC or Freeware Advanced Audio Coder is a software project which includes the AAC encoder FAAC and decoder FAAD2. It supports MPEG-2 AAC as well as MPEG-4 AAC. It supports several MPEG-4 Audio object types, file formats, multichannel and gapless encoding/decoding and MP4 metadata tags. The encoder and decoder is compatible with standard-compliant audio applications using one or more of these object types and facilities. It also supports Digital Radio Mondiale.

Global motion compensation(GMC) is a motion compensation technique used in video compression to reduce the bitrate required to encode video. It is most commonly used in MPEG-4 ASP, such as with the DivX and Xvid codecs.

Flash Video is a container file format used to deliver digital video content over the Internet using Adobe Flash Player version 6 and newer. Flash Video content may also be embedded within SWF files. There are two different Flash Video file formats: FLV and F4V. The audio and video data within FLV files are encoded in the same way as SWF files. The F4V file format is based on the ISO base media file format, starting with Flash Player 9 update 3. Both formats are supported in Adobe Flash Player and developed by Adobe Systems. FLV was originally developed by Macromedia. In the early 2000s, Flash Video was the de facto standard for web-based streaming video. Users include Hulu, VEVO, Yahoo! Video, metacafe, Reuters.com, and many other news providers.

Quarter-pixel motion(also known as Q-pel motion or Qpel motion) refers to using a quarter of the distance between pixels as the motion vector precision for motion estimation and motion compensation in video compression schemes. It is used in many modern video coding formats such as MPEG-4 ASP, H.264/AVC, and HEVC. Though higher precision motion vectors take more bits to encode, they can sometimes result in more efficient compression overall, by increasing the quality of the prediction signal.

Α video codec is software or a device that provides encoding and decoding for digital video, and which may or may not include the use of video compression and/or decompression. Most codecs are typically implementations of video coding formats.

Video Acceleration API (VA-API) is an open source application programming interface that allows applications such as VLC media player or GStreamer to use hardware video acceleration capabilities, usually provided by the graphics processing unit (GPU). It is implemented by the free and open-source library libva, combined with a hardware-specific driver, usually provided together with the GPU driver.

X-Video Bitstream Acceleration (XvBA), designed by AMD Graphics for its Radeon GPU and APU, is an arbitrary extension of the X video extension (Xv) for the X Window System on Linux operating-systems. XvBA API allows video programs to offload portions of the video decoding process to the GPU video-hardware. Currently, the portions designed to be offloaded by XvBA onto the GPU are currently motion compensation (MC) and inverse discrete cosine transform (IDCT), and variable-length decoding (VLD) for MPEG-2, MPEG-4 ASP, MPEG-4 AVC (H.264), WMV3, and VC-1 encoded video.

<span class="mw-page-title-main">WebM</span> Audiovisual media file format

WebM is an audiovisual media file format. It is primarily intended to offer a royalty-free alternative to use in the HTML5 video and the HTML5 audio elements. It has a sister project, WebP, for images. The development of the format is sponsored by Google, and the corresponding software is distributed under a BSD license.

<span class="mw-page-title-main">MediaInfo</span> Cross-platform and open-source program that displays technical information about media files.

MediaInfo is a free, cross-platform and open-source program that displays technical information about media files, as well as tag information for many audio and video files. It is used in many programs such as XMedia Recode, MediaCoder, eMule, and K-Lite Codec Pack. It can be easily integrated into any program using a supplied MediaInfo.dll. MediaInfo supports popular video formats as well as lesser known or emerging formats. In 2012 MediaInfo 0.7.57 was also distributed in the PortableApps format.

x265 HEVC/H.265 encoder

x265 is an encoder for creating digital video streams in the High Efficiency Video Coding (HEVC/H.265) video compression format developed by the Joint Collaborative Team on Video Coding (JCT-VC). It is available as a command-line app or a software library, under the terms of GNU General Public License (GPL) version 2 or later; however, customers may request a commercial license.

References

  1. "Questions and Answers" . Retrieved November 4, 2016. Xvid is Free Software and published under the GNU GPL license.
  2. "DivX Software". DivX. Retrieved November 4, 2016.
  3. Sibaud, Benedict, ed. (June 11, 2004). "Interview de l'équipe XviD et sortie de la version 1.0.1" [Interview of the XviD team and release of version 1.0.1]. linuxfr.org (in French). Archived from the original on November 5, 2016. Retrieved November 5, 2016. In March 2001, a rewritten encoder library was committed to the CVS (by a DivXNetworks staff). The rewritten library was removed shortly after, with DivXNetworks citing that "We (our bosses) decided that we are not ready to have it in public yet."
  4. Lai, Hongli (August 17, 2001). "[vorbis] Vorbis ACM codec". Archived from the original on April 28, 2016. Retrieved November 4, 2016.
  5. "MPEG-4 Visual Patent Portfolio License" (PDF). July 1, 2008. Archived from the original (PDF) on November 20, 2008. Retrieved November 5, 2016.
  6. "Commit - rpms/xvidcore - c2e9c5f2f1892766720b6f2eda245112c17049bb - src.fedoraproject.org". src.fedoraproject.org. Retrieved 13 August 2023.
  7. michael (August 22, 2002). "Sigma Designs Accused of Copyright Infringement". Slashdot. Archived from the original on June 10, 2016.
  8. Magee, Mike (August 22, 2002). "XVID asks Sigma to stop copyright breach". The Inquirer. Archived from the original on March 5, 2016. Retrieved November 5, 2016.{{cite web}}: CS1 maint: unfit URL (link)
  9. Lowe, Ken; Porter, Stephanie (August 22, 2002). "SIGMA MAKES SOURCE CODE AVAILABLE FOR ITS MPEG-4 VIDEO CODEC" (PDF). Sigma Designs. California, United States. Archived from the original (PDF) on March 14, 2006. Retrieved November 5, 2016.
  10. "Download". Xvid. Retrieved November 3, 2016.
  11. Barranco, Iñigo Lopez (November 25, 2004). "[vlc] Can VLC play MPEG2-ES a live.com RTP streaming?". Archived from the original on March 5, 2016. Retrieved November 5, 2016.