Chapter 2.  Modules and options for VLC

Table of Contents

The modules
Access modules
Demuxers
Codec modules
Video outputs
Video filters modules
Audio outputs
Interface modules
OS support modules
Miscellaneous
Compilation Options

The modules

VLC uses a modular system, which allows to add easily new fonctions and formats. Here is a description of nearly all the VLC modules. A few "internal" modules won't be explained here. For a complete list of all VLC modules, please have a look at the LIST file in the subdirectory "modules" of the VLC source tree.

If you installed VLC through a binary file, you will get the default modules. If, however, you want to customize VLC to your needs, you will have to compile VLC from sources.

Reading this part may be useful if you intend to compile VLC or if you want to know all the options available for modules you use.

The compilation itself is explained in the next chapter.

If you wish to compile a module which is stated disabled by default, you have to launch the configure script with:

% ./configure --enable-module_name

On the contrary, if you want to disable a module that is default enabled, you have to use:

% ./configure --disable-module_name

Each VLC module has its own help and options. To see every options associated with a module, use:

 % vlc --advanced -p module_name

or use the "Preferences" Panel of your favorite graphical interface.

Access modules

These modules allow VLC to read its streams from different sources. VLC tries to guess the most suitable module at runtime. If you want to force an input module lauch VLC with: --access modulename

cdda

default: enabled

This is the Audio CD input. At present, if you are have a new enough libvcdinfo (from vcdimager) and a new enough libcdio you will get the newer navigation-capable plugin. Eventually when libcdio is more mature and handles more OSs the older plugin will disapear. The file doc/intf-vcd.txt in the vlc source gives detailed information about this plugin.

dvb

default: disabled

For GNU/Linux only

This module allows to read from DVB-S, DVB-T, and DBC-C satellite, digital terrestrial, or cable cards. It uses the Video4Linux 2 API, that is only available in kernel 2.5.X and 2.6.X.

dvd

default: enabled

This is the old DVD input module. It uses libdvdcss for DVD decryption (see the libdvdcss page).

dvdplay

default: enabled

This is the regular DVD input module. It will need libdvdcss for DVD decryption (see the libdvdcss page) and libdvdplay for DVD navigation (see the libdvdplay page).

dvdread

default: disabled

This is an alternative to the previous ones. It uses libdvdread for DVD reading (see the Ogle download page) and libdvdcss for DVD decryption (see the libdvdcss page).

dshow

default: enabled

For Microsoft Windows only

This module allows VLC to read from input cards that have a DirectShow driver. Most common webcams and acquisitions boards have such a driver.

http,ftp,udp,file,directory,mms

Always enabled

These are standard input modules. The HTTP input can be used for Video On Demand.

pvr

default: disabled

For GNU/Linux only

This module allows to read from Hauppauge PVR cards.

rstp/rtp/sdp (livedotcom)

default: enabled

This module allows you to read VOD streams using the RTSP protocol. It uses the liveMedia library from http://live.com/

satellite

default: disabled

This is an input module that allows to read directly from a Hauppauge WinTV Nova card under GNU/Linux. It requires drivers 0.9.4 available from linuxtv.org.

slp

default: enabled

This module allows to get the names and addresses for streams announced using the SLP protocol.

v4l

default: disabled

For GNU/Linux only

This module allows to read from Video4Linux devices.

vcd

default: enabled

This is the VideoCD input. At present, if you are have a new enough libvcdinfo (from vcdimager) and a new enough libcdio you will get the newer navigation-capable plugin. Eventually when libcdio is more mature and handles more OSs the older plugin will disapear. The file doc/intf-vcd.txt in the vlc source gives detailed information about this plugin.

Demuxers

In a video stream, the video signal and the audio one are always into "containers" formats. Demuxers extract the streams from it and pass it to the decoders.

For example, an AVI file can contain a MPEG-4 video, or an uncompressed video. AVI is only a storing format, not a compression format.

avi

Always enabled

This module allows you to read .avi files.

Options:

  • --avi-interleaved, --no-avi-interleaved : Enables or disables interlacing mode (default is disabled)

  • --avi-index, --no-avi-index : Forces an index to be created. This can help for buggy streams (default is disabled)

asf, aac, ogg, aiff, au, wav, mp4

Always enabled

This module allows you to read .asf, .aac, .ogg, .aiff, .au, .wav, .mp4 files.

mkv

default: enabled

This module allows you to read files that use the Matroska format.

Options:

  • --mkv-seek-percent, --no-mkv-seek-percent : When this option is enabled (this is the default behaviour), seek is based on percentage and not on time

mod

default: enabled

