<!doctype linuxdoc system>
<linuxdoc><article>
<titlepag>
 <title>VLC HOWTO</title>
 <author>Originally written by Henri Fallon, maintained by Johan Bilien<tt><htmlurl url="mailto:jobi@videolan.org" name="<jobi@videolan.org>"></tt></author>
 <date>v0.0.9, 16 april 2002</date>

 <abstract>
  This document describes how to use the vlc (VideoLAN client) to read DVDs and mpeg files, locally or from a network.
 </abstract>
</titlepag>

<toc>

<sect>
 <heading>Introduction</heading>

 <sect1>
  <heading>What is VideoLAN ?</heading>
  <p>
   VideoLAN is a project of sudents of the École Centrale Paris which aims 
   at broadcasting video on the campus, and providing the students with an MPEG-2 
   software-only decoder. VideoLAN is an OpenSource project which will thus 
   allow anyone to watch DVD movies under Linux, BeOS, MacOS X, Windows 
   and most UNIX systems. Recent additions allow to read .avi files,
   and MPEG-4/DivX-encoded movies.
  </p>
  <p>
    You may want to look at the port section on our website : 
    <htmlurl url="http://www.videolan.org/" name="http://www.videolan.org/">.
  </p>
 </sect1>
 
 <sect1>
  <heading>What is the VideoLAN project ?</heading>
  <p>

   VideoLAN is a complete software solution for video streaming, developed
   by students at the <htmlurl url="http://www.ecp.fr/" name="Ecole Centrale
   Paris"> and contributors from all over the world, under the <htmlurl
   url="http://www.gnu.org/copyleft/gpl.html" name="General Public License
   (GPL)">. It has been designed for streaming MPEG 1 and MPEG 2 videos on
   local area networks (LAN), but it can be extended to metropolitan or
   wide area networks (MAN, WAN), thanks to the multicast technology.

   The VideoLAN solution includes a server, which can stream video from
   various sources (file, DVD, satellite and MPEG 2 encoder), a client, which can
   receive, decode and display MPEG 1 and MPEG 2 streams and, if necessary,
   a channel server which tells automatically to the client the parameters
   needed to receive the stream.

   Here is an illustration of the complete VideoLAN solution :

   <verb>

        DVD --->-                 Unicast/Broadcast/Multicast
                  \                           ---
        File --->--     --------            /     \            --------
                   |->-| Server |=====>====|  LAN  |---->-----| Client |
     Satellite ->--    | (VLS)  |           \     /           | (VLC)  |
                  /     --------              ---              --------
       MPEG2 -->-                              ^
      encoder                                  |
                                               v
                                        ----------------
                                       | Channel Server |
                                       |    (VLCS)      |
                                        ----------------
   </verb>

   More details about the project can be found on the
   <htmlurl url="http://www.videolan.org/" name="VideoLAN Web site">.

  </p>
 </sect1>
 <sect1>
  <heading>The documentation of the project</heading>
  <p>
    There are four main documents :
<itemize>
<item>the <htmlurl
url="http://www.videolan.org/doc/videolan-quickstart/videolan-quickstart.html"
name="VideoLAN Quickstart">,
<item>the <htmlurl url="http://www.videolan.org/network/doc/videolan-howto.html"
name="VideoLAN HOWTO">,
<item>the <htmlurl url="http://www.videolan.org/vls/doc/vls-guide.html"
name="VideoLAN Server user guide">,
<item>this VLC Howto.
</itemize>

The up-to-date version of these documents can be found on the <htmlurl
url="http://www.videolan.org/doc/" name="VideoLAN Web Site">.

 <sect1>
  <heading>Translated versions of this document</heading>
  <p>
    No translation is currently available.
  </p>

  <p>
   The English version is maintained by Henri Fallon,
   Johan Bilien, and the VideoLAN team. It can be found at:
   <htmlurl url="http://www.videolan.org/doc/index.html"
   name="http://www.videolan.org/doc/index.html">.
  </p>
 </sect1>

 <sect1>
  <heading>Requirements</heading>
  <sect2>
   <heading>Operating system</heading>
   <p>
    VLC works under the following systems :
   </p>
   <p>
   <itemize>
    <item> Linux (all distributions, including iPAQ Familiar Linux)
    <item> Windows (all 32bit versions)
    <item> Mac OS X
    <item> FreeBSD, NetBSD, OpenBSD, BSD/OS
    <item> BeOS
    <item> QNX RTOS
    <item> Solaris
   </itemize>
   </p>
   <p>
    Please note that the Linux, Windows and MacOS X versions are generally the most
    up-to-date ones.
  </p>
   </sect2>
   <sect2>
   <heading>Software requirements</heading>
   <p>
    Depending on the outputs and inputs you are using, you may need 
    additional libraries. Please see <ref id="modules" name="description">.
   </p>
   <p>
    For playing encrypted DVDs, you will need libdvdcss, which you can find
    on this page :
    <htmlurl name="http://www.videolan.org/libdvdcss/download.html"
    url="http://www.videolan.org/libdvdcss/download.html">.
   </p>
  </sect2>
  <sect2>
   <heading>Hardware requirements</heading>
   <p>
    The hardware power needed depends a lot of the type of stream. 
    For reading a DVD, a CPU working at around 450 MHz is required.
   </p>
   <p>
    VLC can benefits from hardware acceleration from modern video cards
    for YUV transformation and window rescaling. it also uses MMX, MMX EXT,
    SSE, 3Dnow! optimizations if available.
   </p>
  </sect2>
 </sect1>
 

 <sect1> 
  <heading>Disclaimer</heading> 
  <p> 
   This documentation is given "as is", and any comment and improvement
   are welcome. 
  </p>

  <p>

   In this HOWTO, we consider you already have a little knowledge
   about Linux, and you know how to use a DVD. If not, good howtos
   can be found on the <htmlurl url="http://www.tldp.org/" name="Linux
   Documentation Projet">.

  </p>
 </sect1>

 <sect1> 
  <heading>Legal</heading> 
  <p> 

   Copyright (©) 2002 by the VideoLAN project.

   Permission is granted to copy, distribute and/or modify this document
   under the terms of the GNU Free Documentation License, Version
   1.1 or any later version published by the Free Software Foundation ;
   with no Invariant Sections, with no Front-Cover Texts, and with no
   Back-Cover Texts. The text of the license can be found on <htmlurl
   url="http://www.gnu.org/copyleft/fdl.html">.

  </p> 
 </sect1> 
