HOWTO: compiling VLC 0.9.9 + live555 + all major codecs on Ubuntu 8.10

Published: 2009-04-03
VLC 0.9.9 was released a few days ago, so here's an updated version of my popular tutorial on how to build it from source on Ubuntu. As always, all comments welcome!

First of all, you need to build the latest ffmpeg and x264: please refer to this tutorial, which is still up to date.

Once you've done that, there are additional dependencies to take care of.

1) Installing libmad

MAD is a high-quality MPEG audio decoder. At the time of this writing, the latest version is 0.15.1b. Let's get the source, build it and install it:

ubuntu% wget http://ovh.dl.sourceforge.net/sourceforge/mad/libmad-0.15.1b.tar.gz
ubuntu% tar xvfz libmad-0.15.1b.tar.gz
ubuntu% cd libmad-0.15.1b
ubuntu% ./configure --prefix=/usr/local
ubuntu% make
ubuntu% sudo make install


[Updated on 2009/01/04] If you try to compile libmad with gcc 4.3, you will get the following error: cc1: error: unrecognized command line option "-fforce-mem". To correct this, just remove the -fforce-mem flags from the CFLAGS list in the Makefile.

2) Installing libdca

libdca is a free library for DTS audio. At the time of this writing, the latest version is 0.0.5. Let's get the source, build it and install it:

ubuntu% wget http://download.videolan.org/pub/videolan/libdca/0.0.5/libdca-0.0.5.tar.bz2
ubuntu% bzip2 -d
libdca-0.0.5.tar.bz2
ubuntu% tar xvf libdca-0.0.5.tar
ubuntu% cd libdca-0.0.5
ubuntu% ./configure --prefix=/usr/local
ubuntu% make
ubuntu% sudo make install

3) Installing libmpeg2

libmpeg2 is a free library for MPEG streams. At the time of this writing, the latest version is 2.0.5.1. Let's get the source, build it and install it:

ubuntu% wget http://libmpeg2.sourceforge.net/files/libmpeg2-0.5.1.tar.gz
ubuntu% tar xvfz libmpeg2-0.5.1.tar.gz
ubuntu% cd
libmpeg2-0.5.1
ubuntu% ./configure --prefix=/usr/local
ubuntu% make
ubuntu% sudo make install


4) Installing TagLib

TagLib is is a library for reading and editing the meta-data of several popular audio formats (MP3, FLAC, etc). At the time of this writing, the latest version is 1.5. Let's get the source, build it and install it:

ubuntu% wget http://developer.kde.org/~wheeler/files/src/taglib-1.5.tar.gz
ubuntu% tar xvfz taglib-1.5.tar.gz
ubuntu% ./configure --prefix=/usr/local
ubuntu% make
ubuntu% sudo make install


5) Installing live555

live555 is a set of libraries for multimedia streaming (RTP/RTCP, RTSP, SIP).

ubuntu% wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz
ubuntu% tar xvfz live555-latest.tar.gz
ubuntu% cd live
ubuntu% ./genMakefiles linux
ubuntu% make

There is no installation procedure for live555. You have to copy the full directory somewhere safe, like /usr/lib.

ubuntu% sudo cp -r live /usr/lib

6) Installing everything else

Now, let's use APT to fetch all the remaining libraries needed by VLC, as well as the Qt4 packages required by the GUI:

ubuntu% sudo apt-get install libavc1394-dev libraw1394-dev libdc1394-dev libdvdread-dev libdvdnav-dev libdvdcss2-dev libfaad-dev libtwolame-dev liba52-dev libvcdinfo-dev libiso9660-dev libcddb2-dev libflac-dev libschroedinger-dev liba52-dev libogg-dev libvorbis-dev liblua5.1-0-dev libgnomevfs2-dev libtag1-dev libqt4-dev

That should really be it...

7) Fetching VLC

Stable sources can be downloaded as a tarball from the VLC download page. At the time of this writing, the latest version is VLC 0.9.9. If you want to try development snapshots, be my guest but YMMV!

