x264 is a
free and open-source
Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
software library
In computing, a library is a collection of resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled functions and classes, or a library can ...
and a
command-line utility developed by
VideoLAN for encoding video streams into the
H.264/MPEG-4 AVC video coding format
A video coding format (or sometimes video compression format) is a content representation format of digital video content, such as in a data file or bitstream. It typically uses a standardized video compression algorithm, most commonly based on ...
.
It is released under the terms of the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
.
History
x264 was originally developed by Laurent Aimar, who stopped development in 2004 after being hired by
ATEME.
Loren Merritt then took over development. Later, in 2008, Fiona Glaser joined the project. They both stopped contributing in 2014. Today, x264 is primarily developed by Anton Mitrofanov and Henrik Gramner.
Capabilities
x264 provides a command line interface as well as an
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
. The former is used by many
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
s, such as Staxrip
and MeGUI.
The latter is used by many other interfaces, such as
HandBrake and
FFmpeg
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 vide ...
.
x264 implements a large number of features compared to other H.264 encoders.
x264 contains some
psychovisual enhancements which aim to increase the
subjective video quality
Subjective video quality is video quality as experienced by humans. It is concerned with how video is perceived by a viewer (also called "observer" or "subject") and designates their opinion on a particular video sequence. It is related to the fie ...
of the encoded video.
* Adaptive quantisation in two modes using
VAQ. The second mode, a later addition, adapts the strength per frame in an attempt to improve the quality.
* Psychovisual
rate–distortion optimization which attempts to maintain a similar complexity. The complexity is measured using a combination of
sum-of-squares optimization (SSD) and
sum of absolute transformed differences (SATD).
* Macroblock-tree rate control, which controls the quality by tracking how often parts of the frame are used for predicting future frames.
x264 has won awards in the following codec comparisons:
* Third Annual MSU MPEG-4 AVC/H.264 Video Codec Comparison, 2006
* Fourth Annual MSU MPEG-4 AVC/H.264 Video Codec Comparison, 2007
* Fifth Annual MSU MPEG-4 AVC/H.264 Video Codec Comparison, 2009
* Sixth Annual MSU MPEG-4 AVC/H.264 Video Codec Comparison, 2010
* Seventh Annual MSU MPEG-4 AVC/H.264 Video Codec Comparison, 2011
* Eighth Annual MSU MPEG-4 AVC/H.264 Video Codec Comparison, 2012
x264 has
SIMD
Single instruction, multiple data (SIMD) is a type of parallel computer, parallel processing in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneousl ...
assembly code acceleration on
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
,
PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
(using
AltiVec), and
ARMv7
ARM (stylised in lowercase as arm, formerly an acronym for Advanced RISC Machines and originally Acorn RISC Machine) is a family of reduced instruction set computer, RISC instruction set architectures (ISAs) for central processing unit, com ...
(using
NEON
Neon is a chemical element; it has symbol Ne and atomic number 10. It is the second noble gas in the periodic table. Neon is a colorless, odorless, inert monatomic gas under standard conditions, with approximately two-thirds the density of ...
) platforms.
x264 is able to use Periodic Intra Refresh instead of keyframes, which enables each frame to be capped to the same size enabling each slice to be immediately transmitted in a single UDP or TCP packet and on arrival immediately decoded.
Periodic Intra Refresh can replace keyframes by using a column of intra blocks that move across the video from one side to the other, thereby "refreshing" the image. In effect, instead of a big keyframe, the keyframe is "spread" over many frames. The video is still seekable: a special header, called the SEI Recovery Point, tells the decoder to "start here, decode X frames, and then start displaying the video." This hides the refresh effect from the user while the frame loads. Motion vectors are restricted so that blocks on one side of the refresh column don't reference blocks on the other side, effectively creating a demarcation line in each frame.
In April 2010, the x264 project announced full Blu-ray compliant video encoding capability making x264 the first free Blu-ray compliant software H.264 encoder. x264 has always had the ability to create video streams that are playable on most Blu-ray devices. However, it was up to the user to choose appropriate conversion settings. The default x264 preset chooses adequate compatibility for Blu-ray players but it is now possible to choose more complex conversion settings while simply maintaining compatibility by explicitly enabling Blu-ray compatibility mode. Blu-ray compatibility can be useful when striving for cross device compatibility, especially in the realm of
high definition hardware media players.
x264 has been used to author commercial Blu-ray Disc titles released by
Warner Bros.
Tandberg controversy
In November 2010, Fiona Glaser, an x264 developer, published information in which she claims that one of
Tandberg Telecom's (a
Cisco Systems
Cisco Systems, Inc. (using the trademark Cisco) is an American multinational corporation, multinational digital communications technology conglomerate (company), conglomerate corporation headquartered in San Jose, California. Cisco develops, m ...
subsidiary)
patent application
A patent application is a request pending at a patent office for the grant of a patent for an invention described in the patent specification and a set of one or more claim (patent), claims stated in a formal document, including necessary officia ...
s from December 2008 contains a step-by-step description of an algorithm she committed to the x264 codebase around two months earlier. This was relayed by media, which remarked that the company who filed the patent was following the x264 project IRC development channel and was known to the project developers, leading to Tandberg claiming that they discovered the algorithm independently.
x264 frontends
*
Avidemux
Avidemux is a free and open-source software application for non-linear video editing and transcoding multimedia files. The developers intend it as "a simple tool for simple video processing tasks" and to allow users "to do elementary things in ...
*
FFmpeg
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 vide ...
*
HandBrake
*
OpenShot
*
Gstreamer
GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
*
MediaCoder
* MeGUI
*
MEncoder
* RipBot264
*
SUPER
Super may refer to:
Computing
* SUPER (computer program), or Simplified Universal Player Encoder & Renderer, a video converter/player
* Super (computer science), a keyword in object-oriented programming languages
* Super key (keyboard butto ...
* StaxRip
*
Telestream Episode
*
TMPGEnc Video Mastering Works 5
*
Harmonic
In physics, acoustics, and telecommunications, a harmonic is a sinusoidal wave with a frequency that is a positive integer multiple of the ''fundamental frequency'' of a periodic signal. The fundamental frequency is also called the ''1st har ...
Rhozet Workflow System
See also
*
MPEG-4
MPEG-4 is a group of international standards for the compression of digital audio and visual data, multimedia systems, and file storage formats. It was originally introduced in late 1998 as a group of audio and video coding formats and related ...
– a standard of various MPEG formats including video, audio, subtitle, and interaction
*
Doom9 – a forum for video creation help and technical discussions
*
x265 – open source HEVC/H.265 encoder that has licensed the rights to use the x264 source code
References
External links
*
{{Compression software
C (programming language) libraries
Free software primarily written in assembly language
Free video codecs
Free video software
pt:H.264#x264