</sect>

<sect>
 <heading>Quick start</heading>
  
  <p> This section will help you get, install and use vlc without giving you
  much details.
  </p>

 <sect1>
  <heading>Get and install vlc from binary packages</heading>
  <p>
   The first thing to do is to get an archive, on our web site 
   <htmlurl url="http://www.videolan.org/download.html" name="http://www.videolan.org/download.html">
  </p>
 
  <sect2>
   <heading>Which package to chose ?</heading>
   <p>
    There are different packages because vlc has "plugins" which provide 
    features but also enlarge the executable and require external libraries. 
   </p>
   <p>
    SDL is a lib which allows you to have an accelerated video output.
    You will need libsdl > 1.1.6
   </p>
   <p>
    If you're using the enlightened sound daemon, you may want to try 
    the esd-aware vlc.
   </p>
   <p>
    Generally, when you don't know what a module name is, you don't 
    need/use it :-)
   </p>
  </sect2>
  
  <sect2>
   <heading>Debian package</heading>
   <p>
    Just use dpkg :
    <verb>
     dpkg -i vlc-x.x.x.deb
    </verb>
   </p>
   <p>
    Depending on the package you have downloaded, you may have dependency
    problems. You have to solve them, by installing the required libraries.
   </p>
  </sect2>
   
  <sect2>
    <heading>RPM package</heading>
   <p>
    Install vlc just as you would install any RPM package : 
    <verb>
     rpm -i vlc-x.x.x.rpm
    </verb>
   </p>
   <p>
    You may have to install external libraries to meet dependencies, depending on
    the package you downloaded (gnome, gtk, esd, ...).
   </p>
  </sect2>

  <sect2>
   <heading>BeOS users</heading>
   <p>
    Double-click on the archive. It should open your favorite archive extracter.
    You can then execute the vlc from there, or extract the archive to a 
    directory and run it from there.
   </p>
  </sect2>
  
  <sect2>
   <heading>Mac OS X users</heading>
   <p>
    Double-click on the archive, and copy the vlc file to your Applications
    folder.
   </p>
  </sect2> 
  <sect2>
   <heading>Windows users</heading>
   <p>
    Launch the installer by double-clicking on it, and follow the installation
    instructions. Please note that in most cases you will need administrator
    rights to install it under Windows NT, 2000 and XP.
   </p>
  </sect2>
 </sect1>
 
 <sect1>
  <heading>Get libdvdcss</heading>
  <p>
   In order to read CSSsrambled DVDs, you will need libdvdcss. 
   You can find binary
   packages for your distribution here : <htmlurl 
   name="http://www.videolan.org/libdvdcss/download.html" 
   url="http://www.videolan.org/libdvdcss/download.html">
  </p>
  <p>
   For Windows, BeOS and Mac OS X users, libdvdcss is statically linked in the 
   Windows binary, so you don't have to install it.
  </p>
 </sect1>
 
 <sect1>
  <heading>Use the vlc for DVD reading</heading>
  <p>
  Launch the application simply by typing vlc in a terminal (or by 
  double-clicking on its icon in a graphical shell). You should see
  the graphical interface appear.
  </p>

  <p> 
  For reading a DVD (or a VCD), click on the "Disc" button. The new window 
  you must then enter the path to your DVD or VCD drive :

   <sect2>
    <heading>Linux users</heading>
    <p>
     Usually, your dvd device is /dev/hd? (if you have an ide drive).
     For instance, if you DVD player is master on the second IDE device,
     it will be /dev/hdc.
    </p>
    <p>
     It is very useful to create a symlink to this file, called /dev/dvd. 
     To do this, as root, type (if your dvd device is /dev/hdc for example) :
     <verb>
      ln -s /dev/hdc /dev/dvd
     </verb>
     Also make sure you have read AND write permission to the device 
     (otherwise dvd decryption won't work).
    </p>
   </sect2>
   <sect2>
    <heading>Windows users</heading>
    <p>
     The path to your DVD drive usually is D:\ or E:\. You may have a look
     in "My Computer" and look to which letter your DVD drive is assigned.
    </p>
   </sect2>
   <sect2>
    <heading>BeOS users</heading>
    <p>
      Under BeOS, the dvd device looks like 
      "/dev/disk/ide/atapi/1/slave/0/raw" for example, if your dvd device is 
      slave on your first (not sure) ide device.
    </p>
   </sect2>
   <sect2>
    <heading>Other OS</heading>
    <p>
    To do ...
    </p>
   </sect2>
  <sect1>
   <heading>Use the vlc for network streaming</heading>
   <p>
    This is the vlc original usage. 
   </p>
   
   <p>
    Launch the vlc as you would have for DVD reading. Then click on the 
    "Network" button. 
    </p>
    <sect2>
     <heading>If using a VideoLAN Channel Server</heading>
     <p>
      The only thing you have to do is to check the "Channel server" box
      and to enter the IP address and port 
      of this channel
      server. Ask your administrator if you don't have it. Then click on OK.
     </p>
     <p>
      You will see a new "Channel" field in the interface. You may now
      enter the selected channel and click on OK. After a few seconds,
      if a program is being sent in this channel, you should see the program
      start.
     </p>
     <p>
      If nothing appears and you are sure that a program is streamed in
      this channel, you may try once again, because a problem of communication
      with the channel server could have occurred (if you launched vlc from
      a terminal, you should see "Network error: no answer from vlcs").
     </p>
    </sect2>
    <sect2>
     <heading>Without VideoLAN Channel Server</heading>
     <p>
      Simply clicking on the network button, then on ok should be 
      sufficient in most cases.
     </p>
     <p>
      After clicking on OK, and if a program is being sent, you should see
      a window open with your program.
     </p>
    </sect2>
</sect>    
    
<sect>
 <heading>The graphical interface</heading>
 <p>
  Please note that the gnome, gtk and win32 interfaces are currently the most
  advanced. The following descriptions refer to them.
 </p>
 <sect1>
  <heading>Opening a stream</heading>
  <p>
   For opening streams through the graphical interface, click on either
   "File" for opening a file stored on your hard drive, "Disc" for 
   opening a DVD or a VCD, "Network" for reading a stream from a vls 
   or through http input, or "Satellite" for reading directly 
   from a satellite card.
  </p>
 <sect1>
  <heading>Basic stream control</heading>
  <p>
   You have at your disposal all the classical control of a video player.
   For example when playing local streams, you can do pauses, speed up or
   slow down the stream ... Just use the corresponding buttons.
  </p>
 <sect1>
  <heading>DVD and VCD navigation</heading>
  <p>
   When reading a DVD or a VCD, you can change chapter and title either 
   by using the 
   right-click menu or by using the dedicated bar that appears when reading
   from a disc.
  </p>
 </sect1>
 
 <sect1>
  <heading>Programs, audio and subtitles</heading>
  <p>
   When reading a multiprogram stream, you can change the current program
   by selecting it in the "View/Programs" submenu, or using the "right click"
   menu from the video output window.
  </p>
  <p>
   In DVDs, if different angles are availables, they will be treated as
   different programs.
  </p>
  <p>
   At any time you can change the audio/subtitles channel using either the 
   "setting" menu from the interface or using the "right click" menu from
   the video output window.
  </p>
 <sect1>
  <heading>Preferences window</heading>
  <p>
   By choosing "Preferences" in the "Settings" menu, you will open 
   the preferences window. This window is generated dynamically according
   to the modules that were compiled.
  </p>
  <p>
   In every tab, you may click on "Save" to store your settings in your
   ~/.videolan/vlcrc file.
  </p>
  <sect2>
   <heading>Interface tab</heading>
   <p>
    In that tab, you can select which interface you would like to use on next
    start. Click on the choosen interface, click on "Select" then on "Save".
   </p>
  </sect2>
  <sect2>
   <heading>Audio tab</heading>
   <p>
    In this tab, you can select the audio output you would like to use on 
    next start. You may also specify some other settings such as the output
    level, the audio frequency, ...
   </p>
  </sect2>
  <sect2>
   <heading>Video tab</heading>
   <p>
    In this tab, you can select which video output will be used on next start,
    and add a video filter module. You may also specify some video settings,
    such as the window size or if you would like fullscreen display.
   </p>
  </sect2>
  <sect2>
   <heading>Input tab</heading>
   <p>
    In this tab, you can enter the input method with options (for example
    <tt>udp:@239.255.255.42</tt>) that will be used on next start. You can 
    also add some settings, such as the channel server address ...
   </p>
  </sect2>
  <sect2>
   <heading>Decoders tab</heading>
   <p>
    In this tab, you can select which decoder you want to use for MPEG audio
    and AC3 streams.
   </p>
  </sect2>
  <sect2>
   <heading>CPU tab</heading>
   <p>
    In this tab, you may disable the use of some CPU extensions such as 
    MMX or SSE.
   </p>
  </sect2>
  <sect2>
   <heading>Playlist tab</heading>
   <p>
    In this tab, you can select some playlist options, such as looping the
    playlist.
   </p>
  </sect2>
  <sect2>
   <heading>Miscellanous tab</heading>
   <p>
    In this tab, you can select which memcpy version you want to use. Some 
    of them uses MMX 3Dnow! extensions.
   </p>
  </sect2>  
 </sect1>
</sect>
<sect>
 <heading>Command line options</heading>
 <p>
 Many options are only available through command line. They are detailed here.
 </p>
 <sect1>
  <heading>Opening streams</heading>
  <p> 
  The following commands start vlc and add a first element to the playlist.
  </p>
  <sect2>
   <heading>Opening a file</heading>
   <p>
    Simply start vlc with <tt>vlc my_file.mpg</tt>. 
   </p>
   <p>
    You may tell vlc what input to use, for example add <tt>--input ts</tt>
    when playing a ts MPEG, although vlc should be able to recognize the type
    of MPEG.
   </p>
  </sect2>
  <sect2>
   <heading>Opening a DVD or VCD</heading>
   <p>
    Simply start vlc with <tt>vlc dvd:DVDDRIVE</tt> or <tt> vlc vcd:CDROMDRIVE
    </tt>, where DVDDRIVE/CDROMDRIVE is the complete
    path to your dvd/cdrom drive.
   </p>
   <p>
    You may add <tt>-t X -T Y</tt> to start directly from the Xth chapter, Yth
    title.
   </p>
  </sect2>
  <sect2>
  <heading>Start a network stream</heading>
   <p>
    To receive an UDP stream (being sent from a VLS), start vlc with 
    <tt> vlc udpstream:[@&lt;bind address&gt;[:&lt;server port&gt;]] </tt>.
   </p>
   <p>
    Please note that bind address refers to the destination address, for 
    example your broadcast address. If the stream is being broadcasted, 
    <verb> vlc udpstream:</verb> should be sufficient. If the stream
    is multicasted, you must specify the multicast address, for example 
    <verb> vlc udpstream:@239.255.255.42  </verb>
   <p>
    To receive a http stream, start vlc with <tt>vlc &lt;your URL&gt;</tt>.

   
   </p>
  </sect2>
 </sect1>
 
 <sect1>
  <heading>Modules selection</heading>
  <p>
   The vlc tries to select the most appropriate interface, input and output
   modules, among the ones available on the system, according to
   the stream he is given to read. However, you may wish to force
   the use of a specific module with the following options:
   
   <p> <verb>--intf &lt;interface module&gt;</verb>
   allows you to select the interface module </p>

   <p> <verb>--vout &lt;video output module&gt;</verb>
   allows you to select the video output.</p>

   <p> <verb>--aout &lt;audio output module&gt;</verb>
   allows you to select the audio output.</p>

   <p> <verb>--filter &lt;video filter module&gt;</verb>
   allows you to add a video filter module.</p>

   <p> <verb>--mpeg-adec &lt;MPEG audio decoder module&gt;</verb>
   allows you to select the audio MPEG decoder.</p>

   <p> <verb>--ac3-adec &lt;AC3 audio decoder module&gt;</verb>
   allows you to select the audio AC3 decoder.</p>
  
 </sect1>
 <sect1>
  <heading>Other options</heading>
  <sect2>
   <heading>Help options:</heading>
   
   <p> <verb>--help</verb>
   gives you all the available options.</p>  
   <p> <verb>--longhelp</verb>
   gives you a more detailled version of the available options.</p>  
   <p> <verb>--version</verb>
   gives you information about the current version.</p>  
   <p> <verb>--list</verb>
   gives you the list of all available plugins.</p>
   <p> <verb>-vvvv (X times)</verb>
   set the level of warning messages.</p>
   <p> <verb>--stats</verb>
   gives statistic outputs.</p>
  </sect2>
  
  <sect2>
   <heading>Audio options:</heading>
   

   <p> <verb>--noaudio</verb>
   disables the audio output</p>
   <p> <verb>--mono</verb>
   forces the vlc to treat the stream in mono audio.</p>
   <p> <verb>--volume &lt;integer&gt;</verb>
   set the level of audio output.</p>
   <p> <verb>--rate &lt;integer&gt;</verb>
   set the audio output frequency (Hz)</p>
   <p> <verb>--desync &lt;integer&gt;</verb>
   compensates desynchronization of audio (ms)</p>
  </sect2>

  <sect2>
   <heading>Video options:</heading>
   
   <p> <verb>--novideo</verb>
   disables the video output</p>
   <p> <verb>--width &lt;integer&gt;</verb>
       <verb>--height &lt;integer&gt;</verb>
   set the video window dimensions.</p>
   <p> <verb>--grayscale</verb>
   turns video output into grayscale mode.</p>
   <p> <verb>--fullscreen</verb>
   set fullscreen video.</p>
   <p> <verb>--nooverlay</verb>
   disables hardware acceleration for the video output</p>
   <p> <verb>--spumargin &lt;integer&gt;</verb>
   force subtitles position.</p>

  </sect2>
  <sect2>
   <heading>Input options:</heading>


   <p> <verb>--network-channel</verb>
   Start with channel server enabled.</p>
   <p> <verb>--channel-server &lt;string&gt;</verb>
   Specify the channel server address.</p>
   <p> <verb>--channel-port &lt;integer&gt;</verb>
   Specify the channel server port.</p>
   <p> <verb>--iface &lt;string&gt;</verb>
   Select the network interface to use.</p>
   <p> <verb>--input-program &lt;integer&gt;</verb>
   Select the program to use (for streams with 
   several programs, as those coming from satellite).</p>
   <p> <verb>--audio-type &lt;integer&gt;</verb>
   Select the audio channel to use.</p>
   <p> <verb>--subtitle-channel &lt;integer&gt;</verb>
   Select the subtitle.</p>
   <p> <verb>--audio_channel &lt;integer&gt;</verb>
   Select the channel number.</p>
   <p> <verb>--dvd &lt;string&gt;</verb>
   Specify the default dvd device.</p>
   <p> <verb>--vcd &lt;string&gt;</verb>
   Specify the default vcd device.</p>
   <p> <verb>-4, --ipv4</verb>
   Force IPv4.</p>
   <p> <verb>-6, --ipv6</verb>
   Force IPv6.</p>
  </sect2>
  
  <sect2>
   <heading>CPU options</heading>
   <p> <verb>--nommx</verb>
   disable the use of mmx CPU extensions.</p>
   <p> <verb>--no3dn</verb>
   disable the use of 3D Now! CPU extensions.</p>
   <p> <verb>--nommxext</verb>
   disable the use of mmx ext CPU extensions.</p>
   <p> <verb>--noaltivec</verb>
   disable the use of AltiVec CPU extensions.</p>
  </sect2>
 </sect1>
 


   

 

<sect>
 <heading>Building the vlc from sources</heading>
 <p>
  You can choose either to take the latest release, or a CVS source. Note that
  CVS snapshots may be broken, although we do our best to prevent this from
  happening.
 </p>
 <p>
  From here, you have to be a little experienced, even more if you want to use
  the cvs.
 </p>
 <sect1>
  <heading>Getting an archive</heading>
  <p>
   You have guessed it, the first thing to do is to get the source.
   Until there, everyone should understand :)
  </p>
  <sect2>
   <heading>Web site</heading>
   <p>
    Source packages can be found in the "tarballs" section of the download page :
    <htmlurl url="http://www.videolan.org/download.html" name="http://www.videolan.org/dowload.html">.
   </p>
   <p>
    CVS snapshots are available from the address : 
    <htmlurl url="http://www.videolan.org/packages/snapshots/" 
    name="http://www.videolan.org/packages/snapshots/">.
   </p>
   <p>
    Then untar the archive :
    <verb>
     tar xzf vlc-x-x-x.tar.gz
    </verb>
   </p>
  </sect2>
  <sect2>
   <heading>Directly from CVS</heading>
   <p> <label id="cvs">
    First log in as user anonymous with an empty password :
    <verb>
     cvs -d :pserver:anonymous@anoncvs.videolan.org:/var/cvs/videolan login
    </verb>
   Then retrieve the repository :
   <verb>
    cvs -d :pserver:anonymous@anoncvs.videolan.org:/var/cvs/videolan -z3 checkout vlc
   </verb>
   </p>
  </sect2>
  <sect2>
   <heading>libdvdcss</heading>
   <p>
   To compile vlc with dvd support, you need to get and install libdvdcss.
   </p>
   <p>
   It is available for download here : 
   <htmlurl url="http://www.videolan.org/libdvdcss/download.html"
   name="http://www.videolan.org/libdvdcss/download.html">

   Decompress the tarball in a directory of your choice and build it :
   <verb>
    tar -xvzf libdvdcss-x.x.x.tar.gz
    cd libdvdcss-x.x.x
    ./configure
    make
    [as root] make install
   </verb>

   You can also find binaries packages for many distributions.
 </sect1>
 
 <sect1>
  <heading>Building the program</heading>
  <p><label id="compile">
   Go into the vlc directory and run the configure script :
   <verb>
    ./configure
   </verb>
    If you want to enable options, you may add "--enable-option" 
    to the previous line.
    For example, to build with the xvideo extension, and alsa support, 
    you should type :
    <verb>
    ./configure --enable-xvideo --enable-alsa
    </verb>
   To get the list of the available options, and know if they are 
   enabled by default,
   you can try :
   <verb>
    ./configure --help
   </verb>
  </p>
  <p>
   Also have a look on the <ref id="modules" name="following modules 
   descriptions">.
  </p>
  <p>
   A very typical installation, on a XFree 4.1 system, recent video card, with 
   gnome, is :
   <verb>
    ./configure --enable-esd --enable-gnome
   </verb>
  <p>
 </sect1>
 <sect1>
  <heading>Plugins, builtins ...</heading>
  <p>
   The configure script should create a Makefile.opts file, which you can edit and modify.
   Indeed you can chose to have features (as esd support, for example) built as plugins
   or inside the program.
  </p>
  <p>
   If you build a feature as a plugin, it can lead to a little loss of performance.
   It you build it inside the code, it'll enlarge a bit the size of the executable.
  </p>
  <p>
   When you're done with Makefile.opts (which also works if you leave it 
   untouched), just 
   type:
    <verb>
    make
    </verb>
   It should compile without any error. If there are, please check you 
   have the required libraries 
   installed on your system, as the configure script can't check them all.
  </p>
  <p>
   When you're done with it, as root, type :
   <verb>
    make install
   </verb>
  if you wish to have vlc fully installed on your system. If you prefer 
  to keep in in the 
  current directory, you may skip the "make install". You'll then have 
  to cd into the vlc 
  directory and type "./vlc" instead of just typing vlc.
  </p>
 </sect1>
