2104 lines
92 KiB
Plaintext
2104 lines
92 KiB
Plaintext
|
VideoLAN HOWTO
|
|||
|
|
|||
|
Alexis de Lattre
|
|||
|
|
|||
|
Marc Ariberti
|
|||
|
|
|||
|
Anil Daoud
|
|||
|
|
|||
|
Cl<EFBFBD>ment Stenac
|
|||
|
|
|||
|
Copyright <20> 2002, 2003 the VideoLAN project
|
|||
|
|
|||
|
v2.0, 2003-09-04
|
|||
|
|
|||
|
|
|||
|
This document describes how to use the complete VideoLAN streaming
|
|||
|
solution.
|
|||
|
|
|||
|
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 GNU Free Documentation License.
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
Table of Contents
|
|||
|
1. Introduction
|
|||
|
1.1. What is the VideoLAN project ?
|
|||
|
1.2. What is a codec ?
|
|||
|
1.3. How can I use VideoLAN ?
|
|||
|
1.4. Command line usage
|
|||
|
|
|||
|
|
|||
|
2. Install the required software and hardware
|
|||
|
2.1. Install VLC
|
|||
|
2.2. Install VLS
|
|||
|
|
|||
|
|
|||
|
3. Receive and save a stream
|
|||
|
3.1. Receive a stream with VLC
|
|||
|
3.2. Save a stream with VLC
|
|||
|
3.3. Receive a stream with a set-top-box
|
|||
|
|
|||
|
|
|||
|
4. Stream a file
|
|||
|
4.1. Stream a file with VLC
|
|||
|
4.2. Stream a file with VLS
|
|||
|
|
|||
|
|
|||
|
5. Stream a DVD
|
|||
|
5.1. Stream a DVD with VLC
|
|||
|
5.2. Stream a DVD with VLS
|
|||
|
|
|||
|
|
|||
|
6. Stream a DVB channel (satellite or digital terrestial TV)
|
|||
|
6.1. Install the DVB drivers
|
|||
|
6.2. Stream with VLS
|
|||
|
6.3. Stream with VLC
|
|||
|
|
|||
|
|
|||
|
7. Stream from an MPEG encoding card
|
|||
|
7.1. Stream with the Hauppauge WinTV-PVR-250 card
|
|||
|
7.2. Stream with the Visiontech Kfir card
|
|||
|
|
|||
|
|
|||
|
8. Stream from an acquisition card or a webcam
|
|||
|
8.1. Install the Video for Linux drivers
|
|||
|
8.2. Stream with VLC
|
|||
|
8.3. Stream with VLS
|
|||
|
|
|||
|
|
|||
|
9. Advanced use of VLC's stream output (transcoding, multiple streaming,
|
|||
|
etc...)
|
|||
|
9.1. The syntax
|
|||
|
9.2. Examples
|
|||
|
|
|||
|
|
|||
|
10. Stream in IPv6
|
|||
|
10.1. Stream in IPv6
|
|||
|
10.2. Receive in IPv6
|
|||
|
|
|||
|
|
|||
|
11. Video On Demand
|
|||
|
11.1. Overview
|
|||
|
11.2. On the server side
|
|||
|
11.3. On the client side
|
|||
|
|
|||
|
|
|||
|
12. Add a channel information service
|
|||
|
12.1. Send announces when streaming with VLC
|
|||
|
12.2. Send announces for the programs streamed by VLS with the
|
|||
|
mini-SAP-server
|
|||
|
12.3. Start VLC(s) on the client(s)
|
|||
|
|
|||
|
|
|||
|
A. GNU Free Documentation License
|
|||
|
A.1. PREAMBLE
|
|||
|
A.2. APPLICABILITY AND DEFINITIONS
|
|||
|
A.3. VERBATIM COPYING
|
|||
|
A.4. COPYING IN QUANTITY
|
|||
|
A.5. MODIFICATIONS
|
|||
|
A.6. COMBINING DOCUMENTS
|
|||
|
A.7. COLLECTIONS OF DOCUMENTS
|
|||
|
A.8. AGGREGATION WITH INDEPENDENT WORKS
|
|||
|
A.9. TRANSLATION
|
|||
|
A.10. TERMINATION
|
|||
|
A.11. FUTURE REVISIONS OF THIS LICENSE
|
|||
|
A.12. ADDENDUM: How to use this License for your documents
|
|||
|
|
|||
|
|
|||
|
|
|||
|
List of Figures
|
|||
|
1-1. Global VideoLAN solution La solution VideoLAN globale
|
|||
|
1-2. Windows terminal
|
|||
|
1-3. Linux X terminal
|
|||
|
1-4. Mac OS X terminal
|
|||
|
1-5. BeOS terminal
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
Chapter 1. Introduction
|
|||
|
|
|||
|
1.1. What is the VideoLAN project ?
|
|||
|
|
|||
|
1.1.1. Overview
|
|||
|
|
|||
|
VideoLAN is a complete software solution for video streaming, developed by
|
|||
|
students of the Ecole Centrale Paris and developers from all over the world,
|
|||
|
under the GNU General Public License (GPL). VideoLAN is designed to stream
|
|||
|
MPEG videos on high bandwidth networks.
|
|||
|
|
|||
|
The VideoLAN solution includes :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>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,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>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.
|
|||
|
|
|||
|
|
|||
|
Here is an illustration of the complete VideoLAN solution :
|
|||
|
|
|||
|
|
|||
|
Figure 1-1. Global VideoLAN solution La solution VideoLAN globale
|
|||
|
|
|||
|
[global-diagram]
|
|||
|
|
|||
|
More details about the project can be found on the [http://www.videolan.org/]
|
|||
|
VideoLAN Web site.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.1.2. VideoLAN software
|
|||
|
|
|||
|
1.1.2.1. VLC
|
|||
|
|
|||
|
VLC works on many platforms : Linux, Windows, Mac OS X, BeOS, *BSD, Solaris,
|
|||
|
Familiar Linux, Yopy/Linupy and QNX. It can read :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>MPEG-1, MPEG-2 and MPEG-4 / DivX files from a hard disk, a CD-ROM drive,
|
|||
|
...
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>DVDs and VCDs,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>from a satellite card (DVB-S),
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>MPEG-1, MPEG-2 and MPEG-4 streams from the network sent by VLS or VLC's
|
|||
|
stream output.
|
|||
|
|
|||
|
|
|||
|
VLC can also be used as a server to stream :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>MPEG-1, MPEG-2 and MPEG-4 / DivX files,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>DVDs,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>from an MPEG encoding card,
|
|||
|
|
|||
|
|
|||
|
to :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>one machine (i.e. to one IP address) : this is called unicast,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>a dynamic group of machines that the clients can join or leave (i.e. to a
|
|||
|
multicast IP address) : this is called multicast,
|
|||
|
|
|||
|
|
|||
|
in IPv4 or IPv6 .
|
|||
|
|
|||
|
To get the complete list of VLC's possibilities on each plateform supported,
|
|||
|
see the VLC features page.
|
|||
|
|
|||
|
Note VLC doesn't work on Mac OS 9, and will probably never do.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.1.2.2. VLS
|
|||
|
|
|||
|
VLS can stream :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> an MPEG-1, MPEG-2 or MPEG-4 files stored on a hard drive or on a CD,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> a DVD located in a local DVD drive or copied on a hard disk,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> a satellite card (DVB-S) or a digital terrestial television card (DVB-T)
|
|||
|
,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> an MPEG encoding card ;
|
|||
|
|
|||
|
|
|||
|
to:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>one machine (i.e. to one IP address) : this is called unicast,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>a dynamic group of machines that the clients can join or leave (i.e. to a
|
|||
|
multicast IP address) : this is called multicast,
|
|||
|
|
|||
|
|
|||
|
in IPv4 or IPv6 .
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
VLS works under Linux and Windows. To get the complete list of VLS's
|
|||
|
possibilities on each plateform supported, see the streaming features page.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.1.2.3. Mini-SAP-server
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
The mini-SAP-server works under Linux and Mac OS X.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.2. What is a codec ?
|
|||
|
|
|||
|
To fully understand the VideoLAN solution, you must understand the
|
|||
|
difference between a codec and a container format
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> A codec 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
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> A container format 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
|
|||
|
features page
|
|||
|
|
|||
|
|
|||
|
To decode a stream, VLC first demuxes it. This means that it reads the
|
|||
|
container format and separates audio, video, and subtitles, if any. Then,
|
|||
|
each of these are passed decoders that do the mathematical processing to
|
|||
|
decompress the streams .
|
|||
|
|
|||
|
There is a particular thing about MPEG:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> MPEG is a codec. There are several versions of it, called MPEG-1,
|
|||
|
MPEG-2, MPEG-4, ...
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>MPEG is also a container format, sometimes refered to as MPEG System.
|
|||
|
There are several types of MPEG: ES, PS, and TS
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
1.3. How can I use VideoLAN ?
|
|||
|
|
|||
|
1.3.1. Documentation
|
|||
|
|
|||
|
The user documentation of VideoLAN is made up of 4 documents :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> the VideoLAN Quickstart. This document will give you a quick overview of
|
|||
|
of VLC, VLC's stream output, the Video On Demand solution and the channel
|
|||
|
information service system.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> the VideoLAN HOWTO. This document is the complete guide of the VideoLAN
|
|||
|
streaming solution.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> the VLC user guide. This document is the complete guide for VLC.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> the VLS user guide. This document is the complete guide for VLS.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> the VideoLAN FAQ. This document contains Frequently Asked Questions
|
|||
|
about VideoLAN.
|
|||
|
|
|||
|
|
|||
|
The latest version of these documents can be found on the [http://
|
|||
|
www.videolan.org/doc/] documentation page .
|
|||
|
|
|||
|
You can also have a look at the [http://wiki.videolan.org] VideoLAN Wiki.
|
|||
|
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...
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.3.2. User support
|
|||
|
|
|||
|
If you have problems using VideoLAN, and if you don't find the answer to
|
|||
|
your problems in the documentation, please look at the online archive of the
|
|||
|
mailing-lists. There are two English-speaking mailing-lists for the users :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>vlc@videolan.org for the questions on VLC ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>streaming@videolan.org for the questions on VLS, mini-SAP-server and the
|
|||
|
network .
|
|||
|
|
|||
|
|
|||
|
If you want to subscribe or unsubscribe to the mailing-lists, please go to
|
|||
|
the [http://www.videolan.org/support/lists.html] mailing-list page.
|
|||
|
|
|||
|
You can also talk with VideoLAN users and developers on IRC : server
|
|||
|
irc.freenode.net, channel #videolan .
|
|||
|
|
|||
|
If you find a bug, please follow the instructions on the [http://
|
|||
|
www.videolan.org/support/bug-reporting.html] bug reporting page .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.4. Command line usage
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> 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 !
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> VLS has a command line and a telnet interface, but no graphical
|
|||
|
interface !
|
|||
|
|
|||
|
|
|||
|
All the commands that show up in this document should be typed inside a
|
|||
|
terminal. .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.4.1. Open a terminal
|
|||
|
|
|||
|
1.4.1.1. Windows
|
|||
|
|
|||
|
Click on Start, Run and type :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>cmd Enter (Windows 2000 / XP),
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>command Enter (Windows 95 / 98 / ME).
|
|||
|
|
|||
|
|
|||
|
The terminal appears Le terminal apparait
|
|||
|
|
|||
|
|
|||
|
Figure 1-2. Windows terminal
|
|||
|
|
|||
|
[terminal-windows]
|
|||
|
|
|||
|
Note Under Windows, you need to be in the directory where the program is
|
|||
|
installed to run it.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.4.1.2. Linux / Unix
|
|||
|
|
|||
|
Open a terminal :
|
|||
|
|
|||
|
|
|||
|
Figure 1-3. Linux X terminal
|
|||
|
|
|||
|
[terminal-linux]
|
|||
|
|
|||
|
In the documentation, we adopt the following conventions for the Unix
|
|||
|
commands :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> commands that should be typed as root have a # prompt :
|
|||
|
# command_to_be_typed_as_root
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> commands that should be typed as a regular user have a % prompt :
|
|||
|
% command_to_be_typed_as_regular_user
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
1.4.1.3. Mac OS X
|
|||
|
|
|||
|
Go to Applications, open the folder Utilities and double-click on Terminal
|
|||
|
:
|
|||
|
|
|||
|
|
|||
|
Figure 1-4. Mac OS X terminal
|
|||
|
|
|||
|
[terminal-macosx]
|
|||
|
|
|||
|
Note Under Mac OS X, you need to be in the directory where the program is
|
|||
|
installed to run it, and start the command with ./ .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.4.1.4. BeOS
|
|||
|
|
|||
|
In the deskbar, go to Application and then Terminal :
|
|||
|
|
|||
|
|
|||
|
Figure 1-5. BeOS terminal
|
|||
|
|
|||
|
[terminal-beos]
|
|||
|
|
|||
|
Note Under BeOS, you need to be in the directory where the program is
|
|||
|
installed to run it, and start the command with ./ .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Chapter 2. Install the required software and hardware
|
|||
|
|
|||
|
2.1. Install VLC
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.1. Windows
|
|||
|
|
|||
|
VLC works under Windows 95/98/ME/2000/XP. Download the self-extracting file
|
|||
|
from the VLC Windows download page. Launch the .exe to install VLC.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.2. BeOS
|
|||
|
|
|||
|
Download the Zip file from the VLC BeOS download page. Unzip the file in a
|
|||
|
directory to install VLC.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.3. Mac OS X
|
|||
|
|
|||
|
Download the Mac OS X package from the VLC MacOS X download page .
|
|||
|
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 /Applications).
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.4. Debian GNU/Linux
|
|||
|
|
|||
|
2.1.4.1. Debian stable (woody)
|
|||
|
|
|||
|
Add the following lines to your /etc/apt/sources.list:
|
|||
|
deb http://www.videolan.org/pub/videolan/debian $(ARCH)/
|
|||
|
deb-src http://www.videolan.org/pub/videolan/debian sources/
|
|||
|
|
|||
|
Then, for a normal install, do:
|
|||
|
# apt-get update
|
|||
|
# apt-get install gnome-vlc libdvdcss2
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.4.2. Debian unstable (sid)
|
|||
|
|
|||
|
Add the following lines to your /etc/apt/sources.list:
|
|||
|
deb http://www.videolan.org/pub/videolan/debian $(ARCH)/
|
|||
|
deb-src http://www.videolan.org/pub/videolan/debian sources/
|
|||
|
|
|||
|
Then, for a normal install, do:
|
|||
|
# apt-get update
|
|||
|
# apt-get install wxvlc libdvdcss2
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.4.3. Debian testing (sarge)
|
|||
|
|
|||
|
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: [http:/
|
|||
|
/www.debian.org/devel/testing] testing page
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.5. Linux Mandrake
|
|||
|
|
|||
|
There are VLC packages for Mandrake 9.1 and cooker.
|
|||
|
|
|||
|
To install them, add the following sources for either Mandrake 9.1 or
|
|||
|
Cooker (you can use [http://plf.zarb.org/~nanardon/] Easy urpmi for that):
|
|||
|
contrib from the core distribution and plf (Penguin Liberation Front) from
|
|||
|
the external add-ons.
|
|||
|
|
|||
|
Then install the required packages with urpmi:
|
|||
|
# urpmi libdvdcss2 libdvdplay0 wxvlc vlc-plugin-a52 vlc-plugin-ogg vlc-plugin-mad
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.6. Linux Redhat
|
|||
|
|
|||
|
Download the RPM package vlc and the packages listed in the required
|
|||
|
libraries and codecs section (the other packages are just optional) from the
|
|||
|
VLC Red Hat download page and put them all into the same directory.
|
|||
|
|
|||
|
Then install the RPM packages you have downloaded:
|
|||
|
# rpm -U *.rpm
|
|||
|
|
|||
|
If you have not installed all the RPM packages included with your
|
|||
|
distribution, you may be asked to install a few of them first.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.7. Compile the sources by yourself (for every other OS)
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
You can also compile VLC under Linux this way if you want to modify the
|
|||
|
default supported modules.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.7.1. Install the libraries
|
|||
|
|
|||
|
Many libraries are needed :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>libdvbpsi (compulsory) ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>mpeg2dec (compulsory) ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>libdvdcss if you want to be able to read encrypted DVDs ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>libdvdplay if you want to have DVD menu navigation ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>a52dec if you want to be able to decode the AC3 (i.e. A52) sound format
|
|||
|
often used in DVDs ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>ffmpeg, libmad, faad2 if you want to read MPEG 4 / DivX files ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>libogg & libvorbis if you want to read Ogg Vorbis files .
|
|||
|
|
|||
|
|
|||
|
Download the libraries from the VLC sources download page.
|
|||
|
|
|||
|
For each library :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> uncompress :
|
|||
|
% tar xvzf library.tar.gz
|
|||
|
|
|||
|
or
|
|||
|
% tar xvjf library.tar.bz2
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> configure :
|
|||
|
% cd library
|
|||
|
% ./configure
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> compile and install :
|
|||
|
% make
|
|||
|
# make install
|
|||
|
|
|||
|
|
|||
|
Check that the configuration file /etc/ld.so.conf contains the following
|
|||
|
line :
|
|||
|
/usr/local/lib
|
|||
|
|
|||
|
If the line is not present, add-it and then run (as root):
|
|||
|
# ldconfig
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.1.7.2. Install VLC
|
|||
|
|
|||
|
Download the sources of the lastest release : get the file
|
|||
|
vlc-version.tar.gz from the VLC sources download page. Uncompress-it :
|
|||
|
% tar xvzf vlc-version.tar.gz
|
|||
|
% cd vlc-version
|
|||
|
|
|||
|
To get the list of configuration options, do :
|
|||
|
% ./configure --help
|
|||
|
|
|||
|
Please note that all the modules are described in the Modules section of the
|
|||
|
VLC User Guide .
|
|||
|
|
|||
|
Examples of very simple configurations:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> if you want a basic VLC, do :
|
|||
|
% ./configure
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> if you want the Gnome interface instead of the GTK interface (you will
|
|||
|
need the developement packages of Gnome) :
|
|||
|
% ./configure --enable-gnome
|
|||
|
|
|||
|
|
|||
|
Then, compile and install :
|
|||
|
% make
|
|||
|
% su
|
|||
|
Password: [Root Password]
|
|||
|
# make install
|
|||
|
|
|||
|
Please note that the installation (make install command) is not mandatory.
|
|||
|
You can execute VLC from where you compiled it.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.2. Install VLS
|
|||
|
|
|||
|
2.2.1. Windows
|
|||
|
|
|||
|
Download the ZIP file from the VLS Windows download page, unzip-it and run
|
|||
|
setup.exe .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.2.2. GNULinux & Mac OS X
|
|||
|
|
|||
|
2.2.2.1. Install the libraries
|
|||
|
|
|||
|
Many libraries are needed for particular uses
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>libdvbpsi (always needed)
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>libdvdcss if you want to be able to access encrypted DVDs ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>libdvdread if you want to be able to stream DVDs ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>libdvb if you want to be able to stream from a DVB card (a satellite card
|
|||
|
or a digital terrestial TV card) .
|
|||
|
|
|||
|
|
|||
|
Download the libraries from the VLS sources download page .
|
|||
|
|
|||
|
For each library, uncompress, configure (unless for libdvb which doesn't
|
|||
|
have a ./configure), compile and install :
|
|||
|
% tar xvzf library.tar.gz
|
|||
|
% cd library
|
|||
|
% ./configure
|
|||
|
% make
|
|||
|
# make install
|
|||
|
|
|||
|
Check that the configuration file /etc/ld.so.conf contains the following
|
|||
|
line :
|
|||
|
/usr/local/lib
|
|||
|
|
|||
|
If the line is not present, add-it and then run :
|
|||
|
# ldconfig
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2.2.2.2. Install VLS
|
|||
|
|
|||
|
Download the sources of the latest release : get the file vls-version.tar.gz
|
|||
|
from the VLS sources download page. Uncompress-it and generate ./configure :
|
|||
|
% tar xvzf vls-version.tar.gz
|
|||
|
% cd vls-version
|
|||
|
|
|||
|
To get the list of configuration options, do
|
|||
|
% ./configure --help
|
|||
|
|
|||
|
Then configure vls :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> if you want a basic VLS without DVD support, do :
|
|||
|
% ./configure --disable-dvd
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> if you want a VLS with DVD support, do :
|
|||
|
% ./configure
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> if you want a VLS with DVB support, do :
|
|||
|
% ./configure --enable-dvb --with-dvb=PATH_TO_DVB_DRIVERS --with-libdvb=PATH_TO_LIBDVB
|
|||
|
|
|||
|
|
|||
|
Then, compile and install :
|
|||
|
% make
|
|||
|
# make install
|
|||
|
|
|||
|
You can also do a make uninstall, make clean or make distclean as needed .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Chapter 3. Receive and save a stream
|
|||
|
|
|||
|
3.1. Receive a stream with VLC
|
|||
|
|
|||
|
3.1.1. Receive an unicast stream
|
|||
|
|
|||
|
% vlc -vvv udp:
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.1.2. Receive a multicast stream
|
|||
|
|
|||
|
% vlc -vvv udp:@239.255.12.42
|
|||
|
|
|||
|
where 239.255.12.42 is the multicast IP address you want to join .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.1.3. Receive an HTTP/FTP/MMS stream
|
|||
|
|
|||
|
Use one of the following command lines :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>% vlc -vvv http://example/stream.xyz
|
|||
|
|
|||
|
where http://example/stream.xyz is the HTTP address of the stream ;
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>% vlc -vvv ftp://example/stream.xyz
|
|||
|
|
|||
|
where ftp://example/stream.xyz is the FTP address of the stream ;
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>% vlc -vvv mms://viptvr.yacast.fr/encoderfranceinfo
|
|||
|
|
|||
|
where mms://viptvr.yacast.fr/encoderfranceinfo is the MMS address of the
|
|||
|
stream .
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
3.2. Save a stream with VLC
|
|||
|
|
|||
|
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 :
|
|||
|
--sout file/muxer:stream.xyz
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>muxer is one of the formats supported by VLC's stream output, i.e. :
|
|||
|
|
|||
|
<20><>+<2B>avi for AVI format ,
|
|||
|
|
|||
|
<20><>+<2B>ogg for OGG format ,
|
|||
|
|
|||
|
<20><>+<2B>ps for MPEG2-PS format ,
|
|||
|
|
|||
|
<20><>+<2B>ts or ts_dvbpsi for MPEG2-PS format (the latter uses libdvbpsi for
|
|||
|
the task) .
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> and stream.xyz is the name of the file you want to save the stream to,
|
|||
|
with the right extension .
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
3.3. Receive a stream with a set-top-box
|
|||
|
|
|||
|
Some set-top-boxes with Ethernet cards can receive MPEG2-TS streams over UDP
|
|||
|
and support multicast. This is the case of the [http://www.pace.co.uk] Pace
|
|||
|
and [http://www.aminocom.com] Aminocom set top boxes. We have tested the
|
|||
|
AmiNET 100 set-top-box from Aminocom: it is nice and small, and it works very
|
|||
|
well with VideoLAN .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Chapter 4. Stream a file
|
|||
|
|
|||
|
4.1. Stream a file with VLC
|
|||
|
|
|||
|
% vlc -vvv video1.xyz --sout udp:192.168.0.42 --ttl 12
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>video1.xyz is the file you want to stream ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>192.168.0.42 is either :
|
|||
|
|
|||
|
<20><>+<2B> the IP address of the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or the DNS name the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or a multicast IP address .
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12 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) .
|
|||
|
|
|||
|
|
|||
|
If you want to stream the file continuously, add the --loop option .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.2. Stream a file with VLS
|
|||
|
|
|||
|
% vls -vv -d udp:192.168.0.42 file:video1.xyz --ttl 12
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>video1.xyz is the file you want to stream ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>192.168.0.42 is either :
|
|||
|
|
|||
|
<20><>+<2B> the IP address of the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or the DNS name the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or a multicast IP address .
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12 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) .
|
|||
|
|
|||
|
|
|||
|
When you want to stop VLS, use the key combination Ctrl-c.
|
|||
|
|
|||
|
If you want to stream the file continuously, add the --loop option .
|
|||
|
|
|||
|
Note VLS can stream MPEG files that meet two critera :
|
|||
|
|
|||
|
<20><>*<2A>the file must be MPEG PS (Program Stream) or MPEG TS (Transport Stream),
|
|||
|
that contain video and audio multiplexed. VLS cannot stream MPEG ES
|
|||
|
(Elementary Stream), i.e. a file with only audio or video .
|
|||
|
|
|||
|
In order to know if an MPEG file is MPEG PS, MPEG TS or MPEG ES, read the
|
|||
|
file with VLC and look at the messages (select in the menu View / Messages,
|
|||
|
or use the command line vlc -vvv) .
|
|||
|
|
|||
|
<20><>+<2B>If you see a line :
|
|||
|
|
|||
|
[00000107] main module debug: using demux module "ts_dvbpsi"
|
|||
|
|
|||
|
it means the file is MPEG TS .
|
|||
|
|
|||
|
<20><>+<2B>If you see a line :
|
|||
|
|
|||
|
[00000109] main module debug: using demux module "ps"
|
|||
|
|
|||
|
it means the file is MPEG PS .
|
|||
|
|
|||
|
<20><>+<2B>If you see a line :
|
|||
|
|
|||
|
[00000109] main module debug: using demux module "es"
|
|||
|
|
|||
|
it means the file is MPEG ES, VLS can't stream it. .
|
|||
|
|
|||
|
|
|||
|
<20><>*<2A>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 .vob
|
|||
|
extension are normally MPEG-2 files and files with .mpg or .mpeg extension
|
|||
|
or usually MPEG-1 files .
|
|||
|
|
|||
|
|
|||
|
You can download this streamable MPEG-2 PS file for your tests : [ftp://
|
|||
|
ftp.videolan.org/pub/videolan/streams/presentation/presentation_short.vob]
|
|||
|
presentation_short.vob .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Chapter 5. Stream a DVD
|
|||
|
|
|||
|
Note Under Unix/Linux, you must have write access to the device corresponding
|
|||
|
to your DVD drive. For that, you should be in the disk or cdrom group
|
|||
|
(look at the permissions in /dev). If you're not, add yourself to the
|
|||
|
group :
|
|||
|
# adduser your_login disk_or_cdrom
|
|||
|
|
|||
|
and then restart your session .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
5.1. Stream a DVD with VLC
|
|||
|
|
|||
|
% vlc -vvv dvdold:/dev/dvd --sout udp:192.168.0.12 --ttl 12
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>/dev/dvd is the name of your DVD drive (put D: under Windows if D is the
|
|||
|
letter of your DVD drive) or the directory where you copied your DVD ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>192.168.0.42 is either :
|
|||
|
|
|||
|
<20><>+<2B> the IP address of the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or the DNS name the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or a multicast IP address .
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12 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) .
|
|||
|
|
|||
|
|
|||
|
If you want to stream the DVD continuously, add the --loop option .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
5.2. Stream a DVD with VLS
|
|||
|
|
|||
|
Note This is possible under GNU/Linux only .
|
|||
|
% vls -vv -d udp:192.168.0.42 dvd:/dev/dvd --ttl 12
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>/dev/dvd is the name of your DVD drive or the directory where you copied
|
|||
|
your DVD ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>192.168.0.42 is either :
|
|||
|
|
|||
|
<20><>+<2B> the IP address of the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or the DNS name the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or a multicast IP address .
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12 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) .
|
|||
|
|
|||
|
|
|||
|
If you want to stream the DVD continuously, add the --loop option .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Chapter 6. Stream a DVB channel (satellite or digital terrestial TV)
|
|||
|
|
|||
|
Note This is possible under GNU/Linux only .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
6.1. Install the DVB drivers
|
|||
|
|
|||
|
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:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> if you use a Linux 2.6.x kernel, you just need to compile the right
|
|||
|
modules ;
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> if you are using a Linux 2.4.x kernel, you must download the latest
|
|||
|
release of the DVB drivers from the DVB drivers download page of the
|
|||
|
[http://www.linuxtv.org/] LinuxTV Project.
|
|||
|
|
|||
|
|
|||
|
Uncompress the tarball and follow the instructions written in the INSTALL
|
|||
|
file to compile and install the drivers .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
6.2. Stream with VLS
|
|||
|
|
|||
|
Put a .dvbrc file containing the DVB channels (satellite or digital
|
|||
|
terrestial TV channels) you want to stream in your home directory (some are
|
|||
|
provided in the libdvb tarball for the satellite channels) .
|
|||
|
|
|||
|
Run VLS with the following command line :
|
|||
|
% vls -vv -d udp:192.168.0.42 dvb:"EUROSPORT" --ttl 12
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>"EUROSPORT" is the channel you want to stream as written in your ~/.dvbrc
|
|||
|
file ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>192.168.0.42 is either :
|
|||
|
|
|||
|
<20><>+<2B> the IP address of the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or the DNS name the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or a multicast IP address .
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12 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) .
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
6.3. Stream with VLC
|
|||
|
|
|||
|
Note For this, you must use the CVS version of VLC and compile it with ./
|
|||
|
configure --enable-dvb This feature should still be considered as
|
|||
|
experimental.
|
|||
|
% vlc -vvv --program 8211 dvb:12597000:0:3:27500000 --sout udp:192.168.0.12 --ttl 12
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>8211 is the PID of the DVB channel you would like to stream, expressed as
|
|||
|
a decimal number ;
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12597000 is the frequency of the transponder you want to stream from in
|
|||
|
Hz;
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>0 is the polarization (0 for vertical, 1 for horizontal) ;
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>3 is the FEC (3 for 3/4, 9 for auto) ;
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>27500000 is the transponder symbol rate in Hz ;
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>192.168.0.12 is either :
|
|||
|
|
|||
|
<20><>+<2B>the IP address of the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B>or the DNS name the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B>or the multicast IP address.
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12 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).
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
Chapter 7. Stream from an MPEG encoding card
|
|||
|
|
|||
|
Note This is possible under GNU/Linux only .
|
|||
|
|
|||
|
VideoLAN supports two MPEG-2 encoding cards :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>Hauppauge WinTV-PVR-250,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>Visiontech Kfir.
|
|||
|
|
|||
|
|
|||
|
The Hauppauge WinTV-PVR-250 gives much better results and is cheaper than
|
|||
|
the Visiontech Kfir .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
7.1. Stream with the Hauppauge WinTV-PVR-250 card
|
|||
|
|
|||
|
7.1.1. Install the drivers
|
|||
|
|
|||
|
First, you will have to patch your kernel to support the v4l2 API (Video 4
|
|||
|
Linux version 2). The patch is available on the [http://bytesex.org/v4l/]
|
|||
|
Video4Linux HQ .
|
|||
|
|
|||
|
Once your kernel is ready, install the CVS version of the Linux drivers for
|
|||
|
the Hauppauge WinTV-PVR-250. They are hosted on [http://ivtv.sourceforge.net
|
|||
|
/] ivtv.sourceforge.net. Then, you will have to create the device and load
|
|||
|
the modules; for this, please refer to the documentation shipped with the
|
|||
|
drivers .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
7.1.2. Stream with VLC
|
|||
|
|
|||
|
Note You must add --enable-pvr to ./configure to use this feature. You may
|
|||
|
want to change the value of CR_MAX_AVERAGE_COUNTER to 1000 in src/input/
|
|||
|
input_clock.c to work around a problem with the card .
|
|||
|
% vlc -vvv pvr:/dev/video0:norm=secam:size=720x576:frequency=576250:
|
|||
|
bitrate=3000000:maxbitrate=4000000 --sout udp:192.168.0.42 --ttl 12
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>/dev/video0 is the device corresponding to the encoding card ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>norm=secam is name of the standard of the analogic signal (possible
|
|||
|
values are pal, secam, and ntsc) ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>size=720x576 is the size of the video you want to stream ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>frequency=567250 is the frequency in kHz of the channel you want to
|
|||
|
stream ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>bitrate=3000000 is the average bitrate of the stream ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>maxbitrate=4000000 is the maximum bitrate of the stream ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>192.168.0.42 is either :
|
|||
|
|
|||
|
<20><>+<2B> the IP address of the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or the DNS name the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or a multicast IP address .
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12 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) .
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
7.1.3. Stream with VLS
|
|||
|
|
|||
|
There is no command line interface for this input for the moment, so you
|
|||
|
will have to use the configuration file .
|
|||
|
|
|||
|
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
|
|||
|
ptune.pl that come with the drivers. Please refer to the documentation
|
|||
|
shipped with the drivers to learn how to use this program .
|
|||
|
|
|||
|
Here is a typical configuration file vls.cfgto run VLS with a Hauppauge
|
|||
|
WinTV-PVR-250 encoding card :
|
|||
|
# 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
|
|||
|
|
|||
|
Once you have adapted the configuration file above, run VLS :
|
|||
|
% vls -vv -f vls.cfg
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
7.2. Stream with the Visiontech Kfir card
|
|||
|
|
|||
|
7.2.1. Install the drivers
|
|||
|
|
|||
|
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 drivers download page of the LinuxTV web site .
|
|||
|
|
|||
|
Uncompress the tarball and follow the instructions written in the INSTALL
|
|||
|
file to compile and install the drivers .
|
|||
|
|
|||
|
Note If you have a VIA chipset, you need to disable USB in the BIOS .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
7.2.2. Stream with VLC
|
|||
|
|
|||
|
% vlc -vvv kfir:/dev/video --sout udp:192.168.0.42 --ttl 12
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>/dev/video is the device corresponding to the Kfir card ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>192.168.0.42 is either :
|
|||
|
|
|||
|
<20><>+<2B> the IP address of the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or the DNS name the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or a multicast IP address .
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12 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) .
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
7.2.3. Stream with VLS
|
|||
|
|
|||
|
There is no command line interface for this input for the moment, so you
|
|||
|
will have to use the configuration file .
|
|||
|
|
|||
|
Here is a typical configuration file vls.cfgto run VLS with a VisionTech
|
|||
|
Kfir encoding card :
|
|||
|
# 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
|
|||
|
|
|||
|
Once you have adapted the configuration file above, run VLS :
|
|||
|
% vls -vv -f vls.cfg
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Chapter 8. Stream from an acquisition card or a webcam
|
|||
|
|
|||
|
Note This is possible under GNU/Linux only .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
8.1. Install the Video for Linux drivers
|
|||
|
|
|||
|
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 [http://www.exploits.org/v4l] here .
|
|||
|
|
|||
|
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 Video: TV and PVR
|
|||
|
/DVR section of [http://www.exploits.org/v4l/] this page .
|
|||
|
|
|||
|
Note that v4l2 modules will also work with VLC .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
8.2. Stream with VLC
|
|||
|
|
|||
|
Note You must add --enable-v4l to ./configure to use this feature .
|
|||
|
% 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
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>/dev/video is the device corresponding to your acquisition card or your
|
|||
|
webcam ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>norm=secam is name of the standard of the analogic signal (possible
|
|||
|
values are pal, secam, and ntsc) ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>frequency=543250 is the frequency of the channel in khz (Warning : for
|
|||
|
VLC < 0.6.1, Frequency is channel frequency in MHz multiplied by 16) ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> size=640x480 is the size of the video you want (you can also put the
|
|||
|
standard size like subqcif (128x96), qsif (160x120), qcif (176x144), sif
|
|||
|
(320x240), cif (352x288) or vga (640x480)) ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>channel=0 is the number of the channel (usually 0 is for tuner, 1 for
|
|||
|
composite and 2 for svideo) ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>adev=/dev/dsp is the audio device ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>audio=1 is the number of the audio channel (usually 0 is for mono and 1
|
|||
|
for stereo) ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>vcodec=mp4v is the video format you want to encode in (mp4v is MPEG-4,
|
|||
|
mpgv is MPEG-1, and there is also h263, DIV1, DIV2, DIV3, I420, I422,
|
|||
|
I444, RV24, YUY2),
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>acodec=mpga is the audio format you want to encode in (mpga is MPEG audio
|
|||
|
layer 2, a52 is A52 i.e. AC3 sound) ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>vb=3000 is the video bitrate in Kbit/s ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>ab=256 is the audio bitrate in Kbit/s
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>vt=800000 is the video bitrate tolerance in bit/s ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>keyint=80 is the maximum interval between two "I" images in number of
|
|||
|
images ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>deinterlace tells VLC to deinterlace the video on the fly ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>192.168.0.42 is either :
|
|||
|
|
|||
|
<20><>+<2B> the IP address of the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or the DNS name the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or a multicast IP address .
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12 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) .
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
8.3. Stream with VLS
|
|||
|
|
|||
|
Note You need the CVS version of VLS. When you compile it, you must do a ./
|
|||
|
bootstrap and ./configure --enable-v4l --with-ffmpeg=PATH (where PATH is
|
|||
|
the absolute path to the directory where you compiled ffmpeg, and not
|
|||
|
the relative path !) .
|
|||
|
|
|||
|
There is no command line interface for this input for the moment, so you
|
|||
|
will have to use the configuration file .
|
|||
|
|
|||
|
Here is a typical configuration file vls.cfgto run VLS with a v4l device :
|
|||
|
# 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
|
|||
|
|
|||
|
Once you have adapted the configuration file above, run VLS :
|
|||
|
% vls -vv -f vls.cfg
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Chapter 9. Advanced use of VLC's stream output (transcoding, multiple
|
|||
|
streaming, etc...)
|
|||
|
|
|||
|
9.1. The syntax
|
|||
|
|
|||
|
Please refer to the command line interface chapter of the VLC user guide to
|
|||
|
learn the syntax of VLC's stream output. You can find the VLC user guide on
|
|||
|
the [http://www.videolan.org/doc/] documentation page .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
9.2. Examples
|
|||
|
|
|||
|
9.2.1. Transcoding
|
|||
|
|
|||
|
Transcode the input stream and send it to a multicast IP address with the
|
|||
|
associated SAP announce :
|
|||
|
% 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}'
|
|||
|
|
|||
|
Display the input stream, transcode it and send it to a multicast IP
|
|||
|
address with the associated SAP announce :
|
|||
|
% 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}"}'
|
|||
|
|
|||
|
Transcode the input stream, display the transcoded stream and send it to a
|
|||
|
multicast IP address with the associated SAP announce :
|
|||
|
% 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}}'
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
9.2.2. Multiple streaming
|
|||
|
|
|||
|
Send a stream to a multicast IP address and a unicast IP address :
|
|||
|
% 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}}'
|
|||
|
|
|||
|
Display the stream and send it to two unicast IP addresses :
|
|||
|
% 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}}'
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
9.2.3. Transcoding and multiple streaming
|
|||
|
|
|||
|
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 :
|
|||
|
% 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}}'
|
|||
|
|
|||
|
Display the input stream, transcode it and send it to two unicast IP
|
|||
|
addresses :
|
|||
|
% 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}"}'
|
|||
|
|
|||
|
Send the input stream to a multicast IP address and the transcoded stream to
|
|||
|
another multicast IP address with the associated SAP announces :
|
|||
|
% 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}"}'
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
9.2.4. HTTP streaming
|
|||
|
|
|||
|
Stream in HTTP :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> on the server, run :
|
|||
|
% vlc -vvv input_stream --sout '#standard{access=http,mux=ogg,url=server.example.org:8080}'
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> on the client(s), run :
|
|||
|
% vlc http://server.example.org:8080
|
|||
|
|
|||
|
|
|||
|
Transcode and stream in HTTP :
|
|||
|
% vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
|
|||
|
standard{access=http,mux=ogg,url=server.example.org:8080}'
|
|||
|
|
|||
|
For example, if you want to stream an audio CD in Ogg/Vorbis over HTTP :
|
|||
|
% vlc -vvv cdda:/dev/cdrom --sout '#transcode{acodec=vorb,ab=128}:
|
|||
|
standard{access=http,mux=ogg,url=server.example.org:8080}'
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
9.2.5. Use the es module
|
|||
|
|
|||
|
Separate audio and video in two PS files :
|
|||
|
% vlc -vvv input_stream --sout
|
|||
|
'#es{access=file,mux=ps,url_audio=audio-%c.%m,url_video=video-%c.%m}'
|
|||
|
|
|||
|
Extract the audio track of the input stream to a TS file :
|
|||
|
% vlc -vvv input_stream --sout '#es{access_audio=file,mux_audio=ts,url_audio=audio-%c.%m}'
|
|||
|
|
|||
|
Stream in unicast the audio track on a port and the video track on another
|
|||
|
port :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> on the server side :
|
|||
|
% vlc -vvv input_stream --sout
|
|||
|
'#es{access=rtp,mux=ts,url_audio=192.168.1.2:1212,url_video=192.168.1.2:1213}'
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> on the client side: to receive the audio :
|
|||
|
% vlc udp:@:1212
|
|||
|
|
|||
|
to receive the video :
|
|||
|
% vlc udp:@:1213
|
|||
|
|
|||
|
|
|||
|
Stream in multicast the video and dump the audio in a file :
|
|||
|
% 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}'
|
|||
|
|
|||
|
Note You can also combine the es module with the other modules to set-up even
|
|||
|
more complex solution .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Chapter 10. Stream in IPv6
|
|||
|
|
|||
|
10.1. Stream in IPv6
|
|||
|
|
|||
|
Note You will need an IPv6-aware operating system, like Linux 2.4.21 with the
|
|||
|
ipv6 module loaded, Windows XP Service Pack 1 or Mac OS X version 10.2
|
|||
|
or higher. Please look at the features pages on the VideoLAN web site to
|
|||
|
know about the status of IPv6 in VLC and VLS for each O.S .
|
|||
|
|
|||
|
Warning 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 !
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
10.1.1. Stream with VLC
|
|||
|
|
|||
|
% vlc -vvv video1.xyz --ipv6 --sout udp:[ff08::1] --ttl 12
|
|||
|
|
|||
|
where :
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>video1.xyz is the file you want to stream (you can also put dvdold:/dev/
|
|||
|
dvd to stream a DVD or any other input configuration) ,
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>ff08::1 is either :
|
|||
|
|
|||
|
<20><>+<2B> the IPv6 address of the machine you want to unicast to ;
|
|||
|
|
|||
|
<20><>+<2B> or the multicast IPv6 address .
|
|||
|
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>12 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) .
|
|||
|
|
|||
|
|
|||
|
Note Under Unix/Linux, you may have to protect the square brackets around the
|
|||
|
IPv6 address :
|
|||
|
% vlc -vvv video1.xyz --ipv6 --sout udp:\[ff08::1\] --ttl 12
|
|||
|
|
|||
|
Note You may have to specify the output network interface :
|
|||
|
% vlc -vvv video1.xyz --ipv6 --sout udp:[ff08::1%eth0] --ttl 12
|
|||
|
|
|||
|
where eth0 is the name of the network interface (under Linux the network
|
|||
|
interfaces are named ethX, under Mac OS X it's enX and under Windows
|
|||
|
it's X, where X is the appropriate number) .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
10.1.2. Stream with VLS
|
|||
|
|
|||
|
You will need to use the configuration file vls.cfg. Please, see the [http:/
|
|||
|
/www.videolan.org/doc/] VLS user guide to know how to write one for IPv6
|
|||
|
streaming in unicast or multicast .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
10.2. Receive in IPv6
|
|||
|
|
|||
|
10.2.1. Receive an unicast stream
|
|||
|
|
|||
|
% vlc -vvv --ipv6 udp:
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
10.2.2. Receive a multicast stream
|
|||
|
|
|||
|
% vlc -vvv --ipv6 udp:@[ff08::1]
|
|||
|
|
|||
|
Note Under Unix/Linux, you may have to protect the square brackets around the
|
|||
|
IPv6 address :
|
|||
|
% vlc -vvv --ipv6 udp:@\[ff08::1\]
|
|||
|
|
|||
|
Note You may have to specify the output network interface :
|
|||
|
% vlc -vvv video1.xyz --ipv6 --sout udp:[ff08::1%eth0] --ttl 12
|
|||
|
|
|||
|
where eth0 is the name of the network interface (under Linux the network
|
|||
|
interfaces are named ethX, under Mac OS X it's enX and under Windows
|
|||
|
it's X, where X is the appropriate number) .
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Chapter 11. Video On Demand
|
|||
|
|
|||
|
11.1. Overview
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
11.2. On the server side
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
Make your MPEG-1, MPEG-2 or MPEG-4 / DivX files available to the clients on
|
|||
|
the Web server.
|
|||
|
|
|||
|
For example, we have a Web server whose DNS name is localserver. On this
|
|||
|
server, we put an MPEG file video1.mpg which will be available to the clients
|
|||
|
at the URL http://localserver/video1.mpg.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
11.3. On the client side
|
|||
|
|
|||
|
% vlc -vvv http://localserver/video1.mpg
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Chapter 12. Add a channel information service
|
|||
|
|
|||
|
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 224.2.127.254 reserved for
|
|||
|
this purpose). On the client side, VLCs receive these annouces and
|
|||
|
automatically add the programs announced to their playlist.
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
12.1. Send announces when streaming with VLC
|
|||
|
|
|||
|
To send announces with VLC, you need to use the complex syntax of VLC's
|
|||
|
stream output, like this:
|
|||
|
% vlc -vvv input_stream --sout '#standard{access=udp,url=239.255.12.42,sap="Test Stream"}' --ttl 12
|
|||
|
|
|||
|
where video1.xyz is the file you want to stream, 239.255.12.42 is the
|
|||
|
multicast IP address you want to stream on, Test Stream is the name that will
|
|||
|
be used for this program in the SAP announces and 12 is the value of the TTL
|
|||
|
(Time To Live) of the stream and of the SAP announces.
|
|||
|
|
|||
|
To do the SAP announces in IPv6, just add the sap_ipv=6 option:
|
|||
|
% vlc -vvv input_stream --sout '#standard{access=udp,url=239.255.12.42,sap="Test Stream",sap_ipv=6}' --ttl 12
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
12.2. Send announces for the programs streamed by VLS with the
|
|||
|
mini-SAP-server
|
|||
|
|
|||
|
Note The mini-SAP-server is only available for Linux and Mac OSX.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
12.2.1. Install the mini-SAP-server
|
|||
|
|
|||
|
Download the latest version of the mini-SAP-server from the [http://
|
|||
|
www.videolan.org/streaming/] streaming download page.
|
|||
|
|
|||
|
Install-it:
|
|||
|
% tar xvzf miniSAPserver-version.tar.gz
|
|||
|
% cd miniSAPserver-version
|
|||
|
% ./configure (if version >= 0.2.3)
|
|||
|
% make
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
12.2.2. Configure the mini-SAP-server
|
|||
|
|
|||
|
Edit the configuration file sap.cfg 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.
|
|||
|
|
|||
|
The Time To Live option indicates the maximum number of routers that the SAP
|
|||
|
announce packets can cross before being dropped.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
12.2.3. Run the mini-SAP-server
|
|||
|
|
|||
|
Start the mini-SAP-server:
|
|||
|
% ./sapserver -c sap.cfg
|
|||
|
|
|||
|
If you want to run the mini-SAP-server in the background, use the -d command
|
|||
|
line switch. For instance:
|
|||
|
% ./sapserver -d -c sap.cfg
|
|||
|
|
|||
|
You can also omit the -c command line switch if your config file is /etc/
|
|||
|
sap.cfg.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
12.3. Start VLC(s) on the client(s)
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> If the announces are sent in IPv4 :
|
|||
|
% vlc -vvv --extraintf sap
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A> If the announces are sent in IPv6 :
|
|||
|
% vlc -vvv --extraintf sap --sap-ipv6
|
|||
|
|
|||
|
|
|||
|
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 !
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
Appendix A. GNU Free Documentation License
|
|||
|
|
|||
|
Version 1.2, November 2002
|
|||
|
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
A.1. PREAMBLE
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.2. APPLICABILITY AND DEFINITIONS
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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".
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.3. VERBATIM COPYING
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
You may also lend copies, under the same conditions stated above, and you may
|
|||
|
publicly display copies.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.4. COPYING IN QUANTITY
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.5. MODIFICATIONS
|
|||
|
|
|||
|
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:
|
|||
|
|
|||
|
A. 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.
|
|||
|
|
|||
|
B. 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.
|
|||
|
|
|||
|
C. State on the Title page the name of the publisher of the Modified
|
|||
|
Version, as the publisher.
|
|||
|
|
|||
|
D. Preserve all the copyright notices of the Document.
|
|||
|
|
|||
|
E. Add an appropriate copyright notice for your modifications adjacent to
|
|||
|
the other copyright notices.
|
|||
|
|
|||
|
F. 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 Addendum below.
|
|||
|
|
|||
|
G. Preserve in that license notice the full lists of Invariant Sections and
|
|||
|
required Cover Texts given in the Document's license notice.
|
|||
|
|
|||
|
H. Include an unaltered copy of this License.
|
|||
|
|
|||
|
I. 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.
|
|||
|
|
|||
|
J. 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.
|
|||
|
|
|||
|
K. 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.
|
|||
|
|
|||
|
L. 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.
|
|||
|
|
|||
|
M. Delete any section Entitled "Endorsements". Such a section may not be
|
|||
|
included in the Modified Version.
|
|||
|
|
|||
|
N. Do not retitle any existing section to be Entitled "Endorsements" or to
|
|||
|
conflict in title with any Invariant Section.
|
|||
|
|
|||
|
O. Preserve any Warranty Disclaimers.
|
|||
|
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.6. COMBINING DOCUMENTS
|
|||
|
|
|||
|
You may combine the Document with other documents released under this
|
|||
|
License, under the terms defined in section 4 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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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".
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.7. COLLECTIONS OF DOCUMENTS
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.8. AGGREGATION WITH INDEPENDENT WORKS
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.9. TRANSLATION
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.10. TERMINATION
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.11. FUTURE REVISIONS OF THIS LICENSE
|
|||
|
|
|||
|
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/.
|
|||
|
|
|||
|
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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
A.12. ADDENDUM: How to use this License for your documents
|
|||
|
|
|||
|
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:
|
|||
|
|
|||
|
|
|||
|
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".
|
|||
|
|
|||
|
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
|
|||
|
replace the "with...Texts." line with this:
|
|||
|
|
|||
|
|
|||
|
with the Invariant Sections being LIST THEIR TITLES, with the
|
|||
|
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
|||
|
|
|||
|
If you have Invariant Sections without Cover Texts, or some other combination
|
|||
|
of the three, merge those two alternatives to suit the situation.
|
|||
|
|
|||
|
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.
|