Thanks to a post on the Raspberry Pi Foundation’s Message Board, where people have detailed the instructions on how to easily compile VLC Media Player with Hardware Acceleration. For this project, you’ll just need a Raspberry Pi and the basic peripherals: a power source, screen, keyboard and mouse, and microSD card (you need all of this to get Raspbian Installed in the first place, anyway).
Before we begin, a quick note for those of you who already have Raspbian, and may have installed VLC Media Player from Raspbian’s repositories: I recommend that you remove that version. You can do so by running the command:
sudo apt-get purge vlc
Compile VLC Media Player with Hardware Acceleration:
Step 1: Install Raspbian:
If you don’t already have it, install Raspbian on your Raspberry Pi. Click that link for our complete guide.
Step 2: Download and extract VLC media player:
Open Terminal (SSH) and run the following commands:
cd Downloads wget http://download.videolan.org/vlc/3.0.3/vlc-3.0.3.tar.xz tar -xJf vlc-3.0.3.tar.xz
Now you have downloaded and extracted the latest version of VLC media player into your Downloads directory.
Step 3: Install dependencies:
Next, let’s update the package list, and install the needed dependencies. You might want to copy and paste the second command here, as it’s quite long:
sudo apt-get update sudo apt-get install autopoint gettext liba52-0.7.4-dev libaa1-dev libasound2-dev libass-dev libavahi-client-dev libavc1394-dev libavcodec-dev libavformat-dev libbluray-dev libcaca-dev libcddb2-dev libcdio-dev libchromaprint-dev libdbus-1-dev libdc1394-22-dev libdca-dev libdirectfb-dev libdvbpsi-dev libdvdnav-dev libdvdread-dev libegl1-mesa-dev libfaad-dev libflac-dev libfluidsynth-dev libfreerdp-dev libfreetype6-dev libfribidi-dev libgl1-mesa-dev libgles1-mesa-dev libgles2-mesa-dev libgnutls28-dev libgtk2.0-dev libidn11-dev libiso9660-dev libjack-jackd2-dev libkate-dev liblircclient-dev liblivemedia-dev liblua5.2-dev libmad0-dev libmatroska-dev libmodplug-dev libmpcdec-dev libmpeg2-4-dev libmtp-dev libncursesw5-dev libnotify-dev libogg-dev libomxil-bellagio-dev libopus-dev libpng12-dev libpulse-dev libqt4-dev libraw1394-dev libresid-builder-dev librsvg2-dev libsamplerate0-dev libschroedinger-dev libsdl-image1.2-dev libsdl1.2-dev libshine-dev libshout3-dev libsidplay2-dev libsmbclient-dev libspeex-dev libspeexdsp-dev libssh2-1-dev libswscale-dev libtag1-dev libtheora-dev libtwolame-dev libudev-dev libupnp-dev libv4l-dev libva-dev libvcdinfo-dev libvdpau-dev libvncserver-dev libvorbis-dev libx11-dev libx264-dev libxcb-composite0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-xv0-dev libxcb1-dev libxext-dev libxinerama-dev libxml2-dev libxpm-dev libzvbi-dev lua5.2 oss4-dev pkg-config zlib1g-dev libtool build-essential autoconf
We’re now ready to compile.
Step 4: Compile VLC media player:
Next, go into the VLC media player’s directory, and run some more commands. You may want to copy and paste again for the third one here:
cd vlc-3.0.3 ./bootstrap CFLAGS="-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/mmal -I/opt/vc/include/interface/vchiq_arm -I/opt/vc/include/IL -I/opt/vc/include/GLES2 -mfloat-abi=hard -mcpu=cortex-a7 -mfpu=neon-vfpv4" CXXFLAGS="-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/mmal -I/opt/vc/include/interface/vchiq_arm -I/opt/vc/include/IL -mfloat-abi=hard -I/opt/vc/include/GLES2 -mcpu=cortex-a7 -mfpu=neon-vfpv4" LDFLAGS="-L/opt/vc/lib" ./configure --prefix=/usr --enable-omxil --enable-omxil-vout --enable-rpi-omxil --disable-mmal-codec --disable-mmal-vout --enable-gles2
And followed by this short one:
Be prepared to wait something like 20-25 minutes.
If the process goes through, you will have successfully compiled VLC media player. The last command in our instructions installs the binaries from the building process and copies them to appropriate locations:
sudo make install
Step 5: Change settings:
You’ve now compiled and installed VLC media player. You can start the program via the menu bar (Sound & Video > VLC media player) or Terminal (with the command vlc).
After starting the program, open the settings dialog and change your settings (Tools > Preferences) so that they look like this:
Output module: ALSA audio output
Output: OpenMAX IL video output
When you play something, you’ll notice that the video plays in an overlay and not inside a window. You can only control the playback using your keyboard, so I would encourage you to learn some basic hot keys (for example, CTRL+Q for quitting).
Step 6: Send the audio out over your HDMI connection (optional):
There’s one more thing that you may want to tweak here before we’re done. At this point, VLC media player will send audio out through your Raspberry Pi’s headphone jack only, meaning you’ll have to plug in headphones, an auxiliary cord to your stereo system, or standalone speakers in order to hear your videos. That works out for some users, but others may want to push the audio out the HDMI port.
To do that, open Terminal and run the command sudo raspi-config. In the resulting menu, navigate to Advanced Options > A4 Audio > Choose the audio output: 2 Force HDMI.
And that’s it! You now have a functioning version of VLC media player, and can push the audio out of either your headphone jack or HDMI port at will.
Remove VLC Media Player:
If you ever want to remove VLC media player, you can do so by running the following command inside your VLC directory:
sudo make uninstall