</sect>

<sect>
 <heading>Modules description</heading>
 <p> 
  <label id="modules">
  Here is a description of nearly all the available modules for the 
  vlc. If you wish to compile one which is stated disabled by default,
  you have to launch the configure script with 
  <verb> ./configure --enable-module_name </verb>. See <ref 
  name="compilation instructions" id="compile">.
 <sect1>
  <heading>Video outputs</heading>
  <sect2>
   <heading>x11</heading>
   <p>default :enabled </p>
   <p>
    This is the basic x11 video output. It only requires a 
    working X11 server. You will need xlibs headers to compile it
    (xlibs-dev package on Debian systems).
   </p>
  </sect2>
  
  <sect2>
   <heading>xvideo</heading>
   <p>default : enabled</p>    
   <p>
    It requires an xvideo compliant graphic card (it is the case for 
    nearly all the modern card). It uses hardware acceleration for 
    yuv transformation and for rescaling.
   </p>
  </sect2>
  
  <sect2>
   <heading>sdl</heading>
   <p>default : enabled</p>
   <p>
    This video output uses sdl libraries. You need at least version 1.1.6 of
    this libraries.
   </p>
   <p> 
    You may indicate the path to the sdl-config program with the
    <verb> --with-sdl-config-path=PATH </verb> option given to the <verb>
    configure</verb> script.
   </p>
  </sect2>
  
  <sect2>
   <heading>directx</heading>
   <p>default: enabled on win32</p>
   <p>
    This video output uses Microsoft Direct X libraries. It is recommended 
    for the win32 port.
   </p>
   <p>
    You may indicate the path to directx libraries and headers with
    the <verb>--with-directx=PATH</verb> option.
  </sect2>
  
  <sect2>
   <heading>fb</heading>
   <p>default: enabled on Linux</p>
   <p>
    This is the frame buffer video output. It requires that your kernel 
    was compiled with frame buffer support.
   </p>
  </sect2>
  
  <sect2>
   <heading>glide</heading>
   <p>default: disabled</p>
   <p>
   This video output uses Glide libraries (hardware acceleration for
   3Dfx cards).
   </p>
   <p> 
    You may indicate the path to the library with the 
   <verb>--with-glide=PATH</verb> compilation option.
   </p>
  </sect2>
  
  <sect2>
   <heading>mga</heading>
   <p>default: disabled</p>
   <p> 
   It provides hardware acceleration for Matrox cards on Linux.
   </p>
  </sect2>

  <sect2>
   <heading>ggi</heading>
   <p>default: disabled</p>
  </sect2>
  
  <sect2>
   <heading>aa</heading>
   <p>default: disabled</p>
   <p>
    This video output uses the aalib library to display video
    through ASCII art. It requires aalib headers (aalib1-dev under Debian)
    to compile.
   </p>
  </sect2>
 </sect1>
 <sect1>
  <heading>Video filters modules</heading>
  <sect2>
   <heading>deinterlace</heading>
   <p>default: enabled</p>
   <p>
    This filter deinterlaces video. It is useful with streams coming 
    from a satellite broadcast.
   </p>
  </sect2>
  
  <sect2>
   <heading>wall</heading>
   <p>default: enabled</p>
   <p>
    This filter allows you to have the video cut in pieces in several 
    windows, which you can order as you wish. It can be used to generate
    image walls with several sources. Start it with 
   <verb> --filter wall:XxY</verb> in order to have the video cut in X rows
   and Y columns
   </p>
  </sect2>
  <sect2>
   <heading>distort</heading>
   <p>default: enable</p>
   <p>
    This filter adds a distortion effect to the video. Who said it
    was useless ;-) ?
   </p>
  </sect2>
  
  <sect2>
   <heading>transform</heading>
   <p>default: enable</p>
   <p>
    This filter rotates the video window of 90 degrees.
   </p>
  </sect2>
  
  <sect2>
   <heading>invert</heading>
   <p>default: enabled</p>
   <p>
    This filter inverses colors.
   </p>
  </sect2>
 </sect1>
 <sect1>
  <heading>Sound outputs</heading>
  <sect2>
   <heading>dsp</heading>
   <p>default: enabled on Linux</p>
   <p>
    This is the Linux /dev/dsp output. It requires that your kernel 
    was compiled with support for your sound card.
   </p>
   </sect2>
   
   <sect2>
    <heading>alsa</heading>
    <p>default: disabled</p>
    <p>
     This is the sound output for Advanced Linux Sound Architecture. 
     It requires that you installed the alsa drivers and libraries.
    </p>
   </sect2>
   
   <sect2>
    <heading>esd</heading>
    <p>default: disabled</p>
    <p>
     This sound output has Enlightened Sound Daemon support
     (usually used with Gnome). 
     You must have the daemon and its libraries installed.
    </p>
   </sect2>
   <sect2>
    <heading>arts</heading>
    <p>default: disabled</p>
    <p>
     This sound output has aRts (KDE's sound server) support.
     You must have the daemon and its libraries installed.
    </p>
   </sect2>
   
   <sect2>
    <heading>waveout</heading>
    <p>default: enabled on win32</p>
    <p>
     This is the Wave output, which is used by the win32 port.
    </p>
   </sect2>
 </sect1>
 
 <sect1>
  <heading>Input modules</heading>
  <sect2>
   <heading>dvd</heading>
   <p>default: enabled</p>
   <p>
    This is the DVD input module. It will need libdvdcss, which can
    be found <htmlurl url="http://www.videolan.org/libdvdcss/" 
    name="http://www.videolan.org/libdvdcss/">.
   </p>
  </sect2>
  
  <sect2>
   <heading>dvdread</heading>
   <p>default: disabled</p>
   <p>
    This is an alternative to the previous one, it uses libdvdread 
    (which also needs libdvdcss).
   </p>
  </sect2>
  <sect2>
   <heading>vcd</heading>
   <p>default: enabled</p>
   <p>
    This is the VideoCD input. 
   </p>
  </sect2>
  <sect2>
   <heading>http</heading>
   <p>default: enabled</p>
   <p>
    This is the http input. You can use it for Video On Demand.
   </p>
  </sect2>
  <sect2>
   <heading>satellite</heading>
   <p>default: disabled</p>
   <p>
    This is an input module that allows to read directly from a
    Hauppauge WinTV Nova card under Linux. It requires drivers 0.9.4 
    available from 
   <htmlurl url="http://www.linuxtv.org/" name="linuxtv.org">.
   </p>
  </sect2>
  <sect2>
   <heading>avi</heading>
   <p>default: enabled</p>
   <p>
    This input module allows to read .avi files.
   </p>
  </sect2>

 </sect1>
 
 <sect1>
  <heading>Interface modules</heading>
  <sect2>
   <heading>gtk</heading>
   <p>default: enabled</p>
   <p>
    This is the GTK+ interface. It needs gtk libraries (libgtk1.2 package
    on Debian) and headers files if you are compiling it (libgtk1.2-dev 
    package on Debian). Note that it can be used under Windows.
   </p>
  </sect2>
  <sect2>
   <heading>gnome</heading>
   <p>default: disabled</p>
   <p>
    This is the Gnome interface. It needs gnome libraries (libgnome32 under
    Debian) and headers (libgnome-dev) if you wish to compile it.
   </p>
  </sect2>
  <sect2>
   <heading>intfwin</heading>
   <p>default: enabled on win32</p>
   <p>
    This is the Windows native interface. It requires Borland C++ builder 
    to compile. You may use <verb>--with-bc-builder=PATH</verb> option
    to specify the path to this application.
   </p>
  </sect2>

  <sect2>
   <heading>qt</heading>
   <p>default: disabled</p>
   <p>
    This is the QT libraries interface module. You will need the libraries
    (libqt2 package on Debian) and headers (libqt-dev) if you wish to 
    compile it.
   </p>
  </sect2>
  <sect2>
   <heading>kde</heading>
   <p>default: disabled</p>
   <p>
    This is the KDE interface module.  You will need the libraries
    (kdelib package on Debian) and headers (kde-devel) if you wish to 
    compile it.
   </p>
  </sect2>

  <sect2>
   <heading>rc</heading>
   <p>default: enable</p>
   <p>
    This is the Remote Control interface module. With this one, vlc
    is controled by sending him commands, such as play, stop, ... so 
    that you may control vlc through a script.
   </p>
  </sect2>

  <sect2>
   <heading>ncurses</heading>
   <p>default: disabled</p>
   <p>
    This is a text interface, using ncurses library. You will need
    ncurses headers if you want to compile it (libncurses5-dev on Debian).
   </p>
  </sect2>
  <sect2>
   <heading>lirc</heading>
   <p>default: disabled</p>
   <p>
    This interface module allows you to control vlc through a remote.
    A lircrc example is provided to help you configure it to your remote
    (see doc/lirc/example.lircrc).
   </p>
  </sect2>
 </sect1>
 <sect1>
  <heading>Codec modules</heading>
  <p> The following modules add codec support. </p>
  <sect2>
   <heading>a52</heading>
   <p>default: disabled</p>
   <p>
    This is a better AC3/A52 decoder than the built-in one, based on
    liba52 : 
   <htmlurl url="http://liba52.sf.net/" name="liba52">.
   </p>
  </sect2>
  <sect2> 
   <heading>ffmpeg</heading>
   <p>default: disabled</p>
   <p>
    This is a free MPEG-4/DivX/OpenDivX codec :
   <htmlurl url="http://ffmpeg.sf.net/" name="ffmpeg">.        
   </p>
  </sect2>
 </sect1>

 <sect1>
  <heading>OS support modules</heading>
  <p> The following modules add support or different OSs. </p>
  <sect2>
   <heading>macosx</heading>
   <p>default: enabled on MacOS X</p>
   <p>
    This is the MacOS X support module, including a native interface.
   </p>
  </sect2>
  
  <sect2>
   <heading>qnx</heading>
   <p>default: enabled on qnx</p>
   <p>
    This is the QNX RTOS support module.
   </p>
  </sect2>
 </sect1>    

<sect>
 <heading>Specific use of the vlc</heading>
 <sect1>
  <heading>Use the vlc as a viever and decoder for the Hauppauge WinTV 
  Nova card</heading>
  <sect2>
   <heading>What is required ?</heading>
   <p>
    At the present time, the satellite input only works under Linux. 
    It requires that drivers version 0.9.4 of the card, drivers
    that are being developped by the <htmlurl name="linuxtv.org"
    url="http://www.linuxtv.org/">. 
   </p>
  </sect2>
  <sect2>
   <heading>Building the vlc with satellite support</heading>
   <p>
    Get the sources, either from our last .tar.gz release, 
    or best from the cvs (see <ref name="cvs instructions"
    id="cvs">).
   </p>
   <p>
    Move to the vlc directory, then launch
    <verb>
     ./configure --enable-satellite
    </verb>
    You may add other compilation options, see <ref 
    name="compilation instructions" id="compile">.
    Then launch the compilation with
    <verb>
     make
    </verb>
    You may install it with (as root)
    <verb>
     make install
    </verb>
    or run it from the current directory.
   </p>
  </sect2>
  <sect2>
   <heading>Running it from the command line</heading>
   <p>
   Run the vlc with 
    <verb>
     vlc satellite:&lt;frequency(Hz)&gt;,&lt;polarization(0 for V,
     1 for H)&lt;,
     &gt;FEC (1 for 1/2, 2 for 2/3 ...)&gt;,&lt;symbol rate (kbytes/sec)&gt;
    </verb>
    You then have to select your program, either with the command line option
    <verb>
     --input_program <program_number (also called service ID)>
    </verb>
    or by choosing it in the view/programs menu.
   </sect2>
   <sect2>
    <heading>Running it from the GTK/Gnome interface</heading>
    <p>
     Click on the "Sat" icon. In the opening box, you may enter 
     your transponder settings, then click on "Ok". 
    </p>
    <p>
     After a few seconds, the word satellite should appear under the command
     buttons. You may now choose your program from the View/Programs menu.
    </p>
   </sect2>
  </sect1>
  <sect1>
   <heading>Use the vlc to create image walls.</heading>
   <p>
    The idea is to use several video sources, each one displaying a part 
    of the whole image, to get a bigger result.
   </p>
   <p> 
    Vlc and the VideoLAN solution can provide a good way to create
    such displays : a vls broadcasts a stream in several vlc each
    display a part of image.
   </p>
   <p>
    For this, you should use the wall filter : start vlc with 
    <verb>
     vlc udp: --filter wall:&lt;number of rows&gt;x&lt;number of columns&gt;
     :&lt;number of the part to diplay&gt;
    </verb>
   </p>
  </sect1>

</sect>
<sect>
  <heading>Get more help</heading>
  <p>
   First of all, it something seems to go wrong, read and try to 
   understand the error messages. You can have detailed messages by
   choosing messages in the view menu, in GTK, Gnome and Win32 interfaces.
  </p>
  <p>
   There is a FAQ page on our website :
   <htmlurl url="http://www.videolan.org/doc/" name="http://www.videolan.org/doc/">.
   If you think one question should be in the FAQ, please contact
   <htmlurl url="mailto:videolan@videolan.org" name="videolan@videolan.org">
  </p>
  <p>
   Finally, there's a users mailing list (English-speaking). To subscribe, send a mail to 
   <htmlurl url="mailto:listar@videlan.org" name="listar@videlan.org"> containing
   "subscribe vlc" as message body.
  </p>
</sect>
</article></linuxdoc>
