Compiling VLC 0) Prerequisites: ================= It is necessary that both libtool and autoconf are available on the system. apt-get install autoconf libtool The full list of codecs and contributing packages is on http://wiki.videolan.org/Contrib_Status 1) Package dependencies ======================= a) Install from rpm [NOTE: for each package X, the package "X-devel" is also required]: --imlib2: a replacement X library with improved features (ffmpeg depends on this) --gettext: support for multi-lingual messages in programs --freetype: true-type font rendering engine --zlib: lossless data compression library --libxml2: read, write, modify, and parse XML and HTML files --libvorbis: runtime support for Ogg Vorbis --libraw1394: direct access to the IEEE-1394 bus (this package is optional) --libpostproc: mplayer's post-processing library (for transcoding, e.g.) --libid3tag: reading/writing ID3 tags in MP3 files (requires zlib) Under Debian: ************* apt-get install libimlib2 libimlib2-dev gettext libfreetype6 libfreetype6-dev \ zlib1g zlib1g-dev libxml2 libxml2-dev libvorbis0a libvorbis-dev \ libraw1394-5 libraw1394-dev libid3tag0 libid3tag0-dev 1b) wx Windows: --------------- (a) Fedora needs the following RPMs: wxGTK-2.4.2-12.i386.rpm wxGTK-common-2.4.2-12.i386.rpm wxGTK-stc-2.4.2-12.i386.rpm wxGTK-xrc-2.4.2-12.i386.rpm wxGTK-devel-2.4.2-12.i386.rpm wxGTK-common-devel-2.4.2-12.i386.rpm (b) Under Debian: apt-get install libwxgtk2.6-0 libwxgtk2.6-dev wx2.6-headers 2) Check that pthreads are available (/usr/lib/libpthread*, in glibc-devel RPM) 3) Compile supporting packages: =============================== --fribidi: free implementation of Unicode Bidirectional Algorithm (support for the arabic/Hebrew alphabets) --openslp: open-source implementation of the Service Location Protocol --libebml: (used by libmatroska) cd make/linux; make && make install --libmatroska: extensible open standard Audio/Video container format cd make/linux; make && make install --libiconv: GNU character conversion library Optional: --------- --libcdio: library for CD-ROM and CD image access --libgpgerror common error values for all GnuPG components --gnutls implements TLS 1.0 and SSL 3.0 --libdaap implementation of the Digital Audio Access Protocol --libshout to communicate with icecast servers 4) Compile all codecs: ====================== --a52dec: decoder for ATSC A/52 or AC-3 audio format --libogg: Ogg bitstream format library (RFC 3533) --flac: `Free Lossless Audio Codec' -- Ogg Vorbis in a lossless way --faac: `Freeware Advanced Audio Coder' based on ISO MPEG-4 reference code for MPEG-4 ISO AAC files --faad2: a HE, LC, MAIN and LTP profile, MPEG2 and MPEG-4 AAC decoder. --lame: MP3 encoder, includes libmp3lame --libmad: MP3 audio decoder --twolame: optimized MPEG Audio Layer 2 (MP2) encoder based on toolame --libspeex: open source voice codec (e.g. for VoIP) --pa (portaudio): audio I/O library --x264: H.264 video codec get the latest from http://developers.videolan.org/x264.html (there is another, similar variant from the mplayer website) --mpeg2dec: libmpeg2 is a free library for decoding mpeg-2 and mpeg-1 video streams. --libtheora: theora video codec, intended to be used with the Ogg multimedia stream. --xvidcore: ISO MPEG-4 compliant open-source codec cd ${xvidcore}/build/generic ./configure in the file `platform.inc', remove the option "-freduce-all-givs" from the CFLAGS options (does not work with gcc) make && make install --libpostproc: (if not already installed via rpm) This is part of the mplayer package. mkdir -p /usr/local/lib/codecs ==> extract all windows codecs to this directory ==> then build the mplayer After building mplayer: cd libavcodec/libpostproc; make && make install --dirac Dirac hybrid video codec developed at the BBC Misc/optional codecs -------------------- --libdca: audio decoder for DTS Coherent Acoustics streams --libmpcdec: Musepack decoder library 5) Build ffmpeg =============== After performing the above steps, do a `ldconfig' first. Use the `run-ffmpeg' script provided in this directory for a number of options that worked in my case. 6) Compile additional packages ============================== --goom2k4: xmmms visualisation plugin --libmodplug: renders mod music files as raw audio data, for playing or conversion. --libcddb: CDDB database access --> in case of compilation trouble, exclude `examples' from the SUBDIRS variable in the Makefile 7) Compile packages to access DVB and DVD ========================================= --libdvbpsi: support for demultiplexing a satellite DVB stream --libdvdread: foundation for reading DVD-Video images --libdvdcss: portable abstraction library for DVD decryption --libdvdnav: support for DVD navigation features 1. check out from repository cvs -d:pserver:anonymous@dvd.cvs.sourceforge.net:/cvsroot/dvd login cvs -z3 -d:pserver:anonymous@dvd.cvs.sourceforge.net:/cvsroot/dvd co -P libdvdnav 2. build as usual 8) Compile VLC ============== Check ./configure --help. In order to enable the use of dynamically loadable codecs, copy the codecs used by mplayer located in /usr/local/lib/codecs to /usr/local/lib/win32 (or install a symlink); vlc depends on this directory. OTHER VLC PROBLEMS ------------------ In case of any trouble, try `vlc -vv -l' to see diagnostic output. In some cases it is also good to do a `rm -fr $HOME/.vlc', since stale configuration information may be stored in that directory. With vlc-0.8.4a I had the problem that libcdio caused problems with the wx widgets plugin which could therefore not be loaded. The fix was to `make uninstall' the libcdio package in /usr/local/lib and /usr/local/include, and recompile -- this resolved the problem. Further, the build process often stopped with cc1plus complaining about the invalid flag `-mtune=pentium4' in the file vlc-config. Commenting out the respective line helped to finish the compilation process.