Mplayer complet sur Ubuntu Lucid Lynx

28 avril 2010
Howto, Ubuntu

Pour une raison inconnue, mplayer/mencoder est livré en version tronquée dans Ubuntu depuis 2 ans. Ce n’est pas une question de licence, mais une politique propre à Ubuntu. Ce guide est un howto pour installer un mplayer/mencoder complet.

En premier, soit vous vous créez un compte root, soit vous ouvrez un shell en root avec la commande :
sudo xterm
on crée un dossier temporaire :
mkdir tmp && cd tmp

On installe la base de subversion :
apt-get install build-essential checkinstall subversion git-core yasm

On récupére les codecs de mplayer et on les installe :
wget ftp://ftp.mplayerhq.hu/MPlayer/releases/codecs/all-20071007.tar.bz2 && mkdir -pv /usr/local/lib/codecs && tar xjvf all-20071007.tar.bz2 && cp -v ./all-20071007/* /usr/local/lib/codecs && rm -rf ./all-20071007/

Les sources x264 d’Ubuntu sont obsolètes, on installe les plus récentes :
git clone git://git.videolan.org/x264.git
cd x264
./configure –enable-shared
make
checkinstall –fstrans=no –install=yes –pakdir « ../ » \
–maintainer « $USER » –pkgname=x264 –pkgversion « 1:0.svn`date +%Y%m%d`-0.0ubuntu1″ \
–backup=no –deldoc=yes –deldesc=yes –delspec=yes –gzman –default
make clean
cd ..

A chaque commande checkinstall, un paquet deb est créé dans le dossier supérieur, vous pourrez ainsi réinstaller facilement ces paquets sur ce pc ou d’autres.

On installe les paquets nécessaires à la compilation de mplayer :
apt-get install gawk gettext html2text intltool-debian \
ladspa-sdk libaa1-dev libasound2-dev libatk1.0-dev libaudio-dev \
libaudio2 libaudiofile-dev libavahi-client-dev libavahi-common-dev libcaca-dev \
libcairo2-dev libcdparanoia0-dev libcucul-dev libdbus-1-dev libdbus-glib-1-dev \
libdirectfb-dev libdirectfb-extra libdts-dev libdv4-dev libenca-dev libenca0 \
libesd0-dev libexpat1-dev libfaac-dev libfaac0 libfontconfig1-dev libfreebob0 \
libfreetype6-dev libfribidi-dev libggi-target-x libggi2 libggi2-dev libggimisc2 \
libggimisc2-dev libgif-dev libgii1 libgii1-dev libgii1-target-x libgl1-mesa-dev \
libglu1-mesa-dev libglu1-xorg-dev libgtk2.0-dev libice-dev libschroedinger-dev \
libjack-dev libjack0 libjpeg62-dev liblz-dev liblz0 liblzo2-2 liblzo2-dev libmad0 \
libmad0-dev libmail-sendmail-perl libmp3lame-dev libmp3lame0 libmpcdec-dev libmpcdec3 \
libncurses5-dev libogg-dev libopenal-dev libopenal1 libpango1.0-dev libpixman-1-dev \
libpng12-dev libpopt-dev libpthread-stubs0 libpthread-stubs0-dev libpulse-dev \
libpulse-mainloop-glib0 libsdl1.2-dev libslang2-dev libsm-dev libsmbclient-dev \
libspeex-dev libsvga1 libsvga1-dev libsys-hostname-long-perl libsysfs-dev \
libtheora-dev libtwolame-dev libtwolame0 libvorbis-dev libx11-dev libxau-dev \
libxcb-render-util0-dev libxcb-render0-dev libxcb1-dev \
libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev \
libxft-dev libxi-dev libxinerama-dev libxrandr-dev libxrender-dev libxt-dev libxv-dev \
libxvidcore4 libxvidcore-dev libxvmc-dev libxvmc1 libxxf86dga-dev libxxf86vm-dev \
mesa-common-dev po-debconf sharutils x11proto-composite-dev x11proto-core-dev \
x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev \
x11proto-randr-dev x11proto-render-dev x11proto-video-dev x11proto-xext-dev \
x11proto-xf86dga-dev x11proto-xf86vidmode-dev x11proto-xinerama-dev \
xtrans-dev zlib1g-dev libstdc++6 liblivemedia-dev libopencore-amrnb-dev \
libopencore-amrwb-dev

On récupère les sources de mplayer et on le configure :
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
cd mplayer
./configure

A ce stade, vérifiez particulièrement disabled optional drivers, si un de ceux listés vous est néceassaires, ajoutez le avant de compiler mplayer.

On installe mplayer :
checkinstall -D –install=yes –fstrans=no –pakdir « ../ » \
–pkgname mplayer –backup=no –deldoc=yes –deldesc=yes –delspec=yes –default \
–pkgversion « 3:1.0~svn-`grep « #define VERSION » version.h | cut -d »- » -f2` »

Sur Ubuntu, il faut rafraichir la liste des libs :
ldconfig

Vous pouvez à présent effacer les dossiers mplayer et x264, mais je vous recommande de garder les deb x264 et mplayer, ainsi que l’archive des codecs all-20071007.tar.bz2

On repasse en utilisateur standard et on finit la config :
mkdir -v ~/.mplayer && ln -sv /usr/share/fonts/truetype/freefont/FreeSans.ttf ~/.mplayer/subfont.ttf

Un petit exemple de la puissance de mencoder, on crée au besoin le fichier mencoder.conf :
touch ~/.mplayer/mencoder.conf

En cas d’erreur, le fichier existe déjà, on l’édite :
gedit ~/.mplayer/mencoder.conf

On ajoute et on sauve :
[x264s480]
profile-desc= »Simple conversion en x264 avec scale 480″
ovc=x264=1
oac=mp3lame=1
vf=spp,scale=480:-10
lameopts=abr=1:br=56
x264encopts=frameref=4:bframes=4:partitions=all:8x8dct:me=umh:subq=7:qp=28:threads=auto

Comme la description l’indique, c’est une simple conversion en x264, le but est de faire un fichier facile à passer en streaming par wifi.
Chaque braquet [mon_profil] est un profil, vous pouvez vous créer autant de profil que nécessaire, un pour faire des DVD, un pour votre téléphone portable, etc…

Pour encoder une vidéo, on utilise la commande :
mencoder -profile x264s480 source -o ma_video_encodee.avi
Source peut être une vidéo, un DVD, un chaine TV streamée, etc…

Un petit script pour encoder d’un coup plusieurs vidéos, vous créez un sous-repertoire et vous y mettez toutes vos vidéos.
Puis vous faites dans un shell :
touch mmencode.sh && chmod 755 mmencode.sh && gedit mmencode.sh
Vous insérez :

#!/bin/bash
# script de multi-encodage, les fichiers encodés seront un niveau au-dessus du dossier courant.

echo

for file in *
do
ls -l « $file » # Liste les fichiers du dossier courant
mencoder -profile x264s480 « $file » -o « ../$file »
done

echo; echo

exit 0

Sauvez le fichier et executez-le :
./mmencode.sh

Et voila, toutes vos vidéos seront encodées en une seule commande.

A bientôt pour de nouvelles aventures !