VLC git su Ubuntu Xenial 16.04

VLC è senza ombra di dubbio uno dei migliori player video in circolazione.

Purtroppo però, ad oggi, anche l’ultimissima release ha grossi problemi con dispositivi FHD e in generale con monitor HiDPI: video in fullscreen grandi come un francobollo, lag e controlli del player inutilizzabili.

Come suggerito dall’utilissima pagina di ArchWiki la versione vlc-git contiene una serie di bug fixes che fanno al caso nostro.

L’unica cosa che dovremo fare è compilarci il pacchetto dai sorgenti scaricando l’ultima release dalla repo git ufficiale di VLC.

Ho trovato un’ottima guida che mi ha aiutato molto ma che personalmente ho dovuto integrare per poterla applicare al mio notebook XPS 9350 con Ubuntu Xenial 16.04.

Aprite il vostro terminale (CTRL+ALT+T) e seguite passo passo la procedura:

1. Prepariamo il nostro sistema con i pacchetti base
sudo apt-get -y install build-essential git-core checkinstall \
automake yasm cmake && mkdir -pv $HOME/vlc_build

2. Installiamo i pacchetti -dev per VLC
sudo apt-get -y install liba52-0.7.4-dev libaa1-dev libasound2-dev libass-dev \
libavahi-client-dev libcaca-dev libcairo2-dev libcddb2-dev libcdio-dev libdca-dev \
libdvbpsi-dev libebml-dev libfaad-dev libflac-dev libfreetype6-dev libfribidi-dev \
libgcrypt11-dev libgl1-mesa-dev libglib2.0-0 libgnutls28-dev libid3tag0-dev \
libjack-jackd2-dev libkate-dev liblircclient-dev liblua5.1-0-dev libmad0-dev \
libmatroska-dev libmodplug-dev libmpcdec-dev libmpeg2-4-dev libmtp-dev \
libncursesw5-dev libnotify-dev libogg-dev liboggkate-dev libpango1.0-dev \
libpng12-dev libprojectm-dev libprojectm-qt-dev libproxy-dev libpulse-dev \
libqt4-dev libraw1394-dev librsvg2-dev libschroedinger-dev libsdl-image1.2-dev \
libsdl1.2-dev libshout3-dev libsmbclient-dev libspeex-dev libsqlite3-dev \
libsysfs-dev libtag1-dev libtar-dev libgme-dev libtheora-dev libtool \
libtwolame-dev libudev-dev libupnp-dev libv4l-dev libvcdinfo-dev libvorbis-dev \
libva-dev libvpx-dev libx11-dev libx11-xcb-dev libxcb-composite0-dev libx265-dev \
libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-xv0-dev libxcb-xvmc0-dev \
libxcb1-dev libxext-dev libxml2-dev libxpm-dev libxt-dev libxv-dev libzvbi-dev lua5.1 \
qt4-qtconfig libspeexdsp-dev libsamplerate0-dev libvdpau-dev libxpm-dev libxinerama-dev \
libtar-dev libgtk2.0-dev libdc1394-22-dev libopus-dev libmpg123-dev protobuf-c-compiler \
libdvdnav-dev libdvdnav4 libdvdread-dev libdvdread4

3. Modifica rispetto alla guida originale: libfdk-aac-dev
sudo apt-get install libfdk-aac-dev

4. Installiamo i pacchetti per la riproduzione di DVD protetti
sudo apt-get install libdvd-pkg && sudo dpkg-reconfigure libdvd-pkg

5. Installiamo libfdk-aac
if [ "$(uname -m)" = "x86_64" ]; then
ARCHOPTS="--with-pic"
else
ARCHOPTS=""
fi && \
cd $HOME/vlc_build && \
wget --content-disposition https://github.com/mstorsjo/fdk-aac/archive/v0.1.4.tar.gz && \
tar xvf fdk-aac-0.1.4.tar.gz && cd fdk-aac-0.1.4 && \
autoreconf -fiv && \
./configure --prefix=$HOME/vlc_build/vlcdeps/usr \
$ARCHOPTS \
--disable-shared \
--enable-static && \
make && make install && make distclean

