Chapter 1.  Introduction

Table of Contents

What is the VideoLAN project ?
What is a codec ?
How can I use VideoLAN ?
Command line usage

What is the VideoLAN project ?

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:

  • 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,

  • 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

Global VideoLAN solution

More details about the project can be found on the VideoLAN Web site.

VideoLAN software

VLC

VLC works on many platforms: Linux, Windows, Mac OS X, BeOS, *BSD, Solaris, Familiar Linux, Yopy/Linupy and QNX. It can read:

  • MPEG-1, MPEG-2 and MPEG-4 / DivX files from a hard disk, a CD-ROM drive, ...

  • DVDs and VCDs,

  • from a satellite card (DVB-S),

  • 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:

  • MPEG-1, MPEG-2 and MPEG-4 / DivX files,

  • DVDs,

  • from an MPEG encoding card,

to:

  • one machine (i.e. to one IP address): this is called unicast,

  • 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.

VLS

VLS can stream:

  • an MPEG-1, MPEG-2 or MPEG-4 files stored on a hard drive or on a CD,

  • a DVD located in a local DVD drive or copied on a hard disk,

  • a satellite card (DVB-S) or a digital terrestial television card (DVB-T) ,

  • an MPEG encoding card ;

to :

  • one machine (i.e. to one IP address): this is called unicast,

  • 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.

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.

What is a codec ?

To fully understand the VideoLAN solution, you must understand the difference between a codec and a container format

  • 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

  • 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:

  • MPEG is a codec. There are several versions of it, called MPEG-1, MPEG-2, MPEG-4, ...

  • 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.

How can I use VideoLAN ?

Documentation

The user documentation of VideoLAN is made up of 4 documents:

  • the VideoLAN HOWTO. This document is the complete guide of the VideoLAN streaming solution. It will give you practical examples to set up your streaming solution.

  • the VLC user guide. This document is the complete guide for VLC.

  • the VLS user guide. This document is the complete guide for VLS.

  • The VideoLAN FAQ. This document contains Frequently Asked Questions about VideoLAN.

The latest version of these documents can be found on the documentation page .

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:

  • vlc@videolan.org for the questions on VLC ,

  • 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 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 bug reporting page .

Command line usage

  • 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 !

  • 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. .

Open a terminal

Windows

Click on Start, Run and type:

  • cmd Enter (Windows 2000 / XP),

  • command Enter (Windows 95 / 98 / ME).

The terminal appears

Figure 1.2. Windows terminal

Windows terminal

Note

Under Windows, you need to be in the directory where the program is installed to run it.

Linux / Unix

Open a terminal :

Figure 1.3. Linux X terminal

Linux X terminal

In the documentation, we adopt the following conventions for the Unix commands:

  • commands that should be typed as root have a # prompt:

    #  command_to_be_typed_as_root 
    
  • commands that should be typed as a regular user have a % prompt:

    % command_to_be_typed_as_regular_user
    

Mac OS X

Go to Applications, open the folder Utilities and double-click on Terminal :

Figure 1.4. Mac OS X terminal

Mac OS X terminal

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 ./.

BeOS

In the deskbar, go to Application and then Terminal:

Figure 1.5. BeOS terminal

BeOS terminal

Note

Under BeOS, you need to be in the directory where the program is installed to run it, and start the command with ./ .