mirror of https://github.com/tLDP/LDP
4099 lines
93 KiB
XML
4099 lines
93 KiB
XML
<?xml version="1.0" encoding="iso8859-1"?>
|
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
|
"http://docbook.org/xml/4.1.2/docbookx.dtd" []>
|
|
|
|
<book id="videolan-howto">
|
|
|
|
<bookinfo>
|
|
|
|
<title>VideoLAN HOWTO</title>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Alexis</firstname>
|
|
<surname>de Lattre</surname>
|
|
</author>
|
|
<author>
|
|
<firstname>Marc</firstname>
|
|
<surname>Ariberti</surname>
|
|
</author>
|
|
<author>
|
|
<firstname>Anil</firstname>
|
|
<surname>Daoud</surname>
|
|
</author>
|
|
<author>
|
|
<firstname>Clément</firstname>
|
|
<surname>Stenac</surname>
|
|
</author>
|
|
|
|
</authorgroup>
|
|
|
|
<pubdate>v2.0, 2003-09-04</pubdate>
|
|
|
|
<copyright>
|
|
<year>2002, 2003</year>
|
|
<holder>the VideoLAN project</holder>
|
|
</copyright>
|
|
|
|
<legalnotice>
|
|
|
|
<para>Permission is granted to copy, distribute and/or modify this
|
|
document under the terms of the GNU Free Documentation License, Version
|
|
1.2 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 in the appendix
|
|
<xref linkend="gfdl" endterm="tgfdl"/>.</para>
|
|
|
|
</legalnotice>
|
|
|
|
<keywordset>
|
|
<keyword>VideoLAN</keyword>
|
|
<keyword>Client</keyword>
|
|
<keyword>vlc</keyword>
|
|
<keyword>VLC</keyword>
|
|
<keyword>vls</keyword>
|
|
<keyword>VLS</keyword>
|
|
<keyword>vod</keyword>
|
|
<keyword>sap</keyword>
|
|
<keyword>stream</keyword>
|
|
<keyword>multicast</keyword>
|
|
<keyword>MPEG-1</keyword>
|
|
<keyword>MPEG-2</keyword>
|
|
<keyword>MPEG-4</keyword>
|
|
<keyword>DVD</keyword>
|
|
<keyword>DVB</keyword>
|
|
<keyword>DivX</keyword>
|
|
</keywordset>
|
|
|
|
<abstract>
|
|
|
|
<para>
|
|
This document describes how to use the complete
|
|
VideoLAN streaming solution.
|
|
|
|
</para>
|
|
|
|
</abstract>
|
|
|
|
|
|
</bookinfo>
|
|
|
|
|
|
<toc/>
|
|
|
|
|
|
<chapter id="intro"><title id="tintro">Introduction</title>
|
|
|
|
<sect1><title>
|
|
What is the VideoLAN project ?
|
|
|
|
</title>
|
|
|
|
<sect2><title>
|
|
Overview
|
|
|
|
</title>
|
|
|
|
|
|
<para>VideoLAN is a complete software solution for video streaming, developed
|
|
by students of the <ulink url="http://www.ecp.fr">Ecole Centrale
|
|
Paris</ulink> and developers from all over the world, under the
|
|
<ulink url="http://www.gnu.org/copyleft/gpl.html">GNU General Public
|
|
License</ulink> (GPL). VideoLAN is designed to stream MPEG videos on high
|
|
bandwidth networks.</para>
|
|
|
|
<para>The VideoLAN solution includes :</para>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
<listitem><para>VLS (VideoLAN Server), which can stream MPEG-1, MPEG-2
|
|
and MPEG-4 files, DVDs, digital satellite channels, digital terrestial
|
|
television channels and live videos on the network in unicast or
|
|
multicast,</para></listitem>
|
|
|
|
|
|
|
|
|
|
|
|
<listitem><para>VLC (initially VideoLAN Client), which can be used as
|
|
a server to stream MPEG-1, MPEG-2 and MPEG-4 files, DVDs and live
|
|
videos on the network in unicast or multicast ; or used as a client
|
|
to receive, decode and display MPEG streams under multiple operating
|
|
systems.</para></listitem>
|
|
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>Here is an illustration of the complete VideoLAN solution :</para>
|
|
|
|
|
|
|
|
|
|
<figure><title>
|
|
Global VideoLAN solution
|
|
La solution VideoLAN globale
|
|
</title>
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="images/global-diagram.jpg" format="JPG" scalefit="1" scale="60"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
|
|
|
|
<para>More details about the project can be found on the <ulink url="http://www.videolan.org/">VideoLAN Web site</ulink>.</para>
|
|
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
VideoLAN software
|
|
|
|
</title>
|
|
|
|
<simplesect><title>VLC</title>
|
|
|
|
|
|
<para>VLC works on many platforms : Linux, Windows, Mac OS X, BeOS,
|
|
*BSD, Solaris, Familiar Linux, Yopy/Linupy and QNX. It can read :</para>
|
|
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
<listitem><para>MPEG-1, MPEG-2 and MPEG-4 / DivX files from a hard disk,
|
|
a CD-ROM drive, ...</para></listitem>
|
|
|
|
|
|
|
|
|
|
<listitem><para>DVDs and VCDs,</para></listitem>
|
|
|
|
|
|
|
|
|
|
<listitem><para>from a satellite card (DVB-S),</para></listitem>
|
|
|
|
|
|
|
|
|
|
<listitem><para>MPEG-1, MPEG-2 and MPEG-4 streams from the
|
|
network sent by VLS or VLC's stream output.</para></listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
VLC can also be used as a server to stream :
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
<listitem><para>MPEG-1, MPEG-2 and MPEG-4 / DivX files,</para></listitem>
|
|
|
|
|
|
|
|
|
|
<listitem><para>DVDs,</para></listitem>
|
|
|
|
|
|
|
|
|
|
<listitem><para>from an MPEG encoding card,</para></listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
to :
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
<listitem><para>one machine (i.e. to one IP address) : this is called
|
|
<emphasis>unicast</emphasis>,</para></listitem>
|
|
|
|
|
|
|
|
|
|
<listitem><para>a dynamic group of machines that the clients can
|
|
join or leave (i.e. to a multicast IP address) : this is called
|
|
<emphasis>multicast</emphasis>,</para></listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
<para>in IPv4 or IPv6
|
|
.</para>
|
|
|
|
|
|
<para>To get the complete list of VLC's possibilities
|
|
on each plateform supported, see the <ulink url="http://www.videolan.org/vlc/features.html">VLC features
|
|
page</ulink>.</para>
|
|
|
|
|
|
|
|
|
|
|
|
<note><para>
|
|
VLC doesn't work on Mac OS 9, and will
|
|
probably never do.
|
|
|
|
</para></note>
|
|
|
|
</simplesect>
|
|
|
|
<simplesect><title>VLS</title>
|
|
|
|
<para>
|
|
VLS can stream :
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
an MPEG-1, MPEG-2 or MPEG-4 files stored on a hard drive
|
|
or on a CD,
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
a DVD located in a local DVD drive or copied on a hard
|
|
disk,
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
a satellite card (DVB-S) or a digital terrestial
|
|
television card (DVB-T)
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para>
|
|
an MPEG encoding card
|
|
|
|
;</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>to:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
<listitem><para>one machine (i.e. to one IP address) : this is called
|
|
<emphasis>unicast</emphasis>,</para></listitem>
|
|
|
|
|
|
|
|
|
|
<listitem><para>a dynamic group of machines that the clients can
|
|
join or leave (i.e. to a multicast IP address) : this is called
|
|
<emphasis>multicast</emphasis>,</para></listitem>
|
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
<para>in IPv4 or IPv6
|
|
.</para>
|
|
|
|
|
|
<para>A Pentium 100 MHz with 32 MB of memory should be enough to send one
|
|
stream on the network. When streaming a lot of videos stored on a
|
|
hard drive, the actual limitation is not the processor but the hard
|
|
drive and the network connection.</para>
|
|
|
|
|
|
|
|
|
|
<para>VLS works under Linux and Windows. To get the complete
|
|
list of VLS's possibilities on each plateform supported, see the <ulink url="http://www.videolan.org/streaming/features.html">streaming features
|
|
page</ulink>.</para>
|
|
|
|
|
|
|
|
|
|
|
|
</simplesect>
|
|
|
|
<simplesect><title>Mini-SAP-server</title>
|
|
|
|
<para>
|
|
You can add a channel information service based on the SAP/SDP
|
|
standard to the VideoLAN solution. The mini-SAP-server sends announces
|
|
about the multicast programs on the network in IPv4 or IPv6, and VLCs
|
|
receive these annouces and automatically add the programs announced to
|
|
their playlist.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
The mini-SAP-server works under Linux and Mac OS X.
|
|
|
|
</para>
|
|
|
|
</simplesect>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
|
|
What is a codec ?
|
|
</title>
|
|
|
|
|
|
|
|
<para>
|
|
To fully understand the VideoLAN solution, you must
|
|
understand the difference between a <emphasis>codec</emphasis> and a
|
|
<emphasis>container format</emphasis>
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
A <emphasis>codec</emphasis> 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
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
A <emphasis>container format</emphasis> 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 <ulink url="http://www.videolan.org/streaming/features.html">features
|
|
page</ulink>
|
|
|
|
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
To decode a stream, VLC first
|
|
<emphasis>demuxes</emphasis> it. This means that it reads the container
|
|
format and separates audio, video, and subtitles, if any. Then, each of
|
|
these are passed <emphasis>decoders</emphasis> that do the mathematical
|
|
processing to decompress the streams
|
|
|
|
.</para>
|
|
|
|
|
|
<para>
|
|
There is a particular thing about MPEG:
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
MPEG is a <emphasis>codec</emphasis>. There are
|
|
several versions of it, called MPEG-1, MPEG-2, MPEG-4, ...
|
|
|
|
</para></listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>MPEG is also a container format, sometimes refered
|
|
to as <emphasis>MPEG System</emphasis>. There are several types of MPEG:
|
|
ES, PS, and TS</para>
|
|
<para>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.</para>
|
|
|
|
|
|
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
How can I use VideoLAN ?
|
|
|
|
</title>
|
|
|
|
<sect2><title>Documentation</title>
|
|
|
|
<para>
|
|
The user documentation of VideoLAN is made up of 4 documents :
|
|
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
the <emphasis>VideoLAN Quickstart</emphasis>. This
|
|
document will give you a quick overview of VLC, VLC's stream output,
|
|
the Video On Demand solution and the channel information service
|
|
system.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
the <emphasis>VideoLAN HOWTO</emphasis>. This
|
|
document is the complete guide of the VideoLAN streaming
|
|
solution.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
the <emphasis>VLC user guide</emphasis>. This document
|
|
is the complete guide for VLC.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
the <emphasis>VLS user guide</emphasis>. This document
|
|
is the complete guide for VLS.
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
the <emphasis>VideoLAN FAQ</emphasis>.
|
|
This document contains Frequently Asked Questions about
|
|
VideoLAN.
|
|
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
|
|
The latest version of these documents can be found on the <ulink url="http://www.videolan.org/doc/">documentation page</ulink>
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
|
|
You can also have a look at the <ulink url="http://wiki.videolan.org">VideoLAN Wiki</ulink>. This is a website
|
|
that everyone can change. We use it to document everything that is not
|
|
in the "official" documentation: the tips and tricks for each O.S., the
|
|
graphical interfaces, etc...
|
|
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
User support
|
|
|
|
</title>
|
|
|
|
<para>
|
|
|
|
If you have problems using VideoLAN, and if you don't find the
|
|
answer to your problems in the documentation, please look at the <ulink url="http://www.via.ecp.fr/via/ml/videolan/index-en.html">online
|
|
archive of the mailing-lists</ulink>. There are two English-speaking
|
|
mailing-lists for the users :
|
|
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><emphasis>vlc@videolan.org</emphasis>
|
|
for the questions on VLC
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>streaming@videolan.org</emphasis>
|
|
for the questions on VLS, mini-SAP-server
|
|
and the network
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
|
|
If you want to subscribe or unsubscribe to the mailing-lists,
|
|
please go to the <ulink url="http://www.videolan.org/support/lists.html">
|
|
mailing-list page</ulink>.
|
|
|
|
|
|
</para>
|
|
|
|
<para>
|
|
You can also talk with VideoLAN users and developers on IRC :
|
|
server <emphasis>irc.freenode.net</emphasis>, channel
|
|
<emphasis>#videolan</emphasis>
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
If you find a bug, please follow the instructions on
|
|
the <ulink url="http://www.videolan.org/support/bug-reporting.html">
|
|
bug reporting page</ulink>
|
|
|
|
.</para>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Command line usage
|
|
|
|
</title>
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
<listitem><para>
|
|
|
|
VLC has many different graphical interfaces, that
|
|
are organized quite differently in order to be in harmony with the
|
|
guidelines of each operating system supported. Documenting the use
|
|
of each graphical interface is too long, and some features are only
|
|
available via the command line interface. Therefore we decided to
|
|
document only the command line interface, but in many cases it shoud
|
|
be easy to guess how to use the graphical interface for the same use
|
|
!
|
|
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
VLS has a command line and a telnet interface, but no
|
|
graphical interface !
|
|
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
|
|
All the commands that show up in this document should be typed
|
|
inside a terminal.
|
|
.</para>
|
|
|
|
<sect2><title>
|
|
Open a terminal
|
|
|
|
</title>
|
|
|
|
<simplesect><title>Windows</title>
|
|
|
|
<para>
|
|
Click on <emphasis>Start</emphasis>,
|
|
<emphasis>Run</emphasis> and type :
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><command>cmd</command> <keycap>Enter</keycap>
|
|
(Windows 2000 / XP),</para></listitem>
|
|
|
|
<listitem><para><command>command</command> <keycap>Enter</keycap>
|
|
(Windows 95 / 98 / ME).</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
The terminal appears
|
|
Le terminal apparait
|
|
</para>
|
|
|
|
<figure><title>Windows terminal</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="images/terminal-windows.jpg" format="JPG" scalefit="1" scale="60"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
|
|
<note><para>
|
|
Under Windows, you need to be in the directory where the
|
|
program is installed to run it.
|
|
</para></note>
|
|
|
|
</simplesect>
|
|
|
|
<simplesect><title>Linux / Unix</title>
|
|
|
|
<para>
|
|
Open a terminal
|
|
|
|
:</para>
|
|
|
|
<figure><title>Linux X terminal</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="images/terminal-linux.jpg" format="JPG" scalefit="1" scale="60"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
|
|
<para>
|
|
In the documentation, we adopt the following
|
|
conventions for the Unix commands :
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
commands that should be typed as
|
|
<emphasis>root</emphasis> have a <command>#</command> prompt :
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt># </prompt><userinput>command_to_be_typed_as_root</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
commands that should be typed as a regular user have a
|
|
<command>%</command> prompt :
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>command_to_be_typed_as_regular_user</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</simplesect>
|
|
|
|
<simplesect><title>Mac OS X</title>
|
|
|
|
<para>
|
|
|
|
Go to <emphasis>Applications</emphasis>, open the
|
|
folder <emphasis>Utilities</emphasis> and double-click on
|
|
<emphasis>Terminal</emphasis>
|
|
|
|
:</para>
|
|
|
|
<figure><title>Mac OS X terminal</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="images/terminal-macosx.jpg" format="JPG" scalefit="1" scale="60"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
|
|
<note><para>
|
|
Under Mac OS X, you need to be in the directory where
|
|
the program is installed to run it, and start the command with
|
|
<command>./</command>
|
|
|
|
.</para></note>
|
|
|
|
</simplesect>
|
|
|
|
<simplesect><title>BeOS</title>
|
|
|
|
<para>
|
|
In the deskbar, go to <emphasis>Application</emphasis> and then
|
|
<emphasis>Terminal</emphasis> :
|
|
</para>
|
|
|
|
<figure><title>BeOS terminal</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="images/terminal-beos.jpg" format="JPG" scalefit="1" scale="60"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
|
|
<note><para>
|
|
Under BeOS, you need to be in the directory where
|
|
the program is installed to run it, and start the command with
|
|
<command>./</command>
|
|
|
|
.</para></note>
|
|
|
|
</simplesect>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
</chapter>
|
|
|
|
<chapter id="install"><title id="tinstall">
|
|
Install the required software and hardware
|
|
|
|
</title>
|
|
|
|
<sect1><title>
|
|
Install VLC
|
|
|
|
</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
There are VLC binaries available for the many OSes, but not for
|
|
all supported OSes. If there are no binaries for your OS or if you want
|
|
to change the default settings, you can compile VLC from sources.
|
|
|
|
|
|
</para>
|
|
|
|
<sect2><title>Windows</title>
|
|
|
|
<para>
|
|
|
|
VLC works under Windows 95/98/ME/2000/XP.
|
|
Download the self-extracting file from the <ulink url="http://www.videolan.org/vlc/download-windows.html">VLC Windows
|
|
download page</ulink>. Launch the <filename>.exe</filename> to install
|
|
VLC.
|
|
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>BeOS</title>
|
|
|
|
<para>
|
|
|
|
Download the Zip file from the <ulink url="http://www.videolan.org/vlc/download-beos.html">VLC BeOS download
|
|
page</ulink>. Unzip the file in a directory to install VLC.
|
|
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>Mac OS X</title>
|
|
<para>
|
|
|
|
Download the Mac OS X package from the <ulink url="http://www.videolan.org/vlc/download-macosx.html">VLC
|
|
MacOS X download page</ulink> . Double-click on the icon of the
|
|
package : an icon will appear on your Desktop, right beside your
|
|
drive(s). Open it and drag the VLC application from the resulting
|
|
window to the place where you want to install it (it should be
|
|
<filename>/Applications</filename>).
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>Debian GNU/Linux</title>
|
|
|
|
<simplesect><title>Debian stable (woody)</title>
|
|
|
|
<para>Add the following lines to your
|
|
|
|
<filename>/etc/apt/sources.list</filename>:</para>
|
|
|
|
<programlisting>
|
|
deb http://www.videolan.org/pub/videolan/debian $(ARCH)/
|
|
deb-src http://www.videolan.org/pub/videolan/debian sources/
|
|
</programlisting>
|
|
|
|
<para>
|
|
Then, for a normal install, do:
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt># </prompt><userinput>apt-get update</userinput>
|
|
<prompt># </prompt><userinput>apt-get install gnome-vlc libdvdcss2</userinput>
|
|
</screen>
|
|
|
|
</simplesect>
|
|
|
|
<simplesect><title>Debian unstable (sid)</title>
|
|
|
|
<para>Add the following lines to your
|
|
|
|
<filename>/etc/apt/sources.list</filename>:</para>
|
|
|
|
<programlisting>
|
|
deb http://www.videolan.org/pub/videolan/debian $(ARCH)/
|
|
deb-src http://www.videolan.org/pub/videolan/debian sources/
|
|
</programlisting>
|
|
|
|
<para>
|
|
Then, for a normal install, do:
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt># </prompt><userinput>apt-get update</userinput>
|
|
<prompt># </prompt><userinput>apt-get install wxvlc libdvdcss2</userinput>
|
|
</screen>
|
|
|
|
</simplesect>
|
|
|
|
<simplesect><title>Debian testing (sarge)</title>
|
|
|
|
<para>
|
|
|
|
You should not be using Debian testing unless you perfectly know
|
|
what you are doing. It is almost impossible to support Debian testing
|
|
and there are no plans to do it.
|
|
For more informations on Debian testing, please look:
|
|
<ulink url="http://www.debian.org/devel/testing">testing page</ulink>
|
|
|
|
</para>
|
|
|
|
</simplesect>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>Linux Mandrake</title>
|
|
|
|
<para>
|
|
|
|
There are VLC packages for Mandrake 9.1 and cooker.
|
|
</para>
|
|
|
|
<para>
|
|
|
|
To install them, add the following
|
|
sources for either Mandrake 9.1 or Cooker (you can use <ulink url="http://plf.zarb.org/~nanardon/">Easy urpmi</ulink> for that):
|
|
<emphasis>contrib</emphasis> from the core distribution and
|
|
<emphasis>plf</emphasis> (Penguin Liberation Front) from the external
|
|
add-ons.
|
|
|
|
|
|
|
|
</para>
|
|
|
|
<para>
|
|
Then install the required packages with
|
|
|
|
<command>urpmi</command>:</para>
|
|
|
|
<screen>
|
|
<prompt># </prompt><userinput>urpmi libdvdcss2 libdvdplay0 wxvlc vlc-plugin-a52 vlc-plugin-ogg vlc-plugin-mad</userinput>
|
|
</screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>Linux Redhat</title>
|
|
|
|
|
|
<para>
|
|
Download the RPM package <emphasis>vlc</emphasis> and the packages
|
|
listed in the <emphasis>required libraries and codecs</emphasis>
|
|
section (the other packages are just optional) from the <ulink url="http://www.videolan.org/vlc/download-redhat.html">VLC Red Hat
|
|
download page</ulink> and put them all into the same directory.</para>
|
|
<para>Then install the RPM packages you have downloaded:</para>
|
|
|
|
|
|
|
|
<screen>
|
|
<prompt># </prompt><userinput>rpm -U *.rpm</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
|
|
If you have not installed all the RPM packages included with your
|
|
distribution, you may be asked to install a few of them first.
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
|
|
Compile the sources by yourself (for every other OS)
|
|
|
|
</title>
|
|
|
|
|
|
<para>The method below is for any Unix system supported by VLC, for
|
|
which there is no packages available. It explains how to compile and
|
|
install VLC and the needed libraries from their source code.</para>
|
|
|
|
<para>You can also compile VLC under Linux this way if you want to
|
|
modify the default supported modules.</para>
|
|
|
|
|
|
<sect3><title>Install the libraries
|
|
</title>
|
|
|
|
<para>Many libraries are needed :
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><emphasis>libdvbpsi</emphasis>
|
|
(compulsory)
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>mpeg2dec</emphasis>
|
|
(compulsory)
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>libdvdcss</emphasis>
|
|
if you want to be able to read encrypted DVDs
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>libdvdplay</emphasis>
|
|
if you want to have DVD menu navigation
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>a52dec</emphasis>
|
|
if you want to be able to decode the AC3 (i.e. A52)
|
|
sound format often used in DVDs
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>ffmpeg</emphasis>, <emphasis>libmad</emphasis>,
|
|
<emphasis>faad2</emphasis>
|
|
if you want to read MPEG 4 / DivX files
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>libogg</emphasis> &
|
|
<emphasis>libvorbis</emphasis>
|
|
if you want to read Ogg Vorbis files
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
Download the libraries from the <ulink url="http://www.videolan.org/vlc/download-sources.html">VLC sources
|
|
download page</ulink>.
|
|
</para>
|
|
|
|
<para>
|
|
For each library :
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
uncompress :
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>tar xvzf library.tar.gz</userinput>
|
|
</screen>
|
|
|
|
<para>or</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>tar xvjf library.tar.bz2</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
configure :
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>cd library</userinput>
|
|
<prompt>% </prompt><userinput>./configure</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
compile and install :
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>make</userinput>
|
|
<prompt># </prompt><userinput>make install</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
|
|
Check that the configuration file <filename>/etc/ld.so.conf</filename>
|
|
contains the following line :
|
|
</para>
|
|
|
|
<programlisting>
|
|
/usr/local/lib
|
|
</programlisting>
|
|
|
|
<para>
|
|
|
|
If the line is not present, add-it and then run (as root):
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt># </prompt><userinput>ldconfig</userinput>
|
|
</screen>
|
|
|
|
</sect3>
|
|
|
|
<sect3><title>
|
|
Install VLC
|
|
</title>
|
|
|
|
<para>
|
|
|
|
Download the sources of the lastest release : get the
|
|
file <filename>vlc-version.tar.gz</filename> from the <ulink url="http://www.videolan.org/vlc/download-sources.html">VLC sources
|
|
download page</ulink>. Uncompress-it :
|
|
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>tar xvzf vlc-version.tar.gz</userinput>
|
|
<prompt>% </prompt><userinput>cd vlc-version</userinput>
|
|
</screen>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
To get the list of configuration options, do :
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>./configure --help</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
Please note that all the modules are described in
|
|
the <emphasis>Modules</emphasis> section of the <ulink url="http://www.videolan.org/doc/vlc-user-guide/">VLC User
|
|
Guide</ulink>
|
|
.</para>
|
|
|
|
|
|
<para>
|
|
Examples of very simple configurations:
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
if you want a basic VLC, do
|
|
|
|
: </para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>./configure</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
|
|
if you want the Gnome interface instead of the GTK
|
|
interface (you will need the developement packages of Gnome) :
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>./configure --enable-gnome</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
Then, compile and install :
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>make</userinput>
|
|
<prompt>% </prompt><userinput>su</userinput>
|
|
<prompt>Password: </prompt><userinput> [Root Password]</userinput>
|
|
<prompt># </prompt><userinput>make install</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
|
|
Please note that the installation (<command>make install</command>
|
|
command) is not mandatory. You can execute VLC from where you compiled
|
|
it.
|
|
|
|
</para>
|
|
|
|
</sect3>
|
|
</sect2>
|
|
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Install VLS
|
|
|
|
</title>
|
|
|
|
|
|
|
|
<sect2><title>Windows</title>
|
|
|
|
<para>
|
|
Download the ZIP file from the <ulink url="http://www.videolan.org/streaming/download-vls-windows.html">VLS
|
|
Windows download page</ulink>, unzip-it and run
|
|
<filename>setup.exe</filename>
|
|
|
|
.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>GNULinux & Mac OS X</title>
|
|
|
|
<simplesect><title>
|
|
Install the libraries
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Many libraries are needed for particular uses
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><emphasis>libdvbpsi</emphasis>
|
|
(always needed)
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>libdvdcss</emphasis>
|
|
if you want to be able to access encrypted DVDs
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>libdvdread</emphasis>
|
|
if you want to be able to stream DVDs
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>libdvb</emphasis>
|
|
if you want to be able to stream from a DVB card (a
|
|
satellite card or a digital terrestial TV card)
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
Download the libraries from the <ulink url="http://www.videolan.org/streaming/download-vls-sources.html">VLS
|
|
sources download page</ulink>
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
For each library, uncompress, configure
|
|
(unless for <emphasis>libdvb</emphasis> which doesn't have a
|
|
<emphasis>./configure</emphasis>), compile and install
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>tar xvzf library.tar.gz</userinput>
|
|
<prompt>% </prompt><userinput>cd library</userinput>
|
|
<prompt>% </prompt><userinput>./configure</userinput>
|
|
<prompt>% </prompt><userinput>make</userinput>
|
|
<prompt># </prompt><userinput>make install</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
Check that the configuration file
|
|
<filename>/etc/ld.so.conf</filename> contains the following line
|
|
|
|
:</para>
|
|
<programlisting>
|
|
/usr/local/lib
|
|
</programlisting>
|
|
|
|
<para>
|
|
If the line is not present, add-it and then run
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt># </prompt><userinput>ldconfig</userinput>
|
|
</screen>
|
|
|
|
</simplesect>
|
|
|
|
<simplesect><title>
|
|
Install VLS
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Download the sources of the latest release : get
|
|
the file <filename>vls-version.tar.gz</filename> from the <ulink url="http://www.videolan.org/streaming/download-vls-sources.html">VLS
|
|
sources download page</ulink>. Uncompress-it and generate
|
|
<emphasis>./configure</emphasis>
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>tar xvzf vls-version.tar.gz</userinput>
|
|
<prompt>% </prompt><userinput>cd vls-version</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
To get the list of configuration options, do
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>./configure --help</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
Then configure vls
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
if you want a basic VLS without DVD support, do
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>./configure --disable-dvd</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
if you want a VLS with DVD support, do
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>./configure</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
if you want a VLS with DVB support, do
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>./configure --enable-dvb --with-dvb=PATH_TO_DVB_DRIVERS --with-libdvb=PATH_TO_LIBDVB</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
Then, compile and install
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>make</userinput>
|
|
<prompt># </prompt><userinput>make install</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
You can also do a <command>make uninstall</command>,
|
|
<command>make clean</command> or <command>make distclean</command> as
|
|
needed
|
|
|
|
.</para>
|
|
|
|
</simplesect>
|
|
|
|
</sect2>
|
|
|
|
|
|
</sect1>
|
|
|
|
</chapter>
|
|
|
|
|
|
|
|
<chapter id="receive"><title id="treceive">
|
|
Receive and save a stream
|
|
|
|
</title>
|
|
|
|
<sect1><title>
|
|
Receive a stream with VLC
|
|
|
|
</title>
|
|
|
|
<sect2><title>
|
|
Receive an unicast stream
|
|
|
|
</title>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv udp:</userinput>
|
|
</screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
Receive a multicast stream
|
|
|
|
</title>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv udp:@239.255.12.42</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
where <emphasis>239.255.12.42</emphasis> is the
|
|
multicast IP address you want to join
|
|
|
|
.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
Receive an HTTP/FTP/MMS stream
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Use one of the following command lines
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv http://example/stream.xyz</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
where <emphasis>http://example/stream.xyz</emphasis>
|
|
is the HTTP address of the stream
|
|
|
|
;</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv ftp://example/stream.xyz</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
where <emphasis>ftp://example/stream.xyz</emphasis>
|
|
is the FTP address of the stream
|
|
|
|
;</para>
|
|
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv mms://viptvr.yacast.fr/encoderfranceinfo</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
where
|
|
<emphasis>mms://viptvr.yacast.fr/encoderfranceinfo</emphasis> is the MMS
|
|
address of the stream
|
|
|
|
.</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Save a stream with VLC
|
|
|
|
</title>
|
|
|
|
<para>
|
|
VLC can save the stream to the disk. In order
|
|
to do this, use the Stream Output of VLC : you can do it via the
|
|
graphical interface, or you can add to the command line the following
|
|
argument
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<userinput>--sout file/muxer:stream.xyz</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
where
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><emphasis>muxer</emphasis>
|
|
is one of the formats supported by VLC's stream
|
|
output, i.e.
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><emphasis>avi</emphasis>
|
|
for AVI format
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>ogg</emphasis>
|
|
for OGG format
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>ps</emphasis>
|
|
for MPEG2-PS format
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>ts</emphasis> or
|
|
<emphasis>ts_dvbpsi</emphasis>
|
|
for MPEG2-PS format (the latter uses
|
|
<emphasis>libdvbpsi</emphasis> for the task)
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
and <filename>stream.xyz</filename> is the name of
|
|
the file you want to save the stream to, with the right extension
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Receive a stream with a set-top-box
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Some set-top-boxes with Ethernet cards can receive
|
|
MPEG2-TS streams over UDP and support multicast. This is the case
|
|
of the <ulink url="http://www.pace.co.uk">Pace</ulink> and <ulink url="http://www.aminocom.com">Aminocom</ulink> set top boxes. We have
|
|
tested the <emphasis>AmiNET 100</emphasis> set-top-box from Aminocom: it
|
|
is nice and small, and it works very well with VideoLAN
|
|
|
|
.</para>
|
|
|
|
</sect1>
|
|
</chapter>
|
|
|
|
|
|
|
|
<chapter id="file"><title id="tfile">
|
|
Stream a file
|
|
|
|
</title>
|
|
|
|
<sect1><title>
|
|
Stream a file with VLC
|
|
|
|
</title>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv video1.xyz --sout udp:192.168.0.42 --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
where
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><filename>video1.xyz</filename>
|
|
is the file you want to stream
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>192.168.0.42</emphasis>
|
|
is either
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
the IP address of the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or the DNS name the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or a multicast IP address
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis>12</emphasis>
|
|
is the value of the TTL (Time To
|
|
Live) of your IP packets (which means that the stream will be
|
|
able to cross 11 routers)
|
|
|
|
.</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
If you want to stream the file continuously, add the
|
|
<emphasis>--loop</emphasis> option
|
|
|
|
.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Stream a file with VLS
|
|
</title>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vls -vv -d udp:192.168.0.42 file:video1.xyz --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>where
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><filename>video1.xyz</filename>
|
|
is the file you want to stream
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>192.168.0.42</emphasis>
|
|
is either
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
the IP address of the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or the DNS name the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or a multicast IP address
|
|
|
|
.</para></listitem>
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis>12</emphasis>
|
|
is the value of the TTL (Time To
|
|
Live) of your IP packets (which means that the stream will be
|
|
able to cross 11 routers)
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>
|
|
|
|
When you want to stop VLS, use the key combination
|
|
|
|
<keycombo><keycap>Ctrl</keycap><keycap>c</keycap></keycombo>.</para>
|
|
|
|
<para>
|
|
If you want to stream the file continuously, add the
|
|
<emphasis>--loop</emphasis> option
|
|
|
|
.</para>
|
|
|
|
|
|
<note>
|
|
|
|
|
|
<para>
|
|
VLS can stream MPEG files that meet two critera
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
the file must be MPEG <emphasis>PS</emphasis>
|
|
(Program Stream) or MPEG <emphasis>TS</emphasis> (Transport Stream),
|
|
that contain video and audio multiplexed. VLS cannot stream MPEG
|
|
<emphasis>ES</emphasis> (Elementary Stream), i.e. a file with only audio
|
|
or video
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
In order to know if an MPEG file is MPEG
|
|
<emphasis>PS</emphasis>, MPEG <emphasis>TS</emphasis> or MPEG
|
|
<emphasis>ES</emphasis>, read the file with VLC and look at the messages
|
|
(select in the menu <emphasis>View / Messages</emphasis>, or use the
|
|
command line <command>vlc -vvv</command>)
|
|
|
|
.</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
If you see a line
|
|
:</para>
|
|
|
|
<programlisting>
|
|
[00000107] main module debug: using demux module "ts_dvbpsi"
|
|
</programlisting>
|
|
|
|
<para>
|
|
it means the file is MPEG TS
|
|
|
|
.</para></listitem>
|
|
|
|
|
|
<listitem><para>
|
|
If you see a line
|
|
:</para>
|
|
|
|
<programlisting>
|
|
[00000109] main module debug: using demux module "ps"
|
|
</programlisting>
|
|
|
|
<para>
|
|
it means the file is MPEG PS
|
|
|
|
.</para></listitem>
|
|
|
|
<listitem><para>
|
|
If you see a line
|
|
:</para>
|
|
|
|
<programlisting>
|
|
[00000109] main module debug: using demux module "es"
|
|
</programlisting>
|
|
|
|
<para>
|
|
it means the file is MPEG ES, VLS can't stream it.
|
|
|
|
.</para></listitem>
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
the sequence header of the video must repeat itself
|
|
regularly, which is often the case with MPEG-2, but very rare with
|
|
MPEG-1. There is no easy way to know if the sequence header is repeated
|
|
regularly. Files with a <emphasis>.vob</emphasis> extension are
|
|
normally MPEG-2 files and files with <emphasis>.mpg</emphasis> or
|
|
<emphasis>.mpeg</emphasis> extension or usually MPEG-1 files
|
|
|
|
.</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
You can download this
|
|
streamable MPEG-2 PS file for your tests : <ulink url="ftp://ftp.videolan.org/pub/videolan/streams/presentation/presentation_short.vob">presentation_short.vob</ulink>
|
|
|
|
.</para>
|
|
|
|
</note>
|
|
|
|
</sect1>
|
|
</chapter>
|
|
|
|
|
|
|
|
<chapter id="dvd"><title id="tdvd">
|
|
Stream a DVD
|
|
|
|
</title>
|
|
|
|
<note><para>
|
|
|
|
|
|
Under Unix/Linux, you must have write access to the device
|
|
corresponding to your DVD drive. For that, you should be in the
|
|
<emphasis>disk</emphasis> or <emphasis>cdrom</emphasis> group (look
|
|
at the permissions in <filename>/dev</filename>). If you're not, add
|
|
yourself to the group
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt># </prompt><userinput>adduser your_login disk_or_cdrom</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
and then restart your session
|
|
.</para></note>
|
|
|
|
<sect1><title>
|
|
Stream a DVD with VLC
|
|
|
|
</title>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv dvdold:/dev/dvd --sout udp:192.168.0.12 --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
where
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><filename>/dev/dvd</filename>
|
|
is the name of your DVD drive (put
|
|
<filename>D:</filename> under Windows if <filename>D</filename> is
|
|
the letter of your DVD drive) or the directory where you copied your
|
|
DVD
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>192.168.0.42</emphasis>
|
|
is either
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
the IP address of the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or the DNS name the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or a multicast IP address
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis>12</emphasis>
|
|
is the value of the TTL (Time To
|
|
Live) of your IP packets (which means that the stream will be
|
|
able to cross 11 routers)
|
|
|
|
.</para></listitem>
|
|
</itemizedlist>
|
|
|
|
|
|
<para>
|
|
If you want to stream the DVD continuously, add the
|
|
<emphasis>--loop</emphasis> option
|
|
|
|
.</para>
|
|
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Stream a DVD with VLS
|
|
</title>
|
|
|
|
<note><para>
|
|
This is possible under GNU/Linux only
|
|
|
|
.</para></note>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vls -vv -d udp:192.168.0.42 dvd:/dev/dvd --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>where
|
|
:</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><filename>/dev/dvd</filename>
|
|
is the name of your DVD drive
|
|
or the directory where you copied your
|
|
DVD
|
|
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>192.168.0.42</emphasis>
|
|
is either
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
the IP address of the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or the DNS name the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or a multicast IP address
|
|
|
|
.</para></listitem>
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis>12</emphasis>
|
|
is the value of the TTL (Time To
|
|
Live) of your IP packets (which means that the stream will be
|
|
able to cross 11 routers)
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
If you want to stream the DVD continuously, add the
|
|
<emphasis>--loop</emphasis> option
|
|
|
|
.</para>
|
|
|
|
</sect1>
|
|
|
|
</chapter>
|
|
|
|
|
|
|
|
|
|
<chapter id="dvb"><title id="tdvb">
|
|
Stream a DVB channel (satellite or digital
|
|
terrestial TV)
|
|
|
|
</title>
|
|
|
|
<note><para>
|
|
This is possible under GNU/Linux only
|
|
|
|
.</para></note>
|
|
|
|
<sect1><title>
|
|
Install the DVB drivers
|
|
|
|
</title>
|
|
|
|
<para>
|
|
If you want to be able to stream from a DVB card (a
|
|
satellite card or a digital terrestial TV card), you need to install the
|
|
DVB drivers:
|
|
|
|
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
|
|
if you use a Linux 2.6.x kernel, you just need to
|
|
compile the right modules ;
|
|
|
|
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
|
|
if you are using a Linux 2.4.x
|
|
kernel, you must download the latest release of the DVB drivers from the <ulink url="http://www.linuxtv.org/download/dvb/">DVB drivers download
|
|
page</ulink> of the <ulink url="http://www.linuxtv.org/">LinuxTV</ulink>
|
|
Project.
|
|
|
|
|
|
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<para>
|
|
Uncompress the tarball and follow the instructions
|
|
written in the <filename>INSTALL</filename> file to compile and install
|
|
the drivers
|
|
|
|
.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Stream with VLS
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Put a <filename>.dvbrc</filename> file containing
|
|
the DVB channels (satellite or digital terrestial TV channels) you
|
|
want to stream in your home directory (some are provided in the
|
|
<emphasis>libdvb</emphasis> tarball for the satellite channels)
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
Run VLS with the following command line
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vls -vv -d udp:192.168.0.42 dvb:"EUROSPORT" --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>where
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><emphasis>"EUROSPORT"</emphasis>
|
|
is the channel you want to stream as written in
|
|
your <filename>~/.dvbrc</filename> file
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>192.168.0.42</emphasis>
|
|
is either
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
the IP address of the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or the DNS name the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or a multicast IP address
|
|
|
|
.</para></listitem>
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis>12</emphasis>
|
|
is the value of the TTL (Time To
|
|
Live) of your IP packets (which means that the stream will be
|
|
able to cross 11 routers)
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>Stream with VLC</title>
|
|
|
|
<note><para>For this, you must use the CVS version of VLC and compile
|
|
it with <command>./configure --enable-dvb</command> This feature should
|
|
still be considered as experimental.</para></note>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv --program 8211 dvb:12597000:0:3:27500000 --sout udp:192.168.0.12 --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>where :</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><filename>8211</filename> is the PID of the DVB
|
|
channel you would like to stream, expressed as a decimal number
|
|
;</para></listitem>
|
|
|
|
<listitem><para><filename>12597000</filename> is the frequency of the
|
|
transponder you want to stream from in Hz;</para></listitem>
|
|
|
|
<listitem><para><filename>0</filename> is the polarization (0 for
|
|
vertical, 1 for horizontal) ;</para></listitem>
|
|
|
|
<listitem><para><filename>3</filename> is the FEC (3 for 3/4, 9 for
|
|
auto) ;</para></listitem>
|
|
|
|
<listitem><para><filename>27500000</filename> is the transponder symbol
|
|
rate in Hz ;</para></listitem>
|
|
|
|
<listitem><para><emphasis>192.168.0.12</emphasis> is either :</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>the IP address of the machine you want to unicast to
|
|
;</para></listitem>
|
|
|
|
<listitem><para>or the DNS name the machine you want to unicast to
|
|
;</para></listitem>
|
|
|
|
<listitem><para>or the multicast IP address.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis>12</emphasis> is the value of the TTL (Time To
|
|
Live) of your IP packets (which means that the stream will be
|
|
able to cross 11 routers).</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect1>
|
|
</chapter>
|
|
|
|
|
|
|
|
|
|
<chapter id="hardencoding"><title id="thardencoding">
|
|
|
|
Stream from an MPEG encoding card
|
|
|
|
</title>
|
|
|
|
<note><para>
|
|
This is possible under GNU/Linux only
|
|
|
|
.</para></note>
|
|
|
|
|
|
<para>
|
|
|
|
VideoLAN supports two MPEG-2 encoding cards
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>Hauppauge WinTV-PVR-250,</para></listitem>
|
|
|
|
<listitem><para>Visiontech Kfir.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
The Hauppauge WinTV-PVR-250 gives much better
|
|
results and is cheaper than the Visiontech Kfir
|
|
|
|
.</para>
|
|
|
|
|
|
<sect1><title>
|
|
|
|
Stream with the Hauppauge WinTV-PVR-250 card
|
|
|
|
</title>
|
|
|
|
<sect2><title>
|
|
Install the drivers
|
|
|
|
</title>
|
|
|
|
<para>
|
|
First, you will have to patch your kernel to support
|
|
the v4l2 API (Video 4 Linux version 2). The patch is available on the
|
|
<ulink url="http://bytesex.org/v4l/">Video4Linux HQ</ulink>
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
Once your kernel is ready, install the CVS version
|
|
of the Linux drivers for the Hauppauge WinTV-PVR-250. They are hosted on
|
|
<ulink url="http://ivtv.sourceforge.net/">ivtv.sourceforge.net</ulink>.
|
|
Then, you will have to create the device and load the modules; for this,
|
|
please refer to the documentation shipped with the drivers
|
|
|
|
|
|
.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
Stream with VLC
|
|
|
|
</title>
|
|
|
|
<note><para>
|
|
You must add <command>--enable-pvr</command>
|
|
to <command>./configure</command> to use this
|
|
feature. You may want to change the value of
|
|
<emphasis>CR_MAX_AVERAGE_COUNTER</emphasis> to <emphasis>1000</emphasis>
|
|
in <filename>src/input/input_clock.c</filename> to work around a problem
|
|
with the card
|
|
|
|
.</para></note>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv pvr:/dev/video0:norm=secam:size=720x576:frequency=576250:
|
|
bitrate=3000000:maxbitrate=4000000 --sout udp:192.168.0.42 --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>where
|
|
:</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><emphasis>/dev/video0</emphasis>
|
|
is the device corresponding to the encoding card
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>norm=secam</emphasis>
|
|
is name of the standard of the analogic signal
|
|
(possible values are pal, secam, and ntsc)
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>size=720x576</emphasis>
|
|
is the size of the video you want to stream
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>frequency=567250</emphasis>
|
|
is the frequency in kHz of the channel you want to
|
|
stream
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>bitrate=3000000</emphasis>
|
|
is the average bitrate of the stream
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>maxbitrate=4000000</emphasis>
|
|
is the maximum bitrate of the stream
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>192.168.0.42</emphasis>
|
|
is either
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
the IP address of the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or the DNS name the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or a multicast IP address
|
|
|
|
.</para></listitem>
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis>12</emphasis>
|
|
is the value of the TTL (Time To
|
|
Live) of your IP packets (which means that the stream will be
|
|
able to cross 11 routers)
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
Stream with VLS
|
|
|
|
</title>
|
|
|
|
<para>
|
|
There is no command line interface for this input
|
|
for the moment, so you will have to use the configuration file
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
You cannot set-up the parameters of the drivers
|
|
(norm, size, frequency, bitrate, etc...) with VLS: for that, you will
|
|
have to use the program <command>ptune.pl</command> that come with the
|
|
drivers. Please refer to the documentation shipped with the drivers to
|
|
learn how to use this program
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
Here is a typical configuration file
|
|
<filename>vls.cfg</filename>to run VLS with a Hauppauge WinTV-PVR-250
|
|
encoding card
|
|
|
|
|
|
:</para>
|
|
|
|
<programlisting>
|
|
# vls.cfg (VLS configuration file)
|
|
# Example of the VideoLAN HOWTO for the Hauppauge WinTV-PVR-250 encoding card
|
|
|
|
BEGIN "Inputs"
|
|
|
|
pvr = "video"
|
|
|
|
END
|
|
|
|
BEGIN "pvr"
|
|
|
|
# Hauppauge WinTV-PVR-250 device
|
|
Device = "/dev/video0"
|
|
|
|
# Stream type
|
|
Type = "Mpeg2-PS"
|
|
|
|
END
|
|
|
|
BEGIN "Channels"
|
|
|
|
channel1 = "network"
|
|
|
|
END
|
|
|
|
BEGIN "channel1"
|
|
|
|
# Unicast or multicast IP address
|
|
DstHost = "192.168.0.42"
|
|
|
|
# Destination port
|
|
DstPort = "1234"
|
|
|
|
# If it's a multicast IP address, uncomment the line below
|
|
#Type = "multicast"
|
|
|
|
# If it's a multicast IP address, set the "Time To Live" below
|
|
#TTL = "12"
|
|
|
|
END
|
|
|
|
BEGIN "LaunchOnStartUp"
|
|
|
|
command1 = "start video channel1 pvr"
|
|
|
|
END
|
|
</programlisting>
|
|
|
|
<para>
|
|
Once you have adapted the configuration file above,
|
|
run VLS
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vls -vv -f vls.cfg</userinput>
|
|
</screen>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Stream with the Visiontech Kfir card
|
|
|
|
</title>
|
|
|
|
<sect2><title>
|
|
Install the drivers
|
|
|
|
</title>
|
|
|
|
<para>
|
|
If you want to be able to stream from a
|
|
Visiontech Kfir card, you need to install its Linux drivers.
|
|
Download the latest release of the drivers from the <ulink url="http://www.linuxtv.org/download/mpeg2/">drivers download
|
|
page</ulink> of the <ulink url="http://www.linuxtv.org/">LinuxTV web
|
|
site</ulink>
|
|
|
|
.</para>
|
|
|
|
|
|
<para>
|
|
Uncompress the tarball and follow the instructions
|
|
written in the <filename>INSTALL</filename> file to compile and install
|
|
the drivers
|
|
|
|
.</para>
|
|
|
|
<note><para>
|
|
If you have a VIA chipset, you need to disable USB
|
|
in the BIOS
|
|
|
|
.</para></note>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
|
|
Stream with VLC
|
|
|
|
</title>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv kfir:/dev/video --sout udp:192.168.0.42 --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>where
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><filename>/dev/video</filename>
|
|
is the device corresponding to the Kfir card
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>192.168.0.42</emphasis>
|
|
is either
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
the IP address of the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or the DNS name the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or a multicast IP address
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis>12</emphasis>
|
|
is the value of the TTL (Time To
|
|
Live) of your IP packets (which means that the stream will be
|
|
able to cross 11 routers)
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>Stream with VLS</title>
|
|
<para>
|
|
There is no command line interface for this input
|
|
for the moment, so you will have to use the configuration file
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
Here is a typical configuration file
|
|
<filename>vls.cfg</filename>to run VLS with a VisionTech Kfir
|
|
encoding card
|
|
|
|
:</para>
|
|
|
|
|
|
<programlisting>
|
|
# vls.cfg (VLS configuration file)
|
|
# Example of the VideoLAN HOWTO for the Visiontech Kfir encoding card
|
|
|
|
BEGIN "Inputs"
|
|
|
|
kfir = "video"
|
|
|
|
END
|
|
|
|
BEGIN "kfir"
|
|
|
|
# Visiontech Kfir device
|
|
Device = "/dev/video"
|
|
|
|
# Stream type (default is "Mpeg2-PS")
|
|
Type = "Mpeg2-PS"
|
|
|
|
END
|
|
|
|
BEGIN "Channels"
|
|
|
|
channel1 = "network"
|
|
|
|
END
|
|
|
|
BEGIN "channel1"
|
|
|
|
# Unicast or multicast IP address
|
|
DstHost = "192.168.0.42"
|
|
|
|
# Destination port
|
|
DstPort = "1234"
|
|
|
|
# If it's a multicast IP address, uncomment the line below
|
|
#Type = "multicast"
|
|
|
|
# If it's a multicast IP address, set the "Time To Live" below
|
|
#TTL = "12"
|
|
|
|
END
|
|
|
|
BEGIN "LaunchOnStartUp"
|
|
|
|
command1 = "start video channel1 kfir"
|
|
|
|
END
|
|
</programlisting>
|
|
|
|
<para>
|
|
Once you have adapted the configuration file above,
|
|
run VLS
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vls -vv -f vls.cfg</userinput>
|
|
</screen>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
</chapter>
|
|
|
|
|
|
|
|
|
|
<chapter id="softencoding"><title id="tsoftencoding">
|
|
Stream from an acquisition card or a webcam
|
|
|
|
</title>
|
|
|
|
<note><para>
|
|
This is possible under GNU/Linux only
|
|
|
|
.</para></note>
|
|
|
|
|
|
<sect1><title>
|
|
|
|
Install the Video for Linux drivers
|
|
|
|
</title>
|
|
|
|
<para>
|
|
If you want to stream from an acquisition card
|
|
or a webcam, a video4linux driver must be available for it. You can
|
|
find more information about video4linux and supported devices <ulink url="http://www.exploits.org/v4l">here</ulink>
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
Compile the right module for your device, and insert
|
|
it into your kernel (Some video4linux modules are shipped with the 2.4.x
|
|
Linux kernels). You can test your device by using any of the listed
|
|
programs in the <emphasis>Video: TV and PVR/DVR</emphasis> section of
|
|
<ulink url="http://www.exploits.org/v4l/">this page</ulink>
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
Note that v4l2 modules will also work with VLC
|
|
|
|
.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Stream with VLC
|
|
|
|
</title>
|
|
|
|
<note><para>
|
|
You must add <command>--enable-v4l</command> to
|
|
<command>./configure</command> to use this feature
|
|
|
|
.</para></note>
|
|
|
|
<screen>
|
|
|
|
<prompt>% </prompt><userinput>vlc -vvv v4l:/dev/video:norm=secam:frequency=543250:size=640x480:channel=0:adev=/dev/dsp:audio=0
|
|
--sout '#transcode{vcodec=mp4v,acodec=mpga,vb=3000,ab=256,vt=800000,keyint=80,deinterlace}:std{access=udp,mux=ts,url=239.255.12.13}' --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>where
|
|
:</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><filename>/dev/video</filename>
|
|
is the device corresponding to your acquisition
|
|
card or your webcam
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>norm=secam</emphasis>
|
|
is name of the standard of the analogic signal
|
|
(possible values are pal, secam, and ntsc)
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>frequency=543250</emphasis>
|
|
is the frequency of the channel in khz
|
|
(<emphasis>Warning :</emphasis> for VLC < 0.6.1, Frequency is channel
|
|
frequency in MHz multiplied by 16)
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para>
|
|
<emphasis>size=640x480</emphasis>
|
|
is the size of the video you want (you can also put the
|
|
standard size like <emphasis>subqcif</emphasis> (128x96),
|
|
<emphasis>qsif</emphasis> (160x120), <emphasis>qcif</emphasis>
|
|
(176x144), <emphasis>sif</emphasis> (320x240), <emphasis>cif</emphasis>
|
|
(352x288) or <emphasis>vga</emphasis> (640x480))
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>channel=0</emphasis>
|
|
is the number of the channel (usually 0 is for
|
|
tuner, 1 for composite and 2 for svideo)
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>adev=/dev/dsp</emphasis>
|
|
is the audio device
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>audio=1</emphasis>
|
|
is the number of the audio
|
|
channel (usually 0 is for mono and 1 for stereo)
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>vcodec=mp4v</emphasis>
|
|
is the video format you want to encode in
|
|
(<emphasis>mp4v</emphasis> is MPEG-4, <emphasis>mpgv</emphasis> is
|
|
MPEG-1, and there is also
|
|
|
|
<emphasis>h263</emphasis>, <emphasis>DIV1</emphasis>,
|
|
<emphasis>DIV2</emphasis>, <emphasis>DIV3</emphasis>,
|
|
<emphasis>I420</emphasis>, <emphasis>I422</emphasis>,
|
|
<emphasis>I444</emphasis>, <emphasis>RV24</emphasis>,
|
|
<emphasis>YUY2</emphasis>),</para></listitem>
|
|
|
|
<listitem><para><emphasis>acodec=mpga</emphasis>
|
|
is the audio format you want to encode
|
|
in (<emphasis>mpga</emphasis> is MPEG audio layer 2,
|
|
<emphasis>a52</emphasis> is A52 i.e. AC3 sound)
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>vb=3000</emphasis>
|
|
is the video bitrate in Kbit/s
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>ab=256</emphasis>
|
|
is the audio bitrate in Kbit/s
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para><emphasis>vt=800000</emphasis>
|
|
is the video bitrate tolerance in bit/s
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>keyint=80</emphasis>
|
|
is the maximum interval between two "I" images in
|
|
number of images
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>deinterlace</emphasis>
|
|
tells VLC to deinterlace the video on the fly
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>192.168.0.42</emphasis>
|
|
is either
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
the IP address of the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or the DNS name the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or a multicast IP address
|
|
|
|
.</para></listitem>
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis>12</emphasis>
|
|
is the value of the TTL (Time To
|
|
Live) of your IP packets (which means that the stream will be
|
|
able to cross 11 routers)
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Stream with VLS
|
|
|
|
</title>
|
|
|
|
<note><para>
|
|
You need the CVS version of VLS. When you
|
|
compile it, you must do a <command>./bootstrap</command> and
|
|
<command>./configure --enable-v4l
|
|
--with-ffmpeg=PATH</command> (where <emphasis>PATH</emphasis> is the
|
|
absolute path to the directory where you compiled ffmpeg, and not the
|
|
relative path !)
|
|
|
|
.</para></note>
|
|
|
|
<para>
|
|
There is no command line interface for this input
|
|
for the moment, so you will have to use the configuration file
|
|
|
|
.</para>
|
|
|
|
<para>
|
|
Here is a typical configuration file
|
|
<filename>vls.cfg</filename>to run VLS with a v4l device
|
|
|
|
:</para>
|
|
|
|
<programlisting>
|
|
# vls.cfg (VLS configuration file)
|
|
# Example of the VideoLAN HOWTO for the Video for Linux input
|
|
|
|
BEGIN "Inputs"
|
|
|
|
webcam = "v4l"
|
|
|
|
END
|
|
|
|
BEGIN "webcam"
|
|
|
|
# V4L device
|
|
Device = "/dev/video"
|
|
|
|
# Channel Source : Webcam is often "0"
|
|
# TV Card, may be Tuner(0), Composite(1), Svideo(2)
|
|
Channel = "0"
|
|
|
|
# Norm: PAL=0, NTSC=1, SECAM=2
|
|
Norm = "0"
|
|
|
|
# Frequency of the channel in Mhz, multiplied by 16 (tuner cards only)
|
|
Frequency = "7668"
|
|
|
|
# Size possibilities: can be either:
|
|
# - empty string : default size
|
|
# - width x height
|
|
# - subQCIF(128x96), QSIF(160x120), QCIF(176x144), SIF(320x240),
|
|
# CIF(352x288), VGA (640x480)
|
|
Size = ""
|
|
|
|
# DeInterlace: "0" = no ; "1" = yes
|
|
DeInterlace = "0"
|
|
|
|
# Video compression format: "mpeg1" or "mpeg4"
|
|
Compression = "mpeg4"
|
|
|
|
# Video bitrate (approx.) in kbps
|
|
Bitrate = "500"
|
|
|
|
# Quality: "1.0" (good) to "31.0" (bad)
|
|
Quality = "1.0"
|
|
|
|
# Sound device
|
|
AudioDevice = "/dev/dsp"
|
|
|
|
# Audio compression format: "mp2", "mp3" or "ogg"
|
|
AudioCompression = "mp2"
|
|
|
|
# Audio bitrate in kpbs
|
|
AudioBitrate = "64"
|
|
|
|
# Audio frequency ("16000", "22050", "24000", "32000", "44100" or "48000")
|
|
AudioFreq = "16000"
|
|
|
|
# Audio channel: "1" = mono ; "2" = stereo
|
|
AudioChannel = "2"
|
|
|
|
END
|
|
|
|
BEGIN "Channels"
|
|
|
|
channel1 = "network"
|
|
|
|
END
|
|
|
|
BEGIN "channel1"
|
|
|
|
# Unicast or multicast IP address
|
|
DstHost = "192.168.0.42"
|
|
|
|
# Destination port
|
|
DstPort = "1234"
|
|
|
|
# If it's a multicast IP address, uncomment the line below
|
|
#Type = "multicast"
|
|
|
|
# If it's a multicast IP address, set the "Time To Live" below
|
|
#TTL = "12"
|
|
|
|
END
|
|
|
|
BEGIN "LaunchOnStartUp"
|
|
|
|
command1 = "start video channel1 webcam"
|
|
|
|
END
|
|
</programlisting>
|
|
|
|
<para>
|
|
Once you have adapted the configuration file above,
|
|
run VLS
|
|
|
|
:</para>
|
|
|
|
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vls -vv -f vls.cfg</userinput>
|
|
</screen>
|
|
|
|
</sect1>
|
|
</chapter>
|
|
|
|
|
|
|
|
<chapter id="usesout"><title id="tusesout">
|
|
Advanced use of VLC's stream output
|
|
(transcoding, multiple streaming, etc...)
|
|
|
|
</title>
|
|
|
|
<sect1><title>
|
|
The syntax
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Please refer to the <emphasis>command line
|
|
interface</emphasis> chapter of the VLC user guide to learn the syntax
|
|
of VLC's stream output. You can find the VLC user guide on the <ulink url="http://www.videolan.org/doc/">documentation page</ulink>
|
|
|
|
.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Examples
|
|
|
|
</title>
|
|
|
|
<sect2><title>
|
|
Transcoding
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Transcode the input stream and send it to a
|
|
multicast IP address with the associated SAP announce
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
|
|
standard{access=udp,mux=ts,url=239.255.12.42,sap=TestStream}'</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
Display the input stream, transcode it and send it
|
|
to a multicast IP address with the associated SAP announce
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#duplicate{dst=display,dst=
|
|
"transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
|
|
standard{access=udp,mux=ts,url=239.255.12.42,sap=TestStream}"}'</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
Transcode the input stream, display the transcoded
|
|
stream and send it to a multicast IP address with the associated SAP
|
|
announce
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
|
|
duplicate{dst=display,dst=standard{access=udp,mux=ts,url=239.255.12.42,sap=TestStream}}'</userinput>
|
|
</screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
Multiple streaming
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Send a stream to a multicast IP address and a
|
|
unicast IP address
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#duplicate{dst=
|
|
standard{access=udp,mux=ts,url=239.255.12.42,sap=TestStream},
|
|
dst=standard{access=udp,mux=ts,url=192.168.1.2}}'</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
Display the stream and send it to two unicast IP
|
|
addresses
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#duplicate{dst=display,dst=
|
|
standard{access=udp,mux=ts,url=192.168.1.12},
|
|
dst=standard{access=udp,mux=ts,url=192.168.1.42}}'</userinput>
|
|
</screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
|
|
Transcoding and multiple streaming
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Transcode the input stream, display the transcoded
|
|
stream and send it to a multicast IP address with the associated SAP
|
|
announce and an unicast IP address
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
|
|
duplicate{dst=display,dst=standard{access=udp,mux=ts,url=239.255.12.42,sap=TestStream},
|
|
dst=standard{access=udp,mux=ts,url=192.168.1.2}}'</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
Display the input stream, transcode it and send it
|
|
to two unicast IP addresses
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#duplicate{dst=display,
|
|
dst="transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
|
|
duplicate{dst=standard{access=udp,mux=ts,url=192.168.1.2},
|
|
dst=standard{access=udp,mux=ts,url=192.168.1.12}"}'</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
Send the input stream to a multicast IP address
|
|
and the transcoded stream to another multicast IP address with the
|
|
associated SAP announces
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#duplicate{dst=
|
|
standard{access=udp,mux=ts,url=239.255.1.2,sap=OriginalStream},
|
|
dst="transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
|
|
standard{access=udp,mux=ts,url=239.255.1.3,sap=TranscodedStream}"}'</userinput>
|
|
</screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
HTTP streaming
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Stream in HTTP
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
on the server, run
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#standard{access=http,mux=ogg,url=server.example.org:8080}'</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
on the client(s), run
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc http://server.example.org:8080</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
Transcode and stream in HTTP
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
|
|
standard{access=http,mux=ogg,url=server.example.org:8080}'</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
For example, if you want to stream an audio CD in
|
|
Ogg/Vorbis over HTTP
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv cdda:/dev/cdrom --sout '#transcode{acodec=vorb,ab=128}:
|
|
standard{access=http,mux=ogg,url=server.example.org:8080}'</userinput>
|
|
</screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
Use the <emphasis>es</emphasis> module
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Separate audio and video in two PS files
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout
|
|
'#es{access=file,mux=ps,url_audio=audio-%c.%m,url_video=video-%c.%m}'</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
Extract the audio track of the input stream to a TS
|
|
file
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#es{access_audio=file,mux_audio=ts,url_audio=audio-%c.%m}'</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
Stream in unicast the audio track on a port and the
|
|
video track on another port
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
on the server side
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout
|
|
'#es{access=rtp,mux=ts,url_audio=192.168.1.2:1212,url_video=192.168.1.2:1213}'</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
on the client side: to receive the audio
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc udp:@:1212</userinput>
|
|
</screen>
|
|
|
|
|
|
<para>
|
|
to receive the video
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc udp:@:1213</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
Stream in multicast the video and dump the audio in
|
|
a file
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#es{access_video=udp,mux_video=ts,url_video=239.255.12.42,
|
|
access_audio=file,mux_audio=ps,url_audio=audio-%c.%m}'</userinput>
|
|
</screen>
|
|
|
|
<note><para>
|
|
You can also combine the <emphasis>es</emphasis>
|
|
module with the other modules to set-up even more complex
|
|
solution
|
|
|
|
.</para></note>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
</chapter>
|
|
|
|
|
|
|
|
<chapter id="ipv6"><title id="tipv6">
|
|
Stream in IPv6
|
|
|
|
</title>
|
|
|
|
<sect1><title>
|
|
Stream in IPv6
|
|
|
|
</title>
|
|
|
|
<note><para>
|
|
You will need an IPv6-aware operating system, like
|
|
Linux 2.4.21 with the <emphasis>ipv6</emphasis> module loaded, Windows
|
|
XP Service Pack 1 or Mac OS X version 10.2 or higher. Please look at the
|
|
features pages on the <ulink url="http://www.videolan.org">VideoLAN web
|
|
site</ulink> to know about the status of IPv6 in VLC and VLS for each
|
|
O.S
|
|
|
|
.</para></note>
|
|
|
|
<warning><para>
|
|
If you are using VMware under Linux, you will have
|
|
to stop VMware and unload the VMware kernel modules, because we noticed
|
|
it prevented IPv6 streaming
|
|
|
|
!</para></warning>
|
|
|
|
|
|
<sect2><title>
|
|
Stream with VLC
|
|
|
|
</title>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv video1.xyz --ipv6 --sout udp:[ff08::1] --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
where
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><filename>video1.xyz</filename>
|
|
is the file you want to stream (you can also put
|
|
<command>dvdold:/dev/dvd</command> to stream a DVD or any other input
|
|
configuration)
|
|
|
|
,</para></listitem>
|
|
|
|
<listitem><para><emphasis>ff08::1</emphasis>
|
|
is either
|
|
|
|
:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
the IPv6 address of the machine you want to unicast
|
|
to
|
|
|
|
;</para></listitem>
|
|
|
|
<listitem><para>
|
|
or the multicast IPv6 address
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para><emphasis>12</emphasis>
|
|
is the value of the TTL (Time To
|
|
Live) of your IP packets (which means that the stream will be
|
|
able to cross 11 routers)
|
|
|
|
.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<note><para>
|
|
Under Unix/Linux, you may have to protect the square
|
|
brackets around the IPv6 address
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv video1.xyz --ipv6 --sout udp:\[ff08::1\] --ttl 12</userinput>
|
|
</screen>
|
|
|
|
</note>
|
|
|
|
<note><para>
|
|
You may have to specify the output network
|
|
interface
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv video1.xyz --ipv6 --sout udp:[ff08::1%eth0] --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
where <emphasis>eth0</emphasis> is the name of the
|
|
network interface (under Linux the network interfaces
|
|
are named <emphasis>ethX</emphasis>, under Mac OS X it's
|
|
<emphasis>enX</emphasis> and under Windows it's <emphasis>X</emphasis>,
|
|
where <emphasis>X</emphasis> is the appropriate number)
|
|
|
|
.</para>
|
|
|
|
</note>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
Stream with VLS
|
|
|
|
</title>
|
|
|
|
<para>
|
|
You will need to use the configuration
|
|
file <filename>vls.cfg</filename>. Please, see the <ulink url="http://www.videolan.org/doc/">VLS user guide</ulink> to know how to
|
|
write one for IPv6 streaming in unicast or multicast
|
|
|
|
.</para>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Receive in IPv6
|
|
|
|
</title>
|
|
|
|
<sect2><title>
|
|
Receive an unicast stream
|
|
|
|
</title>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv --ipv6 udp:</userinput>
|
|
</screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2><title>
|
|
Receive a multicast stream
|
|
|
|
</title>
|
|
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv --ipv6 udp:@[ff08::1]</userinput>
|
|
</screen>
|
|
|
|
<note><para>
|
|
Under Unix/Linux, you may have to protect the square
|
|
brackets around the IPv6 address
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv --ipv6 udp:@\[ff08::1\]</userinput>
|
|
</screen>
|
|
|
|
</note>
|
|
|
|
<note><para>
|
|
You may have to specify the output network
|
|
interface
|
|
|
|
:</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv video1.xyz --ipv6 --sout udp:[ff08::1%eth0] --ttl 12</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
where <emphasis>eth0</emphasis> is the name of the
|
|
network interface (under Linux the network interfaces
|
|
are named <emphasis>ethX</emphasis>, under Mac OS X it's
|
|
<emphasis>enX</emphasis> and under Windows it's <emphasis>X</emphasis>,
|
|
where <emphasis>X</emphasis> is the appropriate number)
|
|
|
|
.</para>
|
|
|
|
</note>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
</chapter>
|
|
|
|
|
|
<chapter id="vod"><title id="tvod">
|
|
Video On Demand
|
|
|
|
</title>
|
|
|
|
<sect1><title>
|
|
Overview
|
|
|
|
|
|
</title>
|
|
|
|
<para>With Video On Demand (VOD), the user can start the video when he
|
|
wants, make pauses, go forward and back in the video. It is of course
|
|
the best in video streaming and the dream for every user.</para>
|
|
|
|
<para>VOD is a very big consumer of resources for the server and the
|
|
network. VOD is unicast, not multicast : this means that the network
|
|
and server resources needed are directly proportional to the number of
|
|
clients.</para>
|
|
|
|
<para>The design of VideoLAN's VOD solution is very simple. The idea
|
|
is to do HTTP streaming, i.e. stream an MPEG video encapsulated in
|
|
HTTP. The regulation of the bitrate between the client and the server
|
|
is done automatically by TCP. With HTTP version 1.1, there is the
|
|
possibility to seek in a file downloaded, that's what we use to seek in
|
|
the video.</para>
|
|
|
|
|
|
|
|
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
On the server side
|
|
|
|
</title>
|
|
|
|
|
|
<para>On the VOD server, you need a running Web server. For example,
|
|
you can use a Linux server running Apache. Other operating systems
|
|
and other Web servers should work too, but we have never tested.</para>
|
|
|
|
<para>Make your MPEG-1, MPEG-2 or MPEG-4 / DivX files available to the
|
|
clients on the Web server.</para>
|
|
|
|
<para>For example, we have a Web server whose DNS name
|
|
is <emphasis>localserver</emphasis>. On this server,
|
|
we put an MPEG file <filename>video1.mpg</filename>
|
|
which will be available to the clients at the URL
|
|
<filename>http://localserver/video1.mpg</filename>.</para>
|
|
|
|
|
|
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
On the client side
|
|
|
|
</title>
|
|
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv http://localserver/video1.mpg</userinput>
|
|
</screen>
|
|
|
|
|
|
|
|
|
|
|
|
<para>VLC starts to read the stream nearly immediately and you can
|
|
seek in the stream, make pauses, etc... as if the stream was a local
|
|
file.</para>
|
|
|
|
|
|
|
|
|
|
</sect1>
|
|
</chapter>
|
|
|
|
|
|
|
|
|
|
<chapter id="sap"><title id="tsap">
|
|
Add a channel information service
|
|
</title>
|
|
|
|
|
|
<para>Typing multicast addresses is not very fun... that's why you need
|
|
a channel information service ! VideoLAN has implemented a channel
|
|
information service based on the SAP/SDP standard. The SAP announces
|
|
about the multicast programs are sent on the network (via the multicast
|
|
address <emphasis>224.2.127.254</emphasis> reserved for this purpose).
|
|
On the client side, VLCs receive these annouces and automatically add
|
|
the programs announced to their playlist.</para>
|
|
|
|
|
|
|
|
|
|
|
|
<para>VLC can send the SAP announces associated with the programs
|
|
it is streaming. VLS can't do that, but an independant program, the
|
|
mini-SAP-server, can send the announces for the programs sent by
|
|
VLS.</para>
|
|
|
|
|
|
|
|
|
|
<sect1><title>
|
|
Send announces when streaming with VLC
|
|
|
|
</title>
|
|
|
|
<para>
|
|
To send announces with VLC, you need to use the complex syntax of
|
|
VLC's stream output, like this:
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#standard{access=udp,url=239.255.12.42,sap="Test Stream"}' --ttl 12</userinput>
|
|
</screen>
|
|
|
|
|
|
<para>where <filename>video1.xyz</filename> is the file you want
|
|
to stream, <emphasis>239.255.12.42</emphasis> is the multicast IP
|
|
address you want to stream on, <emphasis>Test Stream</emphasis> is
|
|
the name that will be used for this program in the SAP announces and
|
|
<emphasis>12</emphasis> is the value of the TTL (Time To Live) of the
|
|
stream and of the SAP announces.</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
To do the SAP announces in IPv6, just add the
|
|
<emphasis>sap_ipv=6</emphasis> option:
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv input_stream --sout '#standard{access=udp,url=239.255.12.42,sap="Test Stream",sap_ipv=6}' --ttl 12</userinput>
|
|
</screen>
|
|
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Send announces for the programs streamed by VLS with the
|
|
mini-SAP-server
|
|
|
|
</title>
|
|
|
|
|
|
<note><para>
|
|
The mini-SAP-server is only available for Linux and Mac OSX.
|
|
|
|
</para></note>
|
|
|
|
<simplesect><title>
|
|
Install the mini-SAP-server
|
|
</title>
|
|
|
|
|
|
<para>
|
|
Download the latest version of the mini-SAP-server from the <ulink url="http://www.videolan.org/streaming/">streaming download page</ulink>.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
Install-it:
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>tar xvzf miniSAPserver-version.tar.gz</userinput>
|
|
<prompt>% </prompt><userinput>cd miniSAPserver-version</userinput>
|
|
<prompt>% </prompt><userinput>./configure (if version >= 0.2.3)</userinput>
|
|
<prompt>% </prompt><userinput>make</userinput>
|
|
</screen>
|
|
|
|
</simplesect>
|
|
|
|
<simplesect><title>
|
|
Configure the mini-SAP-server
|
|
</title>
|
|
|
|
|
|
<para>Edit the configuration file <filename>sap.cfg</filename> shipped
|
|
with the tarball. It should contain a global section with the Time To
|
|
Live (TTL) and the IP version (IPv4 or IPv6) used for the SAP announces
|
|
and a section per program announced. Use the comments to understand each
|
|
parameter.</para>
|
|
|
|
<para>The Time To Live option indicates the maximum number of routers
|
|
that the SAP announce packets can cross before being dropped.</para>
|
|
|
|
|
|
|
|
|
|
</simplesect>
|
|
|
|
<simplesect><title>
|
|
Run the mini-SAP-server
|
|
|
|
</title>
|
|
|
|
<para>
|
|
Start the mini-SAP-server:
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>./sapserver -c sap.cfg</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
If you want to run the mini-SAP-server in the
|
|
background, use the <command>-d</command> command line switch. For
|
|
instance:
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>./sapserver -d -c sap.cfg</userinput>
|
|
</screen>
|
|
|
|
<para>
|
|
You can also omit the <command>-c</command>
|
|
command line switch if your config file is <filename>/etc/sap.cfg</filename>.
|
|
|
|
</para>
|
|
|
|
</simplesect>
|
|
</sect1>
|
|
|
|
<sect1><title>
|
|
Start VLC(s) on the client(s)
|
|
|
|
</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
If the announces are sent in IPv4 :
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv --extraintf sap</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
<listitem><para>
|
|
If the announces are sent in IPv6 :
|
|
|
|
</para>
|
|
|
|
<screen>
|
|
<prompt>% </prompt><userinput>vlc -vvv --extraintf sap --sap-ipv6</userinput>
|
|
</screen>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>Then open the playlist: you should see the names of the programs
|
|
announced in SAP. When you double-click on the name of a program,
|
|
VLC will subscribe to the multicast address and start to play the stream
|
|
!</para>
|
|
|
|
|
|
|
|
|
|
</sect1>
|
|
</chapter>
|
|
|
|
<appendix id="gfdl">
|
|
<title id="tgfdl">GNU Free Documentation License</title>
|
|
<subtitle>Version 1.2, November 2002</subtitle>
|
|
|
|
<blockquote id="fsf-copyright">
|
|
<para>Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
|
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
Everyone is permitted to copy and distribute verbatim copies
|
|
of this license document, but changing it is not allowed.</para>
|
|
</blockquote>
|
|
|
|
<sect1 id="gfdl-0"><title>PREAMBLE</title>
|
|
|
|
<para>The purpose of this License is to make a manual, textbook, or
|
|
other functional and useful document "free" in the sense of freedom: to
|
|
assure everyone the effective freedom to copy and redistribute it, with
|
|
or without modifying it, either commercially or noncommercially.
|
|
Secondarily, this License preserves for the author and publisher a way
|
|
to get credit for their work, while not being considered responsible for
|
|
modifications made by others.</para>
|
|
|
|
<para>This License is a kind of "copyleft", which means that derivative
|
|
works of the document must themselves be free in the same sense. It
|
|
complements the GNU General Public License, which is a copyleft license
|
|
designed for free software.</para>
|
|
|
|
<para>We have designed this License in order to use it for manuals for
|
|
free software, because free software needs free documentation: a free
|
|
program should come with manuals providing the same freedoms that the
|
|
software does. But this License is not limited to software manuals; it
|
|
can be used for any textual work, regardless of subject matter or
|
|
whether it is published as a printed book. We recommend this License
|
|
principally for works whose purpose is instruction or reference.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-1"><title>APPLICABILITY AND DEFINITIONS</title>
|
|
|
|
<para id="gfdl-doc">This License applies to any manual or other work, in
|
|
any medium, that contains a notice placed by the copyright holder saying
|
|
it can be distributed under the terms of this License. Such a notice
|
|
grants a world-wide, royalty-free license, unlimited in duration, to use
|
|
that work under the conditions stated herein. The "Document", below,
|
|
refers to any such manual or work. Any member of the public is a
|
|
licensee, and is addressed as "you". You accept the license if you
|
|
copy, modify or distribute the work in a way requiring permission under
|
|
copyright law.</para>
|
|
|
|
<para id="gfdl-mod-ver">A "Modified Version" of the Document means any
|
|
work containing the Document or a portion of it, either copied verbatim,
|
|
or with modifications and/or translated into another language.</para>
|
|
|
|
<para id="gfdl-secnd-sect">A "Secondary Section" is a named appendix or
|
|
a front-matter section of the Document that deals exclusively with the
|
|
relationship of the publishers or authors of the Document to the
|
|
Document's overall subject (or to related matters) and contains nothing
|
|
that could fall directly within that overall subject. (Thus, if the
|
|
Document is in part a textbook of mathematics, a Secondary Section may
|
|
not explain any mathematics.) The relationship could be a matter of
|
|
historical connection with the subject or with related matters, or of
|
|
legal, commercial, philosophical, ethical or political position
|
|
regarding them.</para>
|
|
|
|
<para id="gfdl-inv-sect">The "Invariant Sections" are certain Secondary
|
|
Sections whose titles are designated, as being those of Invariant
|
|
Sections, in the notice that says that the Document is released under
|
|
this License. If a section does not fit the above definition of
|
|
Secondary then it is not allowed to be designated as Invariant. The
|
|
Document may contain zero Invariant Sections. If the Document does not
|
|
identify any Invariant Sections then there are none.</para>
|
|
|
|
<para id="gfdl-cov-text">The "Cover Texts" are certain short passages of
|
|
text that are listed, as Front-Cover Texts or Back-Cover Texts, in the
|
|
notice that says that the Document is released under this License. A
|
|
Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at
|
|
most 25 words.</para>
|
|
|
|
<para id="gfdl-transparent">A "Transparent" copy of the Document means a
|
|
machine-readable copy, represented in a format whose specification is
|
|
available to the general public, that is suitable for revising the
|
|
document straightforwardly with generic text editors or (for images
|
|
composed of pixels) generic paint programs or (for drawings) some widely
|
|
available drawing editor, and that is suitable for input to text
|
|
formatters or for automatic translation to a variety of formats suitable
|
|
for input to text formatters. A copy made in an otherwise Transparent
|
|
file format whose markup, or absence of markup, has been arranged to
|
|
thwart or discourage subsequent modification by readers is not
|
|
Transparent. An image format is not Transparent if used for any
|
|
substantial amount of text. A copy that is not "Transparent" is called
|
|
"Opaque".</para>
|
|
|
|
<para>Examples of suitable formats for Transparent copies include plain
|
|
ASCII without markup, Texinfo input format, LaTeX input format, SGML or
|
|
XML using a publicly available DTD, and standard-conforming simple HTML,
|
|
PostScript or PDF designed for human modification. Examples of
|
|
transparent image formats include PNG, XCF and JPG. Opaque formats
|
|
include proprietary formats that can be read and edited only by
|
|
proprietary word processors, SGML or XML for which the DTD and/or
|
|
processing tools are not generally available, and the machine-generated
|
|
HTML, PostScript or PDF produced by some word processors for output
|
|
purposes only.</para>
|
|
|
|
<para id="gfdl-title-page">The "Title Page" means, for a printed book,
|
|
the title page itself, plus such following pages as are needed to hold,
|
|
legibly, the material this License requires to appear in the title page.
|
|
For works in formats which do not have any title page as such, "Title
|
|
Page" means the text near the most prominent appearance of the work's
|
|
title, preceding the beginning of the body of the text.</para>
|
|
|
|
<para id="gfdl-entitled">A section "Entitled XYZ" means a named subunit
|
|
of the Document whose title either is precisely XYZ or contains XYZ in
|
|
parentheses following text that translates XYZ in another language.
|
|
(Here XYZ stands for a specific section name mentioned below, such as
|
|
"Acknowledgements", "Dedications", "Endorsements", or "History".) To
|
|
"Preserve the Title" of such a section when you modify the Document
|
|
means that it remains a section "Entitled XYZ" according to this
|
|
definition.</para>
|
|
|
|
<para>The Document may include Warranty Disclaimers next to the notice
|
|
which states that this License applies to the Document. These Warranty
|
|
Disclaimers are considered to be included by reference in this License,
|
|
but only as regards disclaiming warranties: any other implication that
|
|
these Warranty Disclaimers may have is void and has no effect on the
|
|
meaning of this License.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-2"><title>VERBATIM COPYING</title>
|
|
|
|
<para>You may copy and distribute the Document in any medium, either
|
|
commercially or noncommercially, provided that this License, the
|
|
copyright notices, and the license notice saying this License applies to
|
|
the Document are reproduced in all copies, and that you add no other
|
|
conditions whatsoever to those of this License. You may not use
|
|
technical measures to obstruct or control the reading or further copying
|
|
of the copies you make or distribute. However, you may accept
|
|
compensation in exchange for copies. If you distribute a large enough
|
|
number of copies you must also follow the conditions in section 3.
|
|
</para>
|
|
|
|
<para>You may also lend copies, under the same conditions stated above,
|
|
and you may publicly display copies.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-3"><title>COPYING IN QUANTITY</title>
|
|
|
|
<para>If you publish printed copies (or copies in media that commonly
|
|
have printed covers) of the Document, numbering more than 100, and the
|
|
Document's license notice requires Cover Texts, you must enclose the
|
|
copies in covers that carry, clearly and legibly, all these Cover Texts:
|
|
Front-Cover Texts on the front cover, and Back-Cover Texts on the back
|
|
cover. Both covers must also clearly and legibly identify you as the
|
|
publisher of these copies. The front cover must present the full title
|
|
with all words of the title equally prominent and visible. You may add
|
|
other material on the covers in addition. Copying with changes limited
|
|
to the covers, as long as they preserve the title of the Document and
|
|
satisfy these conditions, can be treated as verbatim copying in other
|
|
respects.</para>
|
|
|
|
<para>If the required texts for either cover are too voluminous to fit
|
|
legibly, you should put the first ones listed (as many as fit
|
|
reasonably) on the actual cover, and continue the rest onto adjacent
|
|
pages.</para>
|
|
|
|
<para>If you publish or distribute Opaque copies of the Document
|
|
numbering more than 100, you must either include a machine-readable
|
|
Transparent copy along with each Opaque copy, or state in or with each
|
|
Opaque copy a computer-network location from which the general
|
|
network-using public has access to download using public-standard
|
|
network protocols a complete Transparent copy of the Document, free of
|
|
added material. If you use the latter option, you must take reasonably
|
|
prudent steps, when you begin distribution of Opaque copies in quantity,
|
|
to ensure that this Transparent copy will remain thus accessible at the
|
|
stated location until at least one year after the last time you
|
|
distribute an Opaque copy (directly or through your agents or retailers)
|
|
of that edition to the public.</para>
|
|
|
|
<para>It is requested, but not required, that you contact the authors of
|
|
the Document well before redistributing any large number of copies, to
|
|
give them a chance to provide you with an updated version of the
|
|
Document.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-4"><title>MODIFICATIONS</title>
|
|
|
|
<para>You may copy and distribute a Modified Version of the Document
|
|
under the conditions of sections 2 and 3 above, provided that you
|
|
release the Modified Version under precisely this License, with the
|
|
Modified Version filling the role of the Document, thus licensing
|
|
distribution and modification of the Modified Version to whoever
|
|
possesses a copy of it. In addition, you must do these things in the
|
|
Modified Version:</para>
|
|
|
|
<orderedlist id="gfdl-modif-cond" numeration="upperalpha">
|
|
<listitem><simpara>Use in the Title Page (and on the covers, if any) a
|
|
title distinct from that of the Document, and from those of previous
|
|
versions (which should, if there were any, be listed in the History
|
|
section of the Document). You may use the same title as a previous
|
|
version if the original publisher of that version gives permission.
|
|
</simpara></listitem>
|
|
<listitem><simpara>List on the Title Page, as authors, one or more
|
|
persons or entities responsible for authorship of the modifications in
|
|
the Modified Version, together with at least five of the principal
|
|
authors of the Document (all of its principal authors, if it has fewer
|
|
than five), unless they release you from this requirement.
|
|
</simpara></listitem>
|
|
<listitem><simpara>State on the Title page the name of the publisher of
|
|
the Modified Version, as the publisher.</simpara></listitem>
|
|
<listitem><simpara>Preserve all the copyright notices of the Document.
|
|
</simpara></listitem>
|
|
<listitem><simpara>Add an appropriate copyright notice for your
|
|
modifications adjacent to the other copyright notices.
|
|
</simpara></listitem>
|
|
<listitem><simpara>Include, immediately after the copyright notices, a
|
|
license notice giving the public permission to use the Modified
|
|
Version under the terms of this License, in the form shown in the
|
|
<link linkend="gfdl-addendum">Addendum</link> below.
|
|
</simpara></listitem>
|
|
<listitem><simpara>Preserve in that license notice the full lists of
|
|
Invariant Sections and required Cover Texts given in the Document's
|
|
license notice.</simpara></listitem>
|
|
<listitem><simpara>Include an unaltered copy of this License.
|
|
</simpara></listitem>
|
|
<listitem><simpara>Preserve the section Entitled "History", Preserve its
|
|
Title, and add to it an item stating at least the title, year, new
|
|
authors, and publisher of the Modified Version as given on the Title
|
|
Page. If there is no section Entitled "History" in the Document,
|
|
create one stating the title, year, authors, and publisher of the
|
|
Document as given on its Title Page, then add an item describing the
|
|
Modified Version as stated in the previous sentence.
|
|
</simpara></listitem>
|
|
<listitem><simpara>Preserve the network location, if any, given in the
|
|
Document for public access to a Transparent copy of the Document, and
|
|
likewise the network locations given in the Document for previous
|
|
versions it was based on. These may be placed in the "History"
|
|
section. You may omit a network location for a work that was
|
|
published at least four years before the Document itself, or if the
|
|
original publisher of the version it refers to gives permission.
|
|
</simpara></listitem>
|
|
<listitem><simpara>For any section Entitled "Acknowledgements" or
|
|
"Dedications", Preserve the Title of the section, and preserve in the
|
|
section all the substance and tone of each of the contributor
|
|
acknowledgements and/or dedications given therein.
|
|
</simpara></listitem>
|
|
<listitem><simpara>Preserve all the Invariant Sections of the Document,
|
|
unaltered in their text and in their titles. Section numbers or the
|
|
equivalent are not considered part of the section titles.
|
|
</simpara></listitem>
|
|
<listitem><simpara>Delete any section Entitled "Endorsements".
|
|
Such a section may not be included in the Modified Version.
|
|
</simpara></listitem>
|
|
<listitem><simpara>Do not retitle any existing section to be Entitled
|
|
"Endorsements" or to conflict in title with any Invariant Section.
|
|
</simpara></listitem>
|
|
<listitem><simpara>Preserve any Warranty Disclaimers.
|
|
</simpara></listitem>
|
|
</orderedlist>
|
|
|
|
<para>If the Modified Version includes new front-matter sections or
|
|
appendices that qualify as Secondary Sections and contain no material
|
|
copied from the Document, you may at your option designate some or all
|
|
of these sections as invariant. To do this, add their titles to the
|
|
list of Invariant Sections in the Modified Version's license notice.
|
|
These titles must be distinct from any other section titles.</para>
|
|
|
|
<para>You may add a section Entitled "Endorsements", provided it
|
|
contains nothing but endorsements of your Modified Version by various
|
|
parties--for example, statements of peer review or that the text has
|
|
been approved by an organization as the authoritative definition of a
|
|
standard.</para>
|
|
|
|
<para>You may add a passage of up to five words as a Front-Cover Text,
|
|
and a passage of up to 25 words as a Back-Cover Text, to the end of the
|
|
list of Cover Texts in the Modified Version. Only one passage of
|
|
Front-Cover Text and one of Back-Cover Text may be added by (or through
|
|
arrangements made by) any one entity. If the Document already includes
|
|
a cover text for the same cover, previously added by you or by
|
|
arrangement made by the same entity you are acting on behalf of, you may
|
|
not add another; but you may replace the old one, on explicit permission
|
|
from the previous publisher that added the old one.</para>
|
|
|
|
<para>The author(s) and publisher(s) of the Document do not by this
|
|
License give permission to use their names for publicity for or to
|
|
assert or imply endorsement of any Modified Version.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-5"><title>COMBINING DOCUMENTS</title>
|
|
|
|
<para>You may combine the Document with other documents released under
|
|
this License, under the terms defined in <link linkend="gfdl-4">section
|
|
4</link> above for modified versions, provided that you include in the
|
|
combination all of the Invariant Sections of all of the original
|
|
documents, unmodified, and list them all as Invariant Sections of your
|
|
combined work in its license notice, and that you preserve all their
|
|
Warranty Disclaimers.</para>
|
|
|
|
<para>The combined work need only contain one copy of this License, and
|
|
multiple identical Invariant Sections may be replaced with a single
|
|
copy. If there are multiple Invariant Sections with the same name but
|
|
different contents, make the title of each such section unique by adding
|
|
at the end of it, in parentheses, the name of the original author or
|
|
publisher of that section if known, or else a unique number. Make the
|
|
same adjustment to the section titles in the list of Invariant Sections
|
|
in the license notice of the combined work.</para>
|
|
|
|
<para>In the combination, you must combine any sections Entitled
|
|
"History" in the various original documents, forming one section
|
|
Entitled "History"; likewise combine any sections Entitled
|
|
"Acknowledgements", and any sections Entitled "Dedications". You must
|
|
delete all sections Entitled "Endorsements".</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-6"><title>COLLECTIONS OF DOCUMENTS</title>
|
|
|
|
<para>You may make a collection consisting of the Document and other
|
|
documents released under this License, and replace the individual copies
|
|
of this License in the various documents with a single copy that is
|
|
included in the collection, provided that you follow the rules of this
|
|
License for verbatim copying of each of the documents in all other
|
|
respects.</para>
|
|
|
|
<para>You may extract a single document from such a collection, and
|
|
distribute it individually under this License, provided you insert a
|
|
copy of this License into the extracted document, and follow this
|
|
License in all other respects regarding verbatim copying of that
|
|
document.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-7"><title>AGGREGATION WITH INDEPENDENT WORKS</title>
|
|
|
|
<para>A compilation of the Document or its derivatives with other
|
|
separate and independent documents or works, in or on a volume of a
|
|
storage or distribution medium, is called an "aggregate" if the
|
|
copyright resulting from the compilation is not used to limit the legal
|
|
rights of the compilation's users beyond what the individual works
|
|
permit. When the Document is included an aggregate, this License does
|
|
not apply to the other works in the aggregate which are not themselves
|
|
derivative works of the Document.</para>
|
|
|
|
<para>If the Cover Text requirement of section 3 is applicable to these
|
|
copies of the Document, then if the Document is less than one half of
|
|
the entire aggregate, the Document's Cover Texts may be placed on covers
|
|
that bracket the Document within the aggregate, or the electronic
|
|
equivalent of covers if the Document is in electronic form. Otherwise
|
|
they must appear on printed covers that bracket the whole
|
|
aggregate.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-8"><title>TRANSLATION</title>
|
|
|
|
<para>Translation is considered a kind of modification, so you may
|
|
distribute translations of the Document under the terms of section 4.
|
|
Replacing Invariant Sections with translations requires special
|
|
permission from their copyright holders, but you may include
|
|
translations of some or all Invariant Sections in addition to the
|
|
original versions of these Invariant Sections. You may include a
|
|
translation of this License, and all the license notices in the
|
|
Document, and any Warrany Disclaimers, provided that you also include
|
|
the original English version of this License and the original versions
|
|
of those notices and disclaimers. In case of a disagreement between the
|
|
translation and the original version of this License or a notice or
|
|
disclaimer, the original version will prevail.</para>
|
|
|
|
<para>If a section in the Document is Entitled "Acknowledgements",
|
|
"Dedications", or "History", the requirement (section 4) to Preserve its
|
|
Title (section 1) will typically require changing the actual
|
|
title.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-9"><title>TERMINATION</title>
|
|
|
|
<para>You may not copy, modify, sublicense, or distribute the Document
|
|
except as expressly provided for under this License. Any other attempt
|
|
to copy, modify, sublicense or distribute the Document is void, and will
|
|
automatically terminate your rights under this License. However,
|
|
parties who have received copies, or rights, from you under this License
|
|
will not have their licenses terminated so long as such parties remain
|
|
in full compliance.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-10"><title>FUTURE REVISIONS OF THIS LICENSE</title>
|
|
|
|
<para>The Free Software Foundation may publish new, revised versions of
|
|
the GNU Free Documentation License from time to time. Such new versions
|
|
will be similar in spirit to the present version, but may differ in
|
|
detail to address new problems or concerns. See
|
|
http://www.gnu.org/copyleft/.</para>
|
|
|
|
<para>Each version of the License is given a distinguishing version
|
|
number. If the Document specifies that a particular numbered version of
|
|
this License "or any later version" applies to it, you have the option
|
|
of following the terms and conditions either of that specified version
|
|
or of any later version that has been published (not as a draft) by the
|
|
Free Software Foundation. If the Document does not specify a version
|
|
number of this License, you may choose any version ever published (not
|
|
as a draft) by the Free Software Foundation.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdl-addendum"><title>ADDENDUM: How to use this License for
|
|
your documents</title>
|
|
|
|
<para>To use this License in a document you have written, include a copy
|
|
of the License in the document and put the following copyright and
|
|
license notices just after the title page:</para>
|
|
|
|
<blockquote id="copyright-sample"><para>
|
|
Copyright (c) YEAR YOUR NAME.
|
|
Permission is granted to copy, distribute and/or modify this document
|
|
under the terms of the GNU Free Documentation License, Version 1.2
|
|
or any later version published by the Free Software Foundation;
|
|
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
|
A copy of the license is included in the section entitled "GNU
|
|
Free Documentation License".
|
|
</para></blockquote>
|
|
|
|
<para>If you have Invariant Sections, Front-Cover Texts and Back-Cover
|
|
Texts, replace the "with...Texts." line with this:</para>
|
|
|
|
<blockquote id="inv-cover-sample"><para>
|
|
with the Invariant Sections being LIST THEIR TITLES, with the
|
|
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
|
</para></blockquote>
|
|
|
|
<para>If you have Invariant Sections without Cover Texts, or some other
|
|
combination of the three, merge those two alternatives to suit the
|
|
situation.</para>
|
|
|
|
<para>If your document contains nontrivial examples of program code, we
|
|
recommend releasing these examples in parallel under your choice of free
|
|
software license, such as the GNU General Public License, to permit
|
|
their use in free software.</para>
|
|
</sect1>
|
|
</appendix>
|
|
|
|
|
|
</book>
|