User Tools

Site Tools


general:common_myths

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
general:common_myths [2010/04/16 23:31]
j.m
general:common_myths [2012/11/11 08:51] (current)
Line 22: Line 22:
 ===== Software vs. format, format vs. codec ===== ===== Software vs. format, format vs. codec =====
  
-Contrary to popular ​myth, codec is not the same thing as format. ​Audio or video does not have to be decoded with the same codec it was encoded ​with. For example, when you encode an MP3 file with the LAME codec, it is not "LAME file""LAME format",​ "LAME audio" or just "​LAME"​ – you don't encode "to LAME". It is an MP3 file and it can be decoded with other MP3 decoders, ​too.+Contrary to popular ​mythscodec is not the same thing as format. ​A compression format is //a way// audio or video data are encoded, ​which is described in its specification (if it is standardized, it can be called a standard). An audio or video codec (a codec means **co**der/​**dec**oder) is a software or hardware //tool// that encodes or decodes audio or video data. Tools used for encoding are called encoders, tools used for decoding are called ​decoders. Software codecsencoders and decoders are typically implemented as libraries
  
-However, the common practice in digital video is using these two terms interchangeably,​ which is caused by years of industry obfuscations,​ greedy proprietarism ​(pretending that their codec is a format is a common business model for codec vendors and a significant source of their incomeas it ties the customers to their products), intentional lying in various magazines, websites etc. (in order to make it "​easy"​ for the readers who could be "​confused"​ by correct terms) and nonsensical use of codec [[http://​en.wikipedia.org/​wiki/​FourCC|FourCC]] in AVI (that is, codecs have their own FourCC in AVI files, so if the codec uses a common standard format, users are supposed to install multiple decoders for the same format). Historically,​ when a company released their own proprietary codec, it was automatically supposed to be the only existing codec for that proprietary format.+==== Examples ​of compression formats ​(standardsspecifications====
  
-But there are standards such as MPEG-1MPEG-2 and MPEG-4These are specifications and developers can develop software or hardware implementations that encode or decode audio and video according to the specification. There can be multiple codecs, made by different people, using the same compression format such as MPEG-2 ​(used e.g. on DVDs) or MPEG-4 ​ASP. Codec is a software (or hardwareimplementation that encodes/​decodes (hence the term "​codec"​) data to/from some format which can be compatible with other codecs that follow the same specification. Software is not a format.+  * MP3 
 +  * Vorbis 
 +  * MPEG-4 Part 2ASP 
 +  * H.264 (MPEG-4 ​Part 10, AVC) 
 +  * VP8
  
-==== DivX ====+None of the items listed above is a codec, even though all of them are often erroneously referred to as such. A codec is a tool that actually does something (encodes/​decodes,​ as the term encoder/​decoder suggests), while a specification does not do (encode or decode) anything. It only describes how to make tools that do the actual work. 
 + 
 +==== Examples of codecs ==== 
 + 
 +  * LAME 
 +  * libvorbis 
 +  * libavcodec MPEG-4 
 +  * Xvid 
 +  * DivX Codec 
 +  * libvpx 
 + 
 +None of the items listed above is a format, even though some of them are often erroneously referred to as such (see below). A software tool is not a specification. It implements the format described in the specification. 
 + 
 +==== A single standard, multiple implementations ==== 
 + 
 +This all means that audio or video does not have to be decoded with the same codec it was encoded with. For example, when you encode an MP3 file with the LAME codec, it is not a "LAME file", "LAME format",​ "LAME audio" or just "​LAME"​ – you don't encode "to LAME". It is an MP3 file and it can be decoded with other MP3 decoders, too. 
 + 
 +However, the common practice in digital video is using these two terms interchangeably,​ which is caused by years of industry obfuscations,​ greedy proprietarism (pretending that their codec is a format is a common business model for codec vendors and a significant source of their income, as it ties the customers to their products), intentional lying in various magazines, websites etc. (in order to make it "​easy"​ for the readers who could be "​confused"​ by correct terms), and the resulting ubiquitous ignorance and lack of knowledge. The nonsensical use of codec [[http://​en.wikipedia.org/​wiki/​FourCC|FourCC]] in AVI files was a major factor in this massive confusion (video codecs have their own four-character identification in AVI files that is used by the player software for choosing a video decoder, so if the encoder uses a common standard format, users are supposed to install multiple decoders for the same format). Historically,​ when a company released their own proprietary codec, it was automatically supposed to be the only existing codec for that proprietary format. This practice has gone with the 20th century. 
 + 
 +There are standards such as MPEG-1, MPEG-2 and MPEG-4. These are specifications. Developers can develop software or hardware implementations that encode or decode audio and video according to the specification. The purpose of standards is interoperability. There can be multiple codecs, made by different people, using the same compression format such as MPEG-2 (used e.g. on DVDs) or MPEG-4 ASP. Video encoded with one of them can be decoded with another one, if they use the same compression format, which means they are compatible. So the essential thing for describing a video file is its format, not which codec was used for encoding. There are only a handful of audio and video formats that are actually used in the 21st century. The vast majority of codecs made in this century only implement one of these common standards. 
 + 
 +==== Frequent misnomers ==== 
 + 
 +=== DivX ===
  
 DivX may arguably be the most widely misunderstood term in the digital video era. **Avidemux does not support DivX**. But it //does// support video that was encoded by the DivX software. DivX may arguably be the most widely misunderstood term in the digital video era. **Avidemux does not support DivX**. But it //does// support video that was encoded by the DivX software.
Line 34: Line 61:
 DivX is: DivX is:
  
-  * A company (DivX, Inc.)+  * A company(DivX, Inc., now a subsidiary of Rovi Corporation)
   * A brand name of commercial software products made by DivX, Inc. (e.g. the DivX Plus Player or DivX Pro Codec).   * A brand name of commercial software products made by DivX, Inc. (e.g. the DivX Plus Player or DivX Pro Codec).
   * An MPEG-4 ASP codec(nbsp)– the DivX Codec (in several variants such as the DivX Pro Codec) is a software product made by DivX, Inc.   * An MPEG-4 ASP codec(nbsp)– the DivX Codec (in several variants such as the DivX Pro Codec) is a software product made by DivX, Inc.
Line 54: Line 81:
  
   * Video encoded with the DivX codec is MPEG-4 ASP video.   * Video encoded with the DivX codec is MPEG-4 ASP video.
 +  * When you make MPEG-4 ASP video with Avidemux (or other tools), it is not "​DivX" ​ (i.e. you don't "​encode to DivX" or "​create DivX files"​). It is MPEG-4 ASP video stored in an AVI container (default in Avidemux) or other containers (optional).
   * Avidemux can decode video encoded with DivX and other MPEG-4 ASP codecs, it just does not use DivX for that. Avidemux uses built-in libavcodec from FFmpeg for MPEG-4 ASP decoding.   * Avidemux can decode video encoded with DivX and other MPEG-4 ASP codecs, it just does not use DivX for that. Avidemux uses built-in libavcodec from FFmpeg for MPEG-4 ASP decoding.
-  * MPEG-4 ASP video encoded with Avidemux can be decoded with DivX or various other MPEG-4 ASP decoders such as Xvid, 3ivx or ffdshow. It is not "DivX video" (i.e. you don't "​encode to DivX" or "​create DivX"​),​ it is MPEG-4 ASP video stored in the AVI container (default in Avidemux) or other containers (optional).+  * MPEG-4 ASP video encoded with Avidemux can be decoded with DivX or various other MPEG-4 ASP decoders such as Xvid, 3ivx or ffdshow.
  
-==== Xvid ====+=== Xvid ===
  
 Xvid is an open-source MPEG-4 ASP video codec. Avidemux can optionally use external Xvid library for encoding if it was compiled with Xvid support. Xvid is an open-source MPEG-4 ASP video codec. Avidemux can optionally use external Xvid library for encoding if it was compiled with Xvid support.
Line 76: Line 104:
   * The only open-source MPEG-4 codec. Contrary to popular belief, other free MPEG-4 codecs exist, too, in particular FFmpeg MPEG-4, which is also used by default in MPlayer, xine, VLC, ffdshow and other projects.   * The only open-source MPEG-4 codec. Contrary to popular belief, other free MPEG-4 codecs exist, too, in particular FFmpeg MPEG-4, which is also used by default in MPlayer, xine, VLC, ffdshow and other projects.
  
-==== x264 ====+=== x264 ===
  
 x264 is a free MPEG-4 AVC/​H.264 encoder (for the H.264-MPEG-4 AVC relation, see the [[http://​en.wikipedia.org/​wiki/​H.264/​MPEG-4_AVC|Wikipedia H.264/​MPEG-4 AVC article]]). Avidemux can use x264 for H.264 encoding. x264 is a free MPEG-4 AVC/​H.264 encoder (for the H.264-MPEG-4 AVC relation, see the [[http://​en.wikipedia.org/​wiki/​H.264/​MPEG-4_AVC|Wikipedia H.264/​MPEG-4 AVC article]]). Avidemux can use x264 for H.264 encoding.
general/common_myths.1271453512.txt.gz · Last modified: 2012/11/11 08:51 (external edit)