Codecs and containers

Related articles
Optical disc drive#Playback
GStreamer
ffmpeg
From
Wikipedia
:
A codec is a computer hardware or software component that encodes or decodes a data stream or signal.
In general, codecs are utilized by multimedia applications to encode or decode audio or video streams. In order to play encoded streams, users must ensure an appropriate codec is installed.
This article deals only with codecs and application backends; see
List of applications/Multimedia
for a list of media players (
MPlayer
,
mpv
and
VLC
are popular choices).
Requirements
Playing multimedia content requires two components:
A capable media player
The appropriate codec
It is not always necessary to explicitly install codecs if you have installed a media player.  For example,
MPlayer
pulls in a large number of codecs as dependencies, and also has codecs built in.
List of codecs
Audio
See also
Wikipedia:Comparison of audio coding formats
.
Lossless audio codecs
Apple Lossless
(ALAC)
— A lossless audio compression codec developed by Apple and deployed on all of its platforms and devices.
https://alac.macosforge.org/
||
alac-git
AUR
FLAC
— Free Lossless Audio Codec.
https://xiph.org/flac/
||
flac
WavPack
— Lossless audio compression format that also has a lossy
hybrid mode
.
https://www.wavpack.com/
||
wavpack
Lossy audio codecs
Format
Encode
Decode
AAC
#AAC
ATSC A/52
aften
AUR
a52dec
CELT
celt
AUR
MPEG-1
libmad
MP3
lame
Musepack
(MPC)
–
1
libmpcdec
Opus
opus
Vorbis
libvorbis
Speech codecs
AMR
opencore-amr
Speex
speex
mppenc is not packaged.
CELT
— Open, royalty-free lossy audio codec, optimized for low latency.
https://www.celt-codec.org/
||
celt
AUR
LAME
— MP3 encoder and graphical frame analyzer.
https://lame.sourceforge.io/
||
lame
liba52
— Free library for decoding
ATSC A/52
(Dolby Digital) streams (lossy).
https://liba52.sourceforge.io/
||
a52dec
libdca
— Free library for decoding DTS Coherent Acoustics streams.
https://www.videolan.org/developers/libdca.html
||
libdca
MAD
— High-quality MPEG audio decoder.
https://www.underbit.com/products/mad/
||
libmad
Musepack
(MPC)
— Open source lossy audio codec, designed for
transparency
.
https://musepack.net/
||
libmpcdec
opencore-amr
— Open source implementation of the Adaptive Multi Rate (AMR) speech codec.
https://sourceforge.net/projects/opencore-amr/
||
opencore-amr
Opus
— Open, royalty-free, lossy audio codec, designed for speech and general audio coding and low latency.
https://www.opus-codec.org/
||
opus
Speex
— Patent-free, lossy audio compression format designed for speech.
https://www.speex.org/
||
speex
Vorbis
— Open, patent-free, lossy audio codec.
https://xiph.org/vorbis/
||
libvorbis
AAC
From
Wikipedia
:
Advanced Audio Coding
(AAC) is a proprietary audio coding standard for lossy digital audio compression. Designed to be the successor of the MP3 format, AAC generally achieves better sound quality than MP3 at the same bit rate.
FAAC
— Proprietary AAC audio encoder.
https://faac.sourceforge.net/
||
faac
FAAD2
— ISO AAC audio decoder.
https://faac.sourceforge.net/
||
faad2
Fraunhofer FDK AAC
— OpenCORE Framework implementation Advanced Audio Coding (AAC) encoder. Modified library of Fraunhofer AAC decoder and encoder.
https://sourceforge.net/projects/opencore-amr/
||
libfdk-aac
(codec library)
fdkaac
(CLI frontend for libfdk-aac)
Nero AAC
— Nero AAC reference quality MPEG-4 and 3GPP audio codec. (deprecated)
https://www.nero.com/
||
neroaac-bin
AUR
Image codecs
JasPer
— Software-based implementation of the codec specified in the emerging JPEG-2000 Part-1 standard.
https://www.ece.uvic.ca/~frodo/jasper/
||
jasper
OpenJPEG
— Open source JPEG 2000 codec.
https://www.openjpeg.org/
||
openjpeg
AUR
WebP
— An image format employing both lossy and lossless compression. It is currently developed by Google.
https://developers.google.com/speed/webp/
||
libwebp
AV1 Image File Format (AVIF)
— Image format based on the AV1 video codec.
https://github.com/AOMediaCodec/libavif
||
libavif
High Efficiency Image File Format (HEIF)
— Image format based on the HEVC video codec. Often in a HEIC container.
https://github.com/strukturag/libheif
||
libheif
JPEG XL
— Royalty-free image format developed by the Joint Photographic Experts Group which aims for broad usage, capable of re-encoding JPEGs while avoiding generation loss.
https://jpeg.org/jpegxl/
||
libjxl
Video codecs
See also
Wikipedia:Comparison of video codecs
.
Format
Codec Libraries
AV1
aom
,
dav1d
(decode),
rav1e
(encode),
svt-av1
AVS2
davs2
AUR
(decode)
Daala
daala-git
AUR
Dirac
schroedinger
DV
libdv
H.265
x265
libde265
H.264
x264
MPEG-1
libmpeg2
(decode)
MPEG-2
MPEG-4
Xvid
(
xvidcore
)
Theora
libtheora
VP8
,
VP9
libvpx
AV1
— AOMedia Video 1 (AV1) is a successor codec to Google's VP9, Mozilla's Daala, Cisco's Thor.
aom
is the reference implementation of both encoding and decoding.
dav1d
is the performance focused decoder.
rav1e
is performance focused encoder. Most benchmark show better performances with svt-av1 than rav1e.
https://aomediacodec.github.io/av1-spec/
||
aom
,
dav1d
,
rav1e
,
svt-av1
Daala
— Research video codec under development by the Xiph.Org Foundation and sponsored by the Mozilla Foundation. The goal of the project is to provide a free to implement, use and distribute digital media format and reference implementation with technical performance superior to h.265.
https://www.xiph.org/daala/
||
daala-git
AUR
libde265
— Open source implementation of the h.265 video codec.
https://github.com/strukturag/libde265
||
libde265
libdv
— The Quasar DV codec (libdv) is a software codec for DV video.
https://libdv.sourceforge.net/
||
libdv
libmpeg2
— Library for decoding MPEG-1 and MPEG-2 video streams.
https://libmpeg2.sourceforge.io/
||
libmpeg2
Schrödinger
— Advanced royalty-free video compression format designed for a wide range of uses, from delivering low-resolution web content to broadcasting HD and beyond, to near-lossless studio editing.
https://launchpad.net/schroedinger/
||
schroedinger
Theora
— Open video codec developed by the Xiph.org.
https://www.theora.org/
||
libtheora
VP9
— High-quality, open video format for the web that's freely available to everyone. Improved version of earlier
VP8
codec.
https://www.webmproject.org
||
libvpx
x264
— Free library for encoding H264/AVC video streams.
https://www.videolan.org/developers/x264.html
||
x264
x265
— Open-source project and free application library for encoding video streams into the H.265/High Efficiency Video Coding (HEVC) format.
https://www.x265.org/
||
x265
Xvid
— Open source MPEG-4 video codec.
https://www.xvid.com/
||
xvidcore
Container format tools
See also
Wikipedia:Comparison of video container formats
.
MKVToolNix
— Set of tools to create, edit and inspect Matroska files.
https://mkvtoolnix.download/
||
mkvtoolnix-cli
,
mkvtoolnix-gui
MP4Joiner
— A collection of GUI tools to manipulate MP4 files (MP4Joiner, MP4Splitter).
https://www.mp4joiner.org/
||
mp4joiner
AUR
OGMtools
— Information, extraction or creation for OGG media streams.
https://www.bunkus.org/videotools/ogmtools
||
ogmtools
Backends
GStreamer
From
https://gstreamer.freedesktop.org/
:
GStreamer is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing.
Simply, GStreamer is a
backend
or
framework
utilized by many media applications. See
GStreamer
article.
xine
From
https://sourceforge.net/projects/xine/
:
xine is a free multimedia player. It plays back CDs, DVDs, BluRays and VCDs. It also decodes multimedia files like AVI, MOV, WMV, and MP3 from local disk drives, and displays multimedia streamed over the Internet.
As an alternative to GStreamer, many media players can be configured to utilize the xine backend provided by
xine-lib
.
Note that the xine project itself provides a capable video player,
xine-ui
.
libavcodec
libavcodec
is part of the
FFmpeg
project. It includes a large number of video and audio codecs. The libavcodec codecs are included with media players such as
MPlayer
and
VLC
, so you may not need to install the
ffmpeg
package itself.
Tips and tricks
No H264, mpg4 or Musepack (.mpc) in Totem Player
If you see the "The H264 plugin is missing" warning with Totem media player,
install
gst-libav
.
No H264 in Parole Player
If you see the "Parole needs H.264 decoder to play this file" warning with Parole media player,
install
gst-libav
.
No H.264 in VLC
If you see the warning
VLC could not decode the format "h264" (H264 - MPEG-4 AVC (part 10))
install
vlc-plugin-ffmpeg
.