Contents []
|
VLC requires a C compiler, development headers and a toolchain. gcc will do but you could also use LLVM or proprietary C99/C++ compilers such as Intel's.
If you build from the repositories, you will also need the GNU build system, a.k.a. the "autotools" (autoconf, automake, libtool and gettext) to setup the Makefiles. Make sure they are up-to-date and usable for your system.
On Fedora:
% sudo yum install git libtool pkg-configOn Debian or Ubuntu:
% sudo apt-get install git libtool build-essential pkg-config autoconfOn Arch
% sudo pacman -S base-devel git pkg-config autoconf automake Get the sourceStart by , using FTP for official releases, or using to track VLC development.
If you are using an official release, download source code, extract the archive and go into the resulting VLC directory, e.g.:
% wget % tar xvJf vlc-2.0.3.tar.xz % cd vlc-2.0.3If you are using the development version, start by bootstrapping the source tree:
% git clone % cd vlc % ./bootstrapBootstrapping will fail if the autotools are missing or out-of-date.
Get the third-party librariesNow you could configure the VLC build. But first, you need to make sure that all the required dependencies are in place. Take a look at ./configure --help. Take a good look at that enormous list of options.
It is very important that you do install and enable all the 3rd party libraries that you need. Yes, there are going to be a lot of them if you want a complete or even mostly functional VLC build. If you fail to install a required library, you will end up with a VLC application that well..... essentially does not do anything useful. See for a complete list.
There are some very important dependencies: gettext (NLS) for international support (required), libdvbpsi for MPEG-TS files and streams support, libmad for MP3 audio decoding, libmpeg2 for MPEG1 and MPEG2 video support, FFmpeg or libav (libavcodec, libavformat, libpostproc, libswscale and optionally libavio) for MPEG4 and most other audio and video codecs, and many file formats, liba52 for Dolby (AC3) sound, dvdread and dvdnav for DVD playback, live555 for RTSP stream playback, etc.
For audio output, you will need probably alsa-lib (on ) and/or libpulse (for ). For video output, you will normally need XCB/XVideo and/or OpenGL/GLX. And Qt4 is required to get the GUI support.
Note that you need to install the development packages (development header files and import libraries) to compile VLC, not just the run-time. On Debian/Ubuntu, the correct package names end with -dev. On RPM distributions, they usually end in -devel.
Be careful! If the libraries are not provided by your distribution, you may be better off linking VLC with them statically. Otherwise, you may encounter version problems if another multimedia application updates the libraries later. This is especially true of FFmpeg or libav, and live555.
There are a several ways to get those libraries. You should use only one method at a time:
The preferred methodUse your distribution packaging or portage system, in order to get all the needed libs. For example on Debian or Ubuntu:
$ sudo apt-get build-dep vlcopenSUSE users might have a look at the source-install (si) command in the zypper manpage:
$ sudo zypper si -d vlcNote: To get the libraries, you must first add the VLC repositories to your system repositories. For example in openSUSE:
$ sudo zypper arYou should replace
If your distribution does not provide the needed libraries, or you really want to link VLC statically, use the VLC contribs system. It is included in the VLC source.
First, you need to install the GNU autotools (if you have not already done so), CMake, subversion, Git and a recent GNU/tar utility or equivalent.
# apt-get install subversion yasm cvs cmakeThen you can run:
% cd contrib % mkdir native % cd native % ../bootstrap % makeNote the commands above are for VLC 2.0 or later. Details differ slightly for older versions:
% cd extras/contrib % ./bootstrap % makeThat should download and build a lot of those libraries for you. Unfortunately, given the large number of libraries and the variety of the platforms people build VLC for, it is not unlikely that you will hit an error while contribs are compiling. Thus, this approach is only recommended for experienced Unix compilers.
The method for people with too much time to wasteRead the , download them and build them by hand.
Regardless of the methodIn any case, some basic OS support libraries are not included and must really be installed through the packaging system in any case, notably , and .
Configuration./configure is used to check whether your system is able to compile VLC. Also you can choose the features in your build. As a reminder, this command will show the various options:
% ./configure --helpVLC 2.0 and later: For most users, ./configure does not require any command-line options.
By default, features to be compiled are chosen automatically depending on what libraries are detected as available. If the contribs have been compiled first, the resulting VLC will be reasonably functional.
Note that libraries that are not in the default prefix, and not in vlc contribs, must be known to pkg-config in order for ./configure to find them.
There are some features that are disabled (not compiled) by default. If you want them, they must be forced on by using configure flags. You can find a list of these features by searching for "disabled" in ./configure --help.
(Beginner's guide: enter the command
% ./configure --help | lessand hit enter. Type a slash '/', type "disabled" (without quotes), hit enter. Pressing n goes to the next match, N goes to previous match, q returns to the command line. Use the up/down arrow keys to scroll. All matches except the --cache-file option (which belongs to configure itself) are VLC features that must be forced on if desired.)
VLC 1.1 and earlier: You probably need to tweak the "configure" line.
Special libsVLC 2.0 and later: there are no special libraries. If live555 exists in the contrib/ subdirectory, it is detected automatically. Any libraries that are not in the default prefix, and not in vlc contribs, must be known to pkg-config in order for ./configure to find them.
VLC 1.1 and earlier: Use --with-live555-path=path/to/livemedia/source/tree in connection with --enable-live555. For FFmpeg or libav, pkg-config is the only reliable way for VLC's configure to find the libraries. So you need to set PKG_CONFIG_PATH correctly if your FFmpeg/libav libraries are not installed at the default prefix (meaning /usr) or you want to use static linking.
Final configurationIf you want to install VLC into another directory, run
% ./configure --prefix=/path/to/install/folder/This is an example of a typical VLC configure line:
% ./configure --enable-x11 --enable-xvideo --enable-sdl --enable-avcodec --enable-avformat \ --enable-swscale --enable-mad --enable-libdvbpsi --enable-a52 --enable-libmpeg2 --enable-dvdnav \ --enable-faad --enable-vorbis --enable-ogg --enable-theora --enable-faac --enable-mkv --enable-freetype \ --enable-fribidi --enable-speex --enable-flac --enable-live555 --with-live555-tree=/usr/lib/live \ --enable-caca --enable-skins --enable-skins2 --enable-alsa --enable-qt4 --enable-ncursesis another.
UbuntuIf you get continuous errors while ./configure then consider reinstalling the corresponding libraries. This will set the paths and other information correctly. Check the $PKG_CONFIG_PATH(environment variable) whether it is set to a path where the libraries like libavcodec.pc are available. Otherwise create the environment variable, export it and then update the ldconfig.
CompilationCompile VLC:
% makeYou do not need to install VLC to use it. You can also simply run it from the build directory:
# ./vlcIf you really want to install VLC to the system, run this as root:
# make installYou can uninstall later with this, but you need to keep the build tree untouched until then:
# make uninstallTo remove files created during the compile (optional) type:
% make clean Notes CygwinCompiling on may be broken from time to time as Cygwin packages change. We recommend instead. Consider yourself warned.
Debian/UbuntuDebian users who want to compile VLC should install the packages below:
If you just want to use VLC media player then simply install the package vlc (sudo apt-get install vlc) - the unstable version is fairly up-to-date most of the time, while the stable is, err, stable and very old ;-)
Troubleshooting / common problems LuaYou may need to install Lua if you get "LUA byte compiler missing." message. You namely need to install "luac", the Lua byte compiler.
On Debian/Ubuntu:
% sudo apt-get install lua5.1On Fedora:
% sudo yum install lua XCBVLC 1.1 and later requires XCB libraries to deal with X11 displays. Do not disable XCB or you will not get any video support!
To install these libraries run the following commands (Debian/Ubuntu):
% sudo apt-get install libxcb-shm0-dev libxcb-xv0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-composite0-devUnder Fedora:
% sudo yum install libxcb-devel xcb-util-develFor OpenGL (Debian/Ubuntu only), you will additionally need XLib with XCB:
% sudo apt-get install libx11-xcb-devIf your distribution provides a version of XLib without XCB, then this later package will not be available. So you will not be able to use OpenGL. Use XVideo instead.
Compile fails after git pullIt is likely that the sources in the repository have changed significantly since they were last pulled, and a build system cache has gone out of date. Try the troubleshooting methods described in the .