Difference between revisions of "Codecs"

From ArchWiki
Jump to: navigation, search
(GStreamer: pkg not available anymore)
(Formal codec page.)
Line 23: Line 23:
 
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.
 
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 [[Common Applications#Multimedia|Common Applications]] for a list of media players ([[MPlayer]] and [[VLC media player|VLC]] are popular choices).
+
This article deals only with codecs and application backends; see [[List of Applications#Multimedia|List of Applications]] for a list of media players ([[MPlayer]], [[mpv]] and [[VLC]] are popular choices).
  
 
== Requirements ==
 
== Requirements ==
Line 34: Line 34:
 
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.
 
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.
  
== Common codecs ==
+
== List of codecs ==
  
* {{Pkg|a52dec}}: liba52 is a free library for decoding ATSC A/52 streams
+
* {{App|[[Wikipedia:ALAC|ALAC]]|Data compression method which reduces the size of audio files with no loss of information.|https://alac.macosforge.org/|{{AUR|alac-svn}}}}
* {{Pkg|faac}}: FAAC is an AAC audio encoder
+
* {{App|[[Wikipedia:CELT|CELT]]|Compression algorithm for audio. Like MP3, Vorbis, and AAC it is suitable for transmitting music with high quality. Unlike these formats CELT imposes very little delay on the signal, even less than is typical for speech centric formats like Speex, GSM, or G.729. |http://www.celt-codec.org/|{{Pkg|celt}}}}
* {{Pkg|faad2}}: ISO AAC audio decoder
+
* {{App|[[Wikipedia:Daala|Daala]]|New video compression technology. The effort is a collaboration between Mozilla Foundation, Xiph.Org Foundation and other contributors. 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/|{{AUR|libdaala-git}}}}
* {{Pkg|flac}}: Free Lossless Audio Codec
+
* {{App|[[Wikipedia:FAAC|FAAC]]|Proprietary AAC audio encoder.|http://www.audiocoding.com/faac.html|{{Pkg|faac}}}}
* {{Pkg|jasper}}: A software-based implementation of the codec specified in the emerging JPEG-2000 Part-1 standard
+
* {{App|[[Wikipedia:FAAD2|FAAD2]]|ISO AAC audio decoder.|http://www.audiocoding.com/faad2.html|{{Pkg|faad2}}}}
* {{Pkg|lame}}: An MP3 encoder and graphical frame analyzer
+
* {{App|[[Wikipedia:FLAC|FLAC]]|Free Lossless Audio Codec.|https://xiph.org/flac/|{{Pkg|flac}}}}
* {{Pkg|libdca}}: Free library for decoding DTS Coherent Acoustics streams
+
* {{App|[[Wikipedia:FAAD2|Fraunhofer FDK AAC]]|Complete, high-quality audio solution to Android (and Linux) users.|http://www.iis.fraunhofer.de/en/bf/amm/implementierungen/fdkaaccodec.html|{{AUR|libfdk-aac-git}}}}
* {{Pkg|libdv}}: The Quasar DV codec (libdv) is a software codec for DV video
+
* {{App|[[Wikipedia:Musepack|Musepack]]|Audio compression format with a strong emphasis on high quality. It's not lossless, but it is designed for transparency, so that you won't be able to hear differences between the original wave file and the much smaller MPC file. It is based on the MPEG-1 Layer-2 / MP2 algorithms, but since 1997 it has rapidly developed and vastly improved and is now at an advanced stage in which it contains heavily optimized and patentless code.|https://xiph.org/flac/|{{Pkg|libmpcdec}}}}
* {{Pkg|libmad}}: A high-quality MPEG audio decoder
+
* {{App|[[Wikipedia:JasPer|JasPer]]|Software-based implementation of the codec specified in the emerging JPEG-2000 Part-1 standard.|http://www.ece.uvic.ca/~frodo/jasper/|}}{{Pkg|jasper}}
* {{Pkg|libmpeg2}}: libmpeg2 is a library for decoding MPEG-1 and MPEG-2 video streams
+
* {{App|[[Wikipedia:LAME|LAME]]|MP3 encoder and graphical frame analyzer.|http://lame.sourceforge.net/|{{Pkg|lame}}}}
* {{Pkg|libtheora}}: An open video codec developed by the Xiph.org
+
* {{App|liba52|Free library for decoding ATSC A/52 streams.|http://liba52.sourceforge.net/|{{Pkg|a52dec}}}}
* {{Pkg|libvorbis}}: Vorbis codec library
+
* {{App|[[Wikipedia:libdca|libdca]]|Free library for decoding DTS Coherent Acoustics streams.|https://www.videolan.org/developers/libdca.html|{{Pkg|libdca}}}}
* {{Pkg|libxv}}: X11 Video extension library
+
* {{App|libde265|Open source implementation of the h.265 video codec.|https://github.com/strukturag/libde265|{{AUR|libde265}} {{AUR|libde265}}}}
* {{Pkg|opus}}: An open audio codec developed by the Xiph.org
+
* {{App|[[Wikipedia:DV|libdv]]|The Quasar DV codec (libdv) is a software codec for DV video.|http://libdv.sourceforge.net/|{{Pkg|libdv}}}}
* {{Pkg|wavpack}}: Audio compression format with lossless, lossy, and hybrid compression modes
+
* {{App|[[Wikipedia:libmpeg2|libmpeg2]]|Library for decoding MPEG-1 and MPEG-2 video streams.|http://libmpeg2.sourceforge.net/|{{Pkg|libmpeg2}}}}
* {{Pkg|x264}}: Free library for encoding H264/AVC video streams
+
* {{App|libxv|X11 Video extension library.|http://www.x.org|{{Pkg|libxv}}}}
* {{Pkg|xvidcore}}: XviD is an open source MPEG-4 video codec
+
* {{App|[[Wikipedia:libmad|MAD]]|High-quality MPEG audio decoder.|http://www.underbit.com/products/mad/|{{Pkg|libmad}}}}
 +
* {{App|[[Wikipedia:AAC|Nero AAC]]|AAC audio codec (decode/encode/tag) all-in-one.|http://www.nero.com/eng/company/about-nero/nero-aac-codec.php|{{AUR|neroaac}}}}
 +
* {{App|[[Wikipedia:Adaptive Multi-Rate audio codec|opencore-amr]]|Open source implementation of the Adaptive Multi Rate (AMR) speech codec.|http://sourceforge.net/projects/opencore-amr/|{{Pkg|opencore-amr}}}}
 +
* {{App|[[Wikipedia:Speex|Speex]]|Patent-free audio compression format designed for speech.|http://www.speex.org/|{{Pkg|speex}}}}
 +
* {{App|[[Wikipedia:Theora|Theora]]|Open video codec developed by the Xiph.org.|http://www.theora.org/|{{Pkg|libtheora}}}}
 +
* {{App|[[Wikipedia:Vorbis|Vorbis]]|Completely open, patent-free, professional audio encoding and streaming technology.|http://www.vorbis.com/|{{Pkg|libvorbis}}}}
 +
* {{App|[[Wikipedia:libvpx|libvpx]]|High-quality, open video format for the web that's freely available to everyone.|http://www.webmproject.org|{{Pkg|libvpx}} {{AUR|libvpx-git}}}}
 +
* {{App|[[Wikipedia:Opus (audio codec)|Opus]]|Totally open, royalty-free, highly versatile audio codec. Opus is unmatched for interactive speech and music transmission over the Internet, but is also intended for storage and streaming applications. It is standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.|http://www.opus-codec.org/|{{Pkg|opus}} {{AUR|opus-git}}}}
 +
* {{App|[[Wikipedia:Dirac (video compression format)|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. |http://www.audiocoding.com/faac.html|{{Pkg|schroedinger}}}}
 +
* {{App|[[Wikipedia:WavPack|WavPack]]|Audio compression format with lossless, lossy, and hybrid compression modes.|http://www.wavpack.com/|{{Pkg|wavpack}}}}
 +
* {{App|[[Wikipedia:x264|x264]]|Free library for encoding H264/AVC video streams.|https://www.videolan.org/developers/x264.html|{{Pkg|x264}} {{AUR|x264-git}}}}
 +
* {{App|[[Wikipedia:x265|x265]]|Open-source project and free application library for encoding video streams into the H.265/High Efficiency Video Coding (HEVC) format.|http://x265.org/|{{AUR|x265}} {{AUR|x265-hg}}}}
 +
* {{App|[[Wikipedia:XviD|XviD]]|Open source MPEG-4 video codec.|http://www.xvid.org/|{{Pkg|xvidcore}}}}
  
 
== Backends ==
 
== Backends ==

Revision as of 20:38, 24 October 2013

Summary help replacing me
An overview of codec packages available for Arch Linux.
Related
DVD Playing
GStreamer
MPlayer
VLC media player

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 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

  • ALAC — Data compression method which reduces the size of audio files with no loss of information.
https://alac.macosforge.org/ || alac-svnAUR
  • CELT — Compression algorithm for audio. Like MP3, Vorbis, and AAC it is suitable for transmitting music with high quality. Unlike these formats CELT imposes very little delay on the signal, even less than is typical for speech centric formats like Speex, GSM, or G.729.
http://www.celt-codec.org/ || celt
  • Daala — New video compression technology. The effort is a collaboration between Mozilla Foundation, Xiph.Org Foundation and other contributors. 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/ || libdaala-gitAUR
  • FAAC — Proprietary AAC audio encoder.
http://www.audiocoding.com/faac.html || faac
  • FAAD2 — ISO AAC audio decoder.
http://www.audiocoding.com/faad2.html || faad2
  • FLAC — Free Lossless Audio Codec.
https://xiph.org/flac/ || flac
  • Fraunhofer FDK AAC — Complete, high-quality audio solution to Android (and Linux) users.
http://www.iis.fraunhofer.de/en/bf/amm/implementierungen/fdkaaccodec.html || libfdk-aac-gitAUR
  • Musepack — Audio compression format with a strong emphasis on high quality. It's not lossless, but it is designed for transparency, so that you won't be able to hear differences between the original wave file and the much smaller MPC file. It is based on the MPEG-1 Layer-2 / MP2 algorithms, but since 1997 it has rapidly developed and vastly improved and is now at an advanced stage in which it contains heavily optimized and patentless code.
https://xiph.org/flac/ || libmpcdec
  • JasPer — Software-based implementation of the codec specified in the emerging JPEG-2000 Part-1 standard.
http://www.ece.uvic.ca/~frodo/jasper/ || jasper
  • LAME — MP3 encoder and graphical frame analyzer.
http://lame.sourceforge.net/ || lame
  • liba52 — Free library for decoding ATSC A/52 streams.
http://liba52.sourceforge.net/ || a52dec
  • libdca — Free library for decoding DTS Coherent Acoustics streams.
https://www.videolan.org/developers/libdca.html || libdca
  • libde265 — Open source implementation of the h.265 video codec.
https://github.com/strukturag/libde265 || libde265AUR libde265AUR
  • libdv — The Quasar DV codec (libdv) is a software codec for DV video.
http://libdv.sourceforge.net/ || libdv
  • libmpeg2 — Library for decoding MPEG-1 and MPEG-2 video streams.
http://libmpeg2.sourceforge.net/ || libmpeg2
  • libxv — X11 Video extension library.
http://www.x.org || libxv
  • MAD — High-quality MPEG audio decoder.
http://www.underbit.com/products/mad/ || libmad
  • Nero AAC — AAC audio codec (decode/encode/tag) all-in-one.
http://www.nero.com/eng/company/about-nero/nero-aac-codec.php || neroaacAUR
  • opencore-amr — Open source implementation of the Adaptive Multi Rate (AMR) speech codec.
http://sourceforge.net/projects/opencore-amr/ || opencore-amr
  • Speex — Patent-free audio compression format designed for speech.
http://www.speex.org/ || speex
  • Theora — Open video codec developed by the Xiph.org.
http://www.theora.org/ || libtheora
  • Vorbis — Completely open, patent-free, professional audio encoding and streaming technology.
http://www.vorbis.com/ || libvorbis
  • libvpx — High-quality, open video format for the web that's freely available to everyone.
http://www.webmproject.org || libvpx libvpx-gitAUR
  • Opus — Totally open, royalty-free, highly versatile audio codec. Opus is unmatched for interactive speech and music transmission over the Internet, but is also intended for storage and streaming applications. It is standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.
http://www.opus-codec.org/ || opus opus-gitAUR
  • 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.
http://www.audiocoding.com/faac.html || schroedinger
  • WavPack — Audio compression format with lossless, lossy, and hybrid compression modes.
http://www.wavpack.com/ || wavpack
  • x264 — Free library for encoding H264/AVC video streams.
https://www.videolan.org/developers/x264.html || x264 x264-gitAUR
  • x265 — Open-source project and free application library for encoding video streams into the H.265/High Efficiency Video Coding (HEVC) format.
http://x265.org/ || x265AUR x265-hgAUR
  • XviD — Open source MPEG-4 video codec.
http://www.xvid.org/ || xvidcore

Backends

GStreamer

From http://www.gstreamer.net/:

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 players.

GStreamer uses a plugin architecture which makes the most of GStreamer's functionality implemented as shared libraries. Since version 0.10 the plugins come grouped into three sets (named after the film The Good, the Bad and the Ugly).[1]

xine

From http://www.xine-project.org/about:

xine is a free (gpl-licensed) high-performance, portable and reusable multimedia playback engine. xine itself is a shared library with an easy to use, yet powerful API which is used by many applications for smooth video playback and video processing purposes.

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

Install MPlayer binary codecs

As an ultimate solution, you can try to install MPlayer binary codecs.

If you are not able to play some files go to http://www.mplayerhq.hu/design7/dload.html, read the instructions and install the codec you need to play your files.

They can also be found in AUR with the name codecsAUR and codecs64AUR.

No H264, mpg4 or Musepack (.mpc) in Totem Player

If you see the "The H264 plugin is missing" warning with Totem media player, just install the Gstreamer AV library to fix it install gst-libav.