6. Rimuoviamo i file e le directory temporanee di libfdk-aac
rm -rfv $HOME/vlc_build/vlcdeps/usr/include/fdk-aac && \
rm -v $HOME/vlc_build/vlcdeps/usr/lib/libfdk-aac* && \
rm -v $HOME/vlc_build/vlcdeps/usr/lib/pkgconfig/fdk-aac.pc && \
rm -rfv $HOME/vlc_build/fdk-aac-0.1.4 && rm $HOME/vlc_build/fdk-aac-0.1.4.tar.gz

7. Installiamo i pacchetti x264 per la riproduzione di file H264
if [ "$(uname -m)" = "x86_64" ]; then
ARCHOPTS="--enable-pic"
else
ARCHOPTS=""
fi && \
cd $HOME/vlc_build && \
git clone git://git.videolan.org/x264.git --depth 1 && \
cd x264 && \
./configure --prefix=$HOME/vlc_build/vlcdeps/usr \
--enable-static \
--disable-cli \
$ARCHOPTS && \
make && make install

8. Rimuoviamo i file e le directory temporanee di h264
rm -v $HOME/vlc_build/vlcdeps/usr/include/x264* && \
rm -v $HOME/vlc_build/vlcdeps/usr/lib/libx264.a && \
rm -v $HOME/vlc_build/vlcdeps/usr/lib/pkgconfig/x264.pc