ubuntu% wget http://download.videolan.org/pub/videolan/vlc/0.9.9/vlc-0.9.9.tar.bz2
ubuntu% bzip2 -d vlc-0.9.9.tar.bz2
ubuntu% tar xvf vlc-0.9.9.tar


8) Adding x264 and live555 to the mix

For the sake of convenience, let's copy the directories into the VLC tree:

ubuntu% cd vlc-0.9.9
ubuntu% cp -r $YOUR_X264_BUILD_DIR extras
ubuntu% cp -r $YOUR_LIVE555_BUILD_DIR extras
ubuntu% ls extras
analyser buildsystem contrib live misc package x264

9) Building VLC

Let's go! Don't forget to check your configure output for possible errors.

ubuntu% ./configure --prefix=/usr/local --with-x264-tree=extras/x264 --with-live555-tree=extras/live --enable-release --enable-switcher --enable-shout --enable-dc1394 --enable-dv --enable-dvdread --enable-v4l --enable-pvr --enable-gnomevfs --enable-vcdx --enable-faad --enable-twolame --enable-real --enable-realrtsp --enable-flac --enable-tremor --enable-tarkin --enable-theora --enable-ogg --enable-vorbis --enable-a52 --enable-gnomevfs --enable-dca
Lots of output removed
You can tune the compiler flags in vlc-config.
To build vlc and its plugins, type `./compile' or `make'.

All right, let's run make and get some coffee while VLC is building:

ubuntu% make
lots of output removed
make[2]: Leaving directory `/home/julien/tmp/vlc-0.9.9'
make[1]: Leaving directory `/home/julien/tmp/vlc-0.9.9.'

We're done! Let's check our new VLC before we install it.

7) Checking VLC

ubuntu% ./vlc --version
VLC media player 0.9.9 Grishenko
[00000001] main libvlc debug: VLC media player - version 0.9.9 Grishenko - (c) 1996-2009 the VideoLAN team
[00000001] main libvlc debug: libvlc was configured with ./configure '--prefix=/usr/local' '--with-x264-tree=extras/x264' '--with-live555-tree=extras/live' '--enable-release' '--enable-switcher' '--enable-shout' '--enable-dc1394' '--enable-dv' '--enable-dvdread' '--enable-v4l' '--enable-pvr' '--enable-vcdx' '--enable-faad' '--enable-twolame' '--enable-real' '--enable-realrtsp' '--enable-flac' '--enable-tremor' '--enable-tarkin' '--enable-theora' '--enable-ogg' '--enable-vorbis' '--enable-a52' '--enable-gnomevfs' '--enable-dca'
[00000001] main libvlc debug: translation test: code is "C"
VLC version 0.9.9 Grishenko
Compiled by julien@ubuntu.
Compiler: gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu12)
This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute it under the terms of the GNU General Public License;
see the file named COPYING for details.
Written by the VideoLAN team; see the AUTHORS file.


Looks good. You can verify that your favorite codecs are supported with 'vlc --list'.

I now declare this a good build :) Let's install it:

ubuntu% sudo make install

We're done. Now you can enjoy all your media files with a single player!

About the Author

Julien Simon is the Chief Evangelist at Arcee AI , specializing in Small Language Models and enterprise AI solutions. Recognized as the #1 AI Evangelist globally by AI Magazine in 2021, he brings over 30 years of technology leadership experience to his role.

With 650+ speaking engagements worldwide and 350+ technical blog posts, Julien is a leading voice in practical AI implementation, cost-effective AI solutions, and the democratization of artificial intelligence. His expertise spans open-source AI, Small Language Models, enterprise AI strategy, and edge computing optimization.

Previously serving as Principal Evangelist at Amazon Web Services and Chief Evangelist at Hugging Face, Julien has helped thousands of organizations implement AI solutions that deliver real business value. He is the author of "Learn Amazon SageMaker," the first book ever published on AWS's flagship machine learning service.

Julien's mission is to make AI accessible, understandable, and controllable for enterprises through transparent, open-weights models that organizations can deploy, customize, and trust.