Codecs and containers

From Wikipedia, "a codec is a device or computer program capable of encoding and/or decoding a digital 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-gitAUR
  • FLAC Free Lossless Audio Codec.
https://xiph.org/flac/ || flac
https://www.wavpack.com/ || wavpack

Lossy audio codecs

FormatEncodeDecode
AAC#AAC
ATSC A/52aftenAURa52dec
CELTceltAUR
MPEG-1 libmad
MP3lame
Musepack (MPC)1libmpcdec
Opusopus
Vorbislibvorbis
Speech codecs
AMRopencore-amr
Speexspeex
  1. mppenc is not packaged.
  • CELT Open, royalty-free lossy audio codec, optimized for low latency.
https://www.celt-codec.org/ || celtAUR
  • 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
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-binAUR

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/ || openjpegAUR
  • WebP An image format employing both lossy and lossless compression. It is currently developed by Google.
https://developers.google.com/speed/webp/ || libwebp
https://github.com/AOMediaCodec/libavif || libavif
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.

FormatCodec Libraries
AV1aom, dav1d (decode), rav1e (encode), svt-av1
AVS2davs2AUR (decode)
Daaladaala-gitAUR
Diracschroedinger
DVlibdv
H.265x265
libde265
H.264x264
MPEG-1libmpeg2 (decode)
MPEG-2
MPEG-4Xvid (xvidcore)
Theoralibtheora
VP8, VP9libvpx
  • 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-gitAUR
  • 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/ || mp4joinerAUR
  • 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.

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.