9. Installiamo il pacchetto live555
cd $HOME/vlc_build && sudo apt-get -y remove liblivemedia-dev && \
wget http://download.videolan.org/pub/contrib/live555/live.2015.06.24.tar.gz && \
tar xvf live.2015.06.24.tar.gz && chmod -R u+w live && cd live && \
if [ "$(uname -m)" = "x86_64" ]; then
./genMakefiles linux-64bit && make
else
./genMakefiles linux && make
fi && \
cp -v \
groupsock/libgroupsock.a liveMedia/libliveMedia.a UsageEnvironment/libUsageEnvironment.a \
BasicUsageEnvironment/libBasicUsageEnvironment.a $HOME/vlc_build/vlcdeps/usr/lib/ && \
cp -v \
groupsock/include/*.hh groupsock/include/*.h liveMedia/include/*.hh UsageEnvironment/include/*.hh \
BasicUsageEnvironment/include/*.hh $HOME/vlc_build/vlcdeps/usr/include/

10. Rimuoviamo i file e le directory temporanee di live555
rm -v $HOME/vlc_build/vlcdeps/usr/include/{*.hh,NetCommon.h} && \
rm -v $HOME/vlc_build/vlcdeps/usr/lib/{libgroupsock.a,libliveMedia.a,\
libUsageEnvironment.a,libBasicUsageEnvironment.a} && \
rm -rfv $HOME/vlc_build/live && \
rm -v $HOME/vlc_build/live.*.tar.gz

11. Installiamo il pacchetto FFmpeg
sudo apt-get -y install libmp3lame-dev zlib1g-dev && \
cd $HOME/vlc_build && \
wget http://ffmpeg.org/releases/ffmpeg-3.0.2.tar.bz2 && \
tar xvf ffmpeg-3.0.2.tar.bz2 && cd ffmpeg-3.0.2 && \
if [ "$(uname -m)" = "x86_64" ]; then
ARCHOPTS="--enable-pic"
else
ARCHOPTS=""
fi && \
CPPFLAGS="-I$HOME/vlc_build/vlcdeps/usr/include" \
LDFLAGS="-L$HOME/vlc_build/vlcdeps/usr/lib" \
PKG_CONFIG_PATH="$HOME/vlc_build/vlcdeps/usr/lib/pkgconfig" \
./configure --prefix=$HOME/vlc_build/vlcdeps/usr \
$ARCHOPTS \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--enable-libmp3lame \
--enable-libvpx \
--enable-libfdk-aac \
--enable-libx265 \
--disable-programs \
--disable-doc \
--disable-filters \
--disable-avdevice \
--disable-devices \
--disable-avfilter \
--disable-avresample && \
make -j 8 && make install-libs install-headers && make distclean

12. Rimuoviamo i file e le directory temporanee di FFmpeg
rm -rfv $HOME/vlc_build/vlcdeps/usr/include/{libav*,libpostproc,libsw*} && \
rm -v $HOME/vlc_build/vlcdeps/usr/lib/{libav*.a,libpostproc.a,libsw*.a} && \
rm -v $HOME/vlc_build/vlcdeps/usr/lib/pkgconfig/{libav*.pc,libpostproc.pc,libsw*.pc} && \
rm -rfv $HOME/vlc_build/ffmpeg-*

13. Ed ora (finalmente) installiamo vlc-git
cd $HOME/vlc_build && git clone git://git.videolan.org/vlc.git --depth 1 && \
cd $HOME/vlc_build/vlc && ./bootstrap && \
CPPFLAGS="-I$HOME/vlc_build/vlcdeps/usr/include" \
LDFLAGS="-L$HOME/vlc_build/vlcdeps/usr/lib" \
PKG_CONFIG_PATH="$HOME/vlc_build/vlcdeps/usr/lib/pkgconfig" \
./configure --prefix=/usr/local && \
make -j 8 && \
mkdir -vp doc-pak && cp -v AUTHORS COPYING INSTALL NEWS README THANKS doc-pak && \
sudo checkinstall --pakdir "$HOME/vlc_build" --backup=no --deldoc=yes --pkgname vlc \
--pkgversion "3.0.0-git~$(git rev-parse --short HEAD)" \
--fstrans=no --deldesc=yes --delspec=yes --default && \
make distclean && sudo ldconfig

Terminata questa lunga procedura dovreste poter lanciare “vlc” direttamente dal terminale.
Per essere certi di utilizzare l’ultima versione potete dare un’occhiata in Aiuto > Informazioni.

vlc-git-latest-version

Come vedete, ad oggi, l’ultima versione è la 3.0.0-git che testata con video 4K, 1080P (60/120fps) si comporta perfettamente su un monitor FHD 13″ :)

Plus: mantenere aggiornato vlc-git
Avendo compilato manualmente i sorgenti di VLC abbiamo “bypassato” le repo ufficiali di Ubuntu per cui non riceveremo gli aggiornamenti con un semplice “apt upgrade”.
Possiamo però crearci uno script che ogni tanto possiamo lanciare per aggiornare all’ultima release il nostro vlc-git:

cd $HOME/vlc_build/vlc && git pull && ./bootstrap && \
CPPFLAGS="-I$HOME/vlc_build/vlcdeps/usr/include" \
LDFLAGS="-L$HOME/vlc_build/vlcdeps/usr/lib" \
PKG_CONFIG_PATH="$HOME/vlc_build/vlcdeps/usr/lib/pkgconfig" \
./configure --prefix=/usr/local && \
make -j 8 && \
mkdir -vp doc-pak && cp -v AUTHORS COPYING INSTALL NEWS README THANKS doc-pak && \
sudo checkinstall --pakdir "$HOME/vlc_build" --backup=no --deldoc=yes --pkgname vlc \
--pkgversion "3.0.0-git~$(git rev-parse --short HEAD)" \
--fstrans=no --deldesc=yes --delspec=yes --default && \
make distclean && sudo ldconfig

Plus 2: mantenere aggiornato x264
Anche il pacchetto x264 per la riproduzione di file h264 riceve parecchi aggiornamenti per cui possiamo usare questo script:

if [ "$(uname -m)" = "x86_64" ]; then
ARCHOPTS="--enable-pic"
else
ARCHOPTS=""
fi && \
cd $HOME/vlc_build/x264 && git pull && \
./configure --prefix=$HOME/vlc_build/vlcdeps/usr \
--enable-static \
--disable-cli \
$ARCHOPTS && \
make && make install

friimaind

Mi chiamo Massimiliano e sono uno sviluppatore web. Ho aperto questo blog principalmente come agenda dove tenere traccia di tutte le mie passioni :)

2 thoughts on “VLC git su Ubuntu Xenial 16.04

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *