Introduction to VLC

VLC is a media player, streamer, and encoder. It can play from many inputs, such as files, network streams, capture devices, desktops, or DVD, SVCD, VCD, and audio CD. It can use most audio and video codecs (MPEG 1/2/4, H264, VC-1, DivX, WMV, Vorbis, AC3, AAC, etc.), and it can also convert to different formats and/or send streams through the network.

This package is known to build and work properly using an LFS-7.9 platform.

Package Information

VLC Dependencies


Optional features and packages


Optional input plugins

libdv-1.0.0, libdvdcss-1.4.0, libdvdread-5.0.3, libdvdnav-5.0.3, opencv-3.1.0, Samba-4.3.4, v4l-utils-1.10.0, libbluray, libdc1394, libcddb, libproxy, Live555, and VCDImager (requires libcdio-0.93)

Optional mux/demux plugins

libogg-1.3.2, Game Music Emu, libdvbpsi, libshout, libmatroska (requires libebml), libmodplug, Musepack, and sidplay-libs

Optional codec plugins

FAAD2-2.7, FLAC-1.3.1, libass-0.13.1, libmpeg2-0.5.1, libpng-1.6.21, libtheora-1.1.1, libva-1.6.2, libvorbis-1.3.5, Opus-1.1.2, Speex-1.2rc2, x264-20160220-2245, Dirac, FluidSynth, libdca, libkate, OpenMAX, Schroedinger, Tremor, Twolame, and Zapping VBI

Optional video plugins

AAlib-1.4rc5, Fontconfig-2.11.1, FreeType-2.6.3, FriBidi-0.19.7, librsvg-2.40.13, libvdpau-1.1.1, SDL-1.2.15 (with SDL_image), and libcaca

Optional audio plugins

PulseAudio-8.0, libsamplerate-0.1.8, and JACK

Optional interface plugins

Qt-4.8.7 (required for the graphical user interface), Qt-5.5.1 (for some plugins, but currently broken with Qt-5.5), libtar, and LIRC

Optional visualisations and video filter plugins

Goom and projectM

Optional service discovery plugins

Avahi-0.6.31, libmtp and libupnp

Miscellaneous options

GnuTLS-3.4.9, libnotify-0.7.6, libxml2-2.9.3, taglib-1.10, and xdg-utils-1.1.1 (runtime)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/vlc

Installation of VLC

If both Qt4 and Qt5 are installed, Qt5 has to be hidden from PKG_CONFIG_PATH, due to a bug. Temporarily do it, issuing:

`echo $PKG_CONFIG_PATH | sed 's@:/opt/qt5/lib/pkgconfig@@'`"

If you wish to avoid thousands of annoying warnings, issue:

sed -i 's/ifndef __FAST_MATH__/if 0/g' configure.ac

Install VLC by running the following commands:

sed -e 's:libsmbclient.h:samba-4.0/&:' \
    -i modules/access/smb.c &&

sed -e '/LUA_C/ i #define LUA_COMPAT_APIINTCASTS' \
    -i modules/lua/vlc.h    &&

sed -e '/core.h/ {
        a #include <opencv2/imgproc/imgproc_c.h>
        a #include <opencv2/imgproc/imgproc.hpp>
    }' \
    -i modules/video_filter/opencv_example.cpp &&

./bootstrap &&

OPENCV_LIBS="-L/usr/share/OpenCV" \
./configure --prefix=/usr &&

sed -e '/seems to be moved/s/^/#/' \
    -i autotools/ltmain.sh libtool &&

In order to build with Lua 5.1 compatiblity, issue:

CFLAGS='-fPIC -O2 -Wall -Wextra -DLUA_COMPAT_5_1' make 

Again, if both Qt4 and 5 are installed, restore PKG_CONFIG_PATH:


To test the results, issue: make -k check. Tests must be run from an active X session. One test fails for unknown reasons.

Now, as the root user:



If the XORG_PREFIX is not /usr, make sure the LIBRARY_PATH environment variable is set properly when doing the install, For example: sudo make LIBRARY_PATH=$XORG_PREFIX/lib ... install.

make docdir=/usr/share/doc/vlc-2.2.2 install


This package installs icon files into the /usr/share/icons/hicolor hierarchy and desktop files into the /usr/share/applications hierarchy. You can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme and /usr/share/applications/mimeinfo.cache. To perform the update you must have GTK+-2.24.29 or GTK+-3.18.7 installed (for the icon cache) and desktop-file-utils-0.22 (for the desktop cache) and issue the following commands as the root user:

gtk-update-icon-cache &&

Command Explanations

sed -i ...: This sed fixes compilation with Samba 4.

sed -e ... -i modules/lua/vlc.h This sed fixes compilation with lua 5.3.

sed -e ... -i modules/video_filter/opencv_example.cpp This sed partially fixes compilation with OpenCV 3.

OPENCV_LIBS="-L/usr/share/OpenCV" This environment variable helps the linker to find libippicv.a installed by OpenCV 3.

./bootstrap: This command calls autoreconf to generate m4 macros and prepare Makefiles.

sed -e ... -i.orig autotools/ltmain.sh libtool: This optional sed removes a lot of invalid build warnings. If desired, remove it.

--enable-opencv=no: This switch disables OpenCV suport.

--disable-lua: Use this switch if you don't have Lua installed.

--disable-mad: Use this switch if you don't have libmad installed.

--disable-avcodec --disable-swscale: Use these switches if you don't have FFmpeg installed.

--disable-a52: Use this switch if you don't have liba52 installed.

--disable-xcb: Use this switch if you don't have X Window System installed.

--disable-alsa: Use this switch if you don't have ALSA installed.

--disable-libgcrypt: Use this switch if you don't have libgcrypt installed.



There are many options to VLC's configure command. Check the configure --help output for a complete list.


Installed Programs: cvlc, nvlc, qvlc, rvlc, svlc, vlc and vlc-wrapper
Installed Libraries: libvlccore.so, libvlc.so and several plugins in /usr/lib/vlc/plugins
Installed Directories: /usr/{include,lib,share}/vlc and /usr/share/doc/vlc-2.2.2

Short Descriptions


is a script to run VLC with the dummy interface.


is a script to run VLC with the ncurses interface.


is a script to run VLC with the Qt interface.


is a script to run VLC with a command line interface.


is a script to run VLC with the skins interface.


is the VLC media player.


is a wrapper to drop privileges with VLC.

Last updated on 2016-02-24 13:13:06 -0800