This module allows you to read MOD files (extensions mod, s3m, xm, it, 669, amf, ams, dbm, dmf, dsm, far, mdl, med, mtm, okt, ptm, stm, ult, umx, mt2, psm). MOD files are audio files used on AMIGA computers.

Options:

  • --mod-noisereduction, --no-mod-noisereduction : Default disabled. Add noise reduction to mod audio

  • --mod-reverb, --no-mod-reverb : Default disabled. Add reverberation to mod audio

  • --mod-reverb-level <integer> : Reverb level (0-100 defaults to 0)

  • --mod-reverb-delay <integer> : Reverb delay in ms, 0 to 1000 ms, default to 40. (usually 40-200ms).

  • --mod-megabass, --no-mod-megabass : Default disabled. Add megabass enhancements to mod audio.

  • --mod-megabass-level <integer> : Mega bass level (0-100 defaults to 0).

  • --mod-megabass-range <integer> : Mega bass cut-off (10-100 Hz defaults to 10).

  • --mod-surround, --no-mod-surround : Default disabled. Add surround enhancements to mod audio.

  • --mod-surround-level <integer> : Surround level (0-100 defaults to 0).

  • --mod-surround-level <integer> : Surround delay (0-1000 ms defaults to 5, usually 5-40ms).

nsv

default: enabled

This module allows you to read NSV (Nullsoft Streaming Video) streams. Most NSV streams use the VP6 codec which is currently unsupported by VLC (VLC only supports VP1 and VP3 for the moment).

ps,ts

Always enabled

These modules allow you to read MPEG-2 Program Stream or Transport Stream files.

Options:

  • --vls-backward-compat, --no-vls-backward-compat : Enable this option if you want to read VLS < 0.4 MPEG 2 TS streams.

  • --buggy-psi, --no-buggy-psi (ts module) : Enable this option to help handling of files with buggy PSI.

pva

This module allows you to read PVA files (.pva). PVA is a file format used by the software that comes with the TechnoTrend/Hauppauge/Siemens/Galaxis DVB cards.

real

Always enabled

This module allows you to read RealMedia (.rm) files. Note : Only very old audio codecs (rv10) are currently supported by VLC inside RealMedia files.

rawdv

Always enabled

This module allows you to read DV files

dvbpsi

default: enabled

This module allows to demux streams from a satellite card.

id3,m3u

Always enabled

These modules allow you to read M3U, B4S, PLS, and ASX playlists, and ID3 tags.

Codec modules

The following modules add codec (ie, compression formats) support.

a52

default: enabled

This decoder uses liba52 (see the liba52 web site ).

cinepak

default: enabled

This codec decodes the Cinepak format.

faad

default: disabled

Faad is an MPEG-4 audio decoder.

ffmpeg

default: enabled

This is a free MPEG-4/DivX/OpenDivX/Xvid codec (see the ffmpeg web site).

Options:

  • --ffmpeg-dr, --no-ffmpeg-dr : Enables or disables direct rendering (default enabled)

  • --ffmpeg-error-resilience : Integer to set the error resilience factor, from -1 to 99 (-1 means no resilience at all)

  • --ffmpeg-workaround-bugs : Try to fix some bugs. Add the values corresponding to the bugs you want to fix, and pass it as argument: 1 = autodetect, 2 = old msmpeg4, 4 = xvid interlaces, 8 = ump4, 16 = no padding, 32 = ac vlc, 64 = Qpel chroma

  • --ffmpeg-hurry-up, --no-ffmpeg-hurry-up : Allow the decoder to decode only partially or even to skip frames, if it is late. This can be useful with low end computers, but produces weird pictures.

  • --ffmpeg-truncated : Truncates the stream : -1=auto, 0=disabled, 1=enabled

  • --ffmpeg-pp-q : Postprocessing quality (integer between 0 and 6). A higher level requires more CPU power and will produce better pictures.

  • --ffmpeg-pp-name : Series of postprocessing filters

libmpeg2

default: enabled

This codec allows to read MPEG2 files.

mad

default: enabled

This codec is a very smart MP3 decoder, that only uses integers. This allows its use for CPU which don't handle floating point numbers (on PDA, for example).

ogt

default: enabled

OGT handles the SVCD subtitles (Philips Overlay Graphics Text or OGT) and subtitles used by Chaoji VCDs (also known as CVD).

A description of the format for these kinds of subtitles can be found in the vlc source in doc/subtitles/svcd-subtitles.txt and doc/subtitles/cvd-subtitles.txt werden

Use the option --spu-channel number to select a subtitle track to show. The number should be -1, 0, 1, 2, or 3. The CVD and SVCD subtitle formats allow for 4 subtitles. The value -1 deselects any subtitles .

spudec

default: enabled

spudec handles the DVD subtitles. At present full color subtitles and transparency are not handled.

For a description of the format for these kinds of subtitles see http://sam.zoy.org/writings/dvd/subtitles.

tarkin

default: disabled

tarkin is a new codec (experimental) by the Ogg Project (see the Ogg Vorbis web site).

theora

default: disabled

theora is a new codec (experimental) by the Ogg Project (see the Ogg Vorbis web site).

tremor

default: disabled

This is an Ogg/Vorbis codec that only makes integer calculus, which allow its use on CPU which don't have floating point support (see the Ogg Vorbis web site).

vorbis

default: enabled

This codec allows you to read the Vorbis (audio) encoded files.

xvid

default: disabled

This codec allows you to read files encoded with Xvid via the xvidcore library (see Xvid web site).

Video outputs

Video outputs modules allow VLC to display video on your screen. When launched, VLC tries to guess the most suitable video output module for your system. However, if you want to force a specific module, use the following command line switch: --vout modulename

directx

default enabled on win32

For Windows only

This video output uses Microsoft Direct X libraries. It is recommended for the win32 port.

You may indicate the path to directX libraries and headers with the --with-directx=PATH switch, when running the configure script.

x11

default: enabled

For Unix with X11 servers only

This is the basic X11 video output. It only requires a working X11 server. You will need xlibs headers to compile it (xlibs-dev package on Debian systems).

Options:

  • --x11-display <string> X11 display name to use

  • --x11-altfullscreen, --no-x11-altfullscreen : use alternate fullscreen mode to bypass window managers (default disabled)

  • --x11-shm, --no-x11-shm : use x11 shared memory (default enabled)

  • --x11-xineramascreen <integer> : choose the screen to be used for fullscreen mode, when working with xinerama

xvideo

default: enabled

For GNU/Linux only

It requires an xvideo compliant graphic card (it is the case for nearly all modern cards). It uses hardware acceleration for YUV transformation and rescaling.

Options:

  • --xvideo-display <string> : X11 display name to use

  • --xvideo-adaptor <integer> : xvideo adaptor number

  • --xvideo-altfullscreen, --no-xvideo-altfullscreen : use alternate fullscreen mode to bypass window managers (default disabled)

  • --xvideo-shm, --no-xvideo-shm : use x11 shared memory (default enabled)

  • --xvideo-xineramascreen <integer> : choose the screen to be used for fullscreen mode, when working with xinerama

  • --xvideo-chroma <string> : XVimage chroma format

sdl

default: enabled

This video output uses sdl libraries. You need at least version 1.1.6 of this libraries.

You may indicate the path to the sdl-config program with the --with-sdl-config-path=PATH switch, when running the configure script, if you intend to compile VLC.

wingdi

default: enabled on win32

For Windows only

This video output uses GDI. It is designed for users who don't have Direct X, but the perfs are very low. If you have DirectX installed on your system, do not use the wingdi video output

fb

default: enabled on GNU/Linux

For GNU/Linux only

This is the frame buffer video output. Your kernel has to be compiled with frame buffer support. sein.

Options:

  • --fbdev <string> : framebuffer device (default is /dev/fb0)

glide

default: disabled

This video output uses Glide libraries (hardware acceleration for 3Dfx cards).

You may indicate the path to the library with the --with-glide=PATH configure option, if you intend to compile VLC.

mga

default: disabled

For GNU/Linux only

This module provides hardware acceleration for Matrox cards under GNU/Linux.

ggi

default: disabled

caca

default: disabled

This is the Color ASCII Art Video Output. This video output uses the libcaca library to display video through Color ASCII art. It requires libcaca development headers (libcaca-dev package under Debian GNU/Linux) to compile.

aa

default: disabled

This is the ASCII Art Video Output. This video output uses the aalib library to display video through ASCII art. It requires aalib headers (aalib1-dev package under Debian GNU/Linux) to compile.

svgalib

default: disabled

For GNU/Linux only

This is a video output for the SVGAlib library.

qte

default: disabled

For iPaq only

This is a video output for QT Embedded, an iPaq-specific graphical library. .

Video filters modules

These modules allow you to perform modifications on the rendered image (deinterlacing, hue/contrast/saturation adjusting, cropping and so on). To enable them use the following VLC command-line switch: --filter filter1,filter2,...

adjust

Always enabled

This filter allows you to alter image contrast, hue, saturation and brightness.

Options:

  • --contrast <float> : set the image contrast, between 0 and 2. Defaults to 1

  • --brightness <float> : set the image brightness, between 0 and 2. Defaults to 1

  • --hue <integer> : Set the image hue, between 0 and 360. Defaults to 0

  • --saturation <float> : Set the image saturation, between 0 and 3. Defaults to 1

deinterlace

Always enabled

This filter deinterlaces video. It is useful with streams coming from a digital satellite channel or digital terrestial television channels .

Options:

  • --deinterlace-mode {discard,blend,mean,bob,linear} : deinterlacing mode (default: discard)

crop

Always enabled

This filter allows you to crop parts of the image.

Options:

  • --crop-geometry <string> : set the geometry of the zone to crop. This is set as width x heigth + left offset + top offset (in pixels).

  • --autocrop, --noautocrop : automatic black border cropping (default disabled)

transform

Always enabled

This filter allows to rotate the video in several ways .

Options:

  • --transform-type {90,180,270,hflip,vflip} : transformation type, one of '90', '180', '270', 'hflip' and 'vflip'.

distort

Always enabled

This filter adds a distortion effect to the video. Who said it was useless ? :-)

Options:

  • --distort-mode {wave,ripple} : distortion mode, one of "wave" and "ripple"

invert

Always enabled

This filter inverses colors.

motionblur

Always enabled

This filter adds a "motion blur" effect to the image.

Options:

  • --blur-factor <integer> : the degree of blurring from 1 to 127

wall

Always enabled

This filter allows you to have the video cut in pieces in several windows, which you can order as you wish. It can be used to generate image walls with several sources.

Options:

  • --wall-cols <integer> : Select the number of vertical videowindows in which to split the video

  • --wall-rows <integer> : Select the number of horizontal videowindows in which to split the video

  • --wall-active <string> : comma separated list of active windows, defaults to all

logo

Always enabled

This filter allows you to insert a png logo inside the video, adjust its transparency with the mouse wheel and move it around using the mouse.

Options:

  • --logo-file <string> : Logo filename (The file must be in PNG RGBA 8bits format).

  • --logo-x <integer> : X coordinate of the logo, You can move the logo by left-clicking on it.

  • --logo-y <integer> : Y coordinate of the logo, You can move the logo by left-clicking on it.

  • --logo-transparency <integer> : Transparency of the logo (255-0). You can change it by middle-clicking and moving mouse left or right.

clone

Always enabled

This filter allows you to clone the image.

  • --clone-count <integer> : number of video windows in which to clone the video

  • --clone-vout-list <string> : specific vout modules that you want to activate

Audio outputs

These modules allow you to choose the way the sound will be output to your audio system. VLC tries to guess the most appropriate audio output module for your system at runtime. However if you want to force a specific output module, use the following command line switch: --aout modulename

coreaudio

default: enabled on Mac OS X

For Mac OS X only

This audio output uses CoreAudio under Mac OS X

Options:

  • --coreaudio-dev <integer> : force a specific audio device

directx

default: enabled on Windows

For Windows only

This audio output uses directX under Windows

oss

default: enabled on GNU/Linux

For GNU/Linux and Unix only

This is the audio output for OSS (Open Sound System) output (/dev/dsp, for example, under Linux). It requires that your kernel was compiled with support for your sound card, or, if you use ALSA (Advanced Linux Sound System), the OSS emulation layer must be active.

Options:

  • --dspdev <string> : set dsp OSS driver

  • --oss-buggy, --no-oss-buggy Some buggy OSS drivers just don't like when their internal buffers are completely filled (the sound gets heavily hashed). If you have one of these drivers, then you need to enable this option (default disabled)

alsa

default: disabled

For GNU/Linux only

This is the sound output for ALSA (Advanced Linux Sound Architecture). It only works under Linux, and it requires that you installed the ALSA drivers and libraries.

Options:

  • --alsadev <string> : ALSA device name

esd

default: disabled

For GNU/Linux & Unix only

This sound output has ESD (Enlightened Sound Daemon) support (usually used with Gnome). You must have the daemon and its libraries installed.

arts

default: disabled

For GNU/Linux & Unix only

This sound output has aRts (KDE's sound server) support. You must have the daemon and its libraries installed.

waveout

default: enabled under Windows

For Windows only

This is the Wave output, which is used by the windows port.

sdl

default: enabled

This audio output uses SDL. Please refer to the video output.

Interface modules

These modules allow you to choose the interface or interfaces you want to use (either graphical or control interfaces).

dummy

Always enabled

Use this interface when you want no interface! That is you just want to give a self-contained command-line string.

For example:

% vlc --intf dummy vcd://

gestures

Always enabled

This module allows you to control VLC via mouse gestures .

Options:

  • --gestures-threshold : The integer argument is the threshold of move required for a mouse gesture to be recorded

  • --gestures-button {left,middle,right} : The button to click before a gesture

gnome

default: disabled

For GNU/Linux only

This is the Gnome interface. It needs gnome libraries (libgnome32 package under Debian) and headers (libgnome-dev package under Debian) if you wish to compile it. Warning: this interface is no longer maintained, and outdated .

Options:

  • --gnome-tooltips, --no-gnome-tooltips : Whether to show tooltips (default enabled)

  • --gnome-toolbartext, --no-gnome-toolbartext : Whether to show text on buttons (default enabled)

  • --gnome-prefs-maxh : Argument is an integer that gives the maximum height for configuration windows

gtk

default: enabled

This is the GTK+ interface. It needs gtk libraries and headers files if you are compiling it. Note that it can also be used under Windows. Warning: this interface is no longer maintained, and outdated .

http

Always enabled

This module allows you to remote control your VLC via a web browser. You can create custom web pages. .

Options:

  • --http-host : The argument, a string, gives the host address. It must look like address[:port], where address can be an IP address or a DNS name, and port is the port on which the HTTP interface will be available (default is 8080). Default address is localhost, which will be ok for almost everybody

  • --http-src : Gives the path to the HTML pages to be served.

joystick

default: disabled

For GNU/Linux only

This module allows you to control VLC via a joystick with many options. .

kde

default: disabled

For GNU/Linux only

This is the KDE interface module. You will need the libraries (kdelibs3 package on Debian) and headers (kde-devel package under Debian) if you wish to compile it. Warning: this interface is no longer maintained, and outdated .

Options:

  • --kde-uirc : Path to the ui.rc file

lirc

default: disabled

For GNU/Linux only

This interface module allows you to control VLC through a remote. A lircrc example is provided to help you configure it to your remote (see doc/lirc/example.lircrc) .

ncurses

default: disabled

For GNU/Linux only

This is a text interface, using ncurses library. You will need ncurses headers if you want to compile it (libncurses5-dev package on Debian) .

opie

default: disabled

This is an interface plugin for the Qt Embedded library (iPaq graphical library) .

qt

default: disabled

This is the QT interface module. You will need the libraries (libqt2 package under Debian) and headers (libqt-dev package under Debian) if you wish to compile it. Warning: this interface is no longer maintained, and outdated .

rc

Always enabled

This is the Remote Control interface module. It allows you to control VLC via commands, such as play, stop, etc... or via a script. This interface is text-based, so you should use it when you are in console mode .

Options:

  • --rc-show-pos, --no-rc-show-pos : Indicates whether the position in the stream must be shown (outputs one timer line every seconds) (default disabled)

  • --fake-tty, --no-fake-tty : Enables or disables TTY virtual terminal emulation (default disabled)

skins

default: enabled

This skinnable interface module works under Win32 and X11. You can create your own skins very easily with XML files .

Options:

  • --skin_last : This option allows you to specify the last used skin (the argument is a string).

  • --skin_config : This allows you to set the skin configuration (the argument is a string).

  • --show_in_tray, --noshow_in_tray : Indicates whether the application must be shown in traybar (default disabled).

  • --show_in_taskbar, --noshow_in_taskbar : Indicates whether the application must be shown in the taskbar (default enabled).

wxwindows

default: enabled

The wxWindows interface is a portable interface that is currently working under GNU/Linux and Windows. It is now the most up-to-date graphical interface available under both Windows and GNU/Linux .

OS support modules

The following modules add support for different OSs.

macosx

This is the MacOS X support module, including a native interface.

qnx

This is the QNX RTOS support module.

Miscellaneous

This section describes a few more modules that don't belong to any of the categories described before.

sout

default: enabled

Stream Output is a new feature of VLC that allows it to stream an MPEG-1, MPEG-2 or MPEG-4/DivX file or a DVD.

For more details, please have a look at the The command line interface section.

test-suite

default: disabled

This builds a special VLC, for testing purposes only.

mozilla

default: disabled

This is not really a module. When enabled, a VLC-based Mozilla plugin is built.

xosd

default: disabled

For Unix only

This module outputs the current stream to an "OSD" (On Screen Display).

Compilation Options

There are a few options that you can set when running the configure script, which are not related to modules.

You can have a look at these options by typing:

% ./configure --help

You can for example control all the installation directories, the system for which you want to build VLC for (if not guessed correctly),...

You can also choose to enable or disable some optimizations.

--disable-plugins

If you select this option, no plugins will be enabled. This is definitely not recommended, as you would get a very poor VLC, and should only be used for testing purposes.