243 lines
3.9 KiB
HTML
243 lines
3.9 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>
|
|
What is a codec ?
|
|
</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
|
|
REL="HOME"
|
|
TITLE="VideoLAN HOWTO"
|
|
HREF="index.html"><LINK
|
|
REL="UP"
|
|
TITLE="Introduction"
|
|
HREF="intro.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="
|
|
What is the VideoLAN project ?
|
|
|
|
"
|
|
HREF="x46.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="
|
|
How can I use VideoLAN ?
|
|
|
|
"
|
|
HREF="x155.html"></HEAD
|
|
><BODY
|
|
CLASS="sect1"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>VideoLAN HOWTO</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="x46.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
>Chapter 1. Introduction</TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="x155.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="AEN130"
|
|
></A
|
|
>1.2. What is a codec ?</H1
|
|
><P
|
|
> To fully understand the VideoLAN solution, you must
|
|
understand the difference between a <EM
|
|
>codec</EM
|
|
> and a
|
|
<EM
|
|
>container format</EM
|
|
>
|
|
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> A <EM
|
|
>codec</EM
|
|
> is a compression
|
|
algorithm, used to reduce the size of a stream. There are audio codecs
|
|
and video codecs. MPEG-1, MPEG-2, MPEG-4, Vorbis, DivX, ... are
|
|
codecs
|
|
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> A <EM
|
|
>container format</EM
|
|
> contains
|
|
one or several streams already encoded by codecs. Very often, there
|
|
is an audio stream and a video one. AVI, Ogg, MOV, ASF, ... are
|
|
container formats. The streams contained can be encoded using different
|
|
codecs. In a perfect world, you could put any codec in any container
|
|
format. Unfortunately, there are some incompatibilities. You can
|
|
find a matrix of possible codecs and container formats on the <A
|
|
HREF="http://www.videolan.org/streaming/features.html"
|
|
TARGET="_top"
|
|
>features
|
|
page</A
|
|
>
|
|
|
|
|
|
</P
|
|
></LI
|
|
></UL
|
|
><P
|
|
> To decode a stream, VLC first
|
|
<EM
|
|
>demuxes</EM
|
|
> it. This means that it reads the container
|
|
format and separates audio, video, and subtitles, if any. Then, each of
|
|
these are passed <EM
|
|
>decoders</EM
|
|
> that do the mathematical
|
|
processing to decompress the streams
|
|
|
|
.</P
|
|
><P
|
|
> There is a particular thing about MPEG:
|
|
|
|
</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
> MPEG is a <EM
|
|
>codec</EM
|
|
>. There are
|
|
several versions of it, called MPEG-1, MPEG-2, MPEG-4, ...
|
|
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>MPEG is also a container format, sometimes refered
|
|
to as <EM
|
|
>MPEG System</EM
|
|
>. There are several types of MPEG:
|
|
ES, PS, and TS</P
|
|
><P
|
|
>When you play an MPEG video from a DVD, for instance, the MPEG
|
|
stream is actually composed of several streams (called Elementary
|
|
Streams, ES): there is one stream for video, one for audio, another for
|
|
subtitles, and so on. These different streams are mixed together into a
|
|
single Program Stream (PS). So, the .VOB files you can find in a DVD are
|
|
actually MPEG-PS files. But this PS format is not adapted for streaming
|
|
video through a network or by satellite, for instance. So, another
|
|
format called Transport Stream (TS) was designed for streaming MPEG
|
|
videos through such channels.</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="x46.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="x155.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>What is the VideoLAN project ?</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="intro.html"
|
|
ACCESSKEY="U"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>How can I use VideoLAN ?</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |