[ Présentation | Installation des bibliothèques de base ( mad , libdvdcss , libdvdread , libdvdnav , libdvbpsi , live555 ) | Les lecteurs multi formats ( présentation , vlc , xine , MPlayer ) | Streaming vidéo ( présentation , diffuser vers un poste, streaming sur le réseau , vidéo à la demande ) ]
Dernière modification 6 août 2024
Sur cette page sont présentés les lecteurs vidéo les plus
courant sous linux, ils vous permettront de lire à peu près tous les types
de formats vidéo (conteneur et codec) y compris les DVD.
On suppose que vous êtes passé par les pages outils
de
base pour la vidéo et conteneur
vidéo.
MAD est un décodeur audio haute qualité
MPEG. L'URL officiel est www.underbit.com/products/mad/
vous y trouverez la dernière archive que vous décompressez en tapant :
tar xvfz libmad-0.15.1b.tar.gz
Cela donne le répertoire mad-0.15.1b dans lequel on tape
successivement
./configure
make
si vous rencontrez l'erreur suivante
cc1: erreur: option "-fforce-mem" de la ligne de commande non reconnue
Editez le fichier configure et supprimez fforce-mem
optimize="$optimize -fforce-mem"
relancez configure et make puis en tant que root
make install
ldconfig
Cette bibliothèque offre des outils pour
lire les DVD. L'URL est
http://download.videolan.org/pub/videolan où on récupérera l'archive
qu'on décompresse en tapant
tar xvfj libdvdread-6.1.3.tar.bz2
Cela donne le répertoire libdvdread-6.1.3 dans lequel on tape
./configure
make
Puis en tant que root
make install
Cette bibliothèque de fonctions fournit des
outils pour pouvoir "naviguer" dans un DVD, c'est à dire pouvoir utiliser
les menus interactifs proposés dans la plupart des DVD. L'URL est http://download.videolan.org/pub/videolan/
on y récupère l'archive qu'on décompresse en tapant
tar xvfj libdvdnav-6.1.1.tar.bz2
Cela donne le répertoire libdvdnav-6.1.1 dans lequel on tape
./configure
make
Puis en tant que root
make install
Libdvdcss est une bibliothèque
offrant des outils pour lire du flux MPEG2 d'un disque dur ou d'un DVD. Il
permet aussi de lire les DVD cryptés. L'URL est http://www.videolan.org/developers/libdvdcss.html
on y récupère l'archive qu'on décompresse en tant
tar xvfj libdvdcss-1.4.3.tar.bz2
Cela donne le répertoire libdvdcss-1.4.3 dans lequel on tape
./configure
make
Puis en tant que root
make install
libdvbpsi dont le site est http://www.videolan.org/developers/libdvbpsi.html permet
la
diffusion de flux MPEG2, on y récupère l'archive qu'on décompresse en
tapant
tar xvfj libdvbpsi-1.3.3.tar.bz2
Cela donne le répertoire libdvbpsi-1.3.3 dans lequel on tape
./configure
make
puis en tant que root
make install
cette bibliothèque est nécessaire à vlc pour faire du
streaming vidéo.
live555
dont le site http://www.live555.com/liveMedia/public/
permet de faire du streaming et de la réception vidéo, il est nécessaire à
vlc. On décompresse l'archive en tapant
tar xvfz live555-latest.tar.gz
Cela donne le répertoire live dans lequel on édite le fichier config.linux
pour rajouter l'option -fPIC
COMPILE_OPTS =
$(INCLUDES) -I/usr/local/include -I. -O2 -fPIC -DSOCKLEN_T=socklen_t
-D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
on tape ensuite
./genMakefiles linux
on tape ensuite
make
on tape ensuite en tant que root
make install
ln -s /usr/local/linux/multimedia/live/liveMedia/include/
/usr/include/liveMedia
ln -s /usr/local/linux/multimedia/live/groupsock/include
/usr/include/groupsock
ln -s /usr/local/linux/multimedia/live/UsageEnvironment/include/
/usr/include/UsageEnvironment
ln -s /usr/local/linux/multimedia/live/BasicUsageEnvironment/include/
/usr/include/BasicUsageEnvironment
Je vous présente ici les lecteurs les plus courants à savoir VLC, MPlayer et dans une moindre mesure xine. Ces différents players sont capables de lire à peu près tous les codecs audio et vidéo et conteneurs imaginables dont les ogm et les matroska.
VLC est un player vidéo particulièrement puissant, le site officiel est http://www.videolan.org je n'ai pas réussi à installer la dernière version stable 3.0.20 qui génère un tas d'erreurs, j'ai donc récupéré la version en développement avec git
git clone https://code.videolan.org/videolan/vlc.git
cela donne le répertoire vlc. Elle ne fonctionne qu'avec qt6, on
installera éventuellement les packages qt6qml-devel, lua-devel,
lib64cddb-devel, qt6-devel, qt6quick-devel,
qt6quickcontrols2-devel, fribidi, fribidi-devel, lib64sndfile-devel,
lib64gcrypt-devel, wayland-protocols-devel, lib64SDL_image-devel.
On revient dans vlc on y tape
./bootstrap
./configure --enable-gles2 --enable-fdkaac --enable-qt --disable-opencv
j'ai du désactiver opencv car j'avais vraiment beaucoup d'erreurs,
puis on tape
make
maintenant pour l'erreur suivante
/bin/ld: /usr/local/lib/libliveMedia.a(TLSState.o): in
function `TLSState::read(unsigned char*, unsigned int)':
TLSState.cpp:(.text+0x49): undefined reference to `SSL_read'
/bin/ld: TLSState.cpp:(.text+0x5f): undefined reference to
`SSL_get_error'
on modifie le fichier modules/access/Makefile.am en rajoutant à la fin de cette ligne liblive555_plugin_la_LIBADD = $(LIBS_live555) $(SOCKET_LIBS) -lssl -lcrypto
on retape make
si vous tombez sur l'erreur suivante
/bin/ld: /usr/local/lib64/libebml.a(EbmlBinary.cpp.o): relocation R_X86_64_32 against symbol `_ZTVN7libebml10EbmlBinaryE' can not be used when making a shared object; recompile with -fPIC
j'ai du reprendre la compilation de libebml tel que présentée ici, j'ai édité le fichier build/CMakeFiles/ebml.dir et modifiez la ligne suivante dans le fichiers flags.make
CXX_FLAGS = -fPIC -std=gnu++14
on fera la même chose à libmatroska dans le fichier build/CMakeFiles/matroska.dir/flags.make
on revient à vlc, on retape make puis en tant que root
make install
on rajoute dans le fichier /etc/ld.so.conf la ligne suivante
/usr/local/lib/vlc
puis on tape
ldconfig
Il suffit de taper vlc, l'interface est particulièrement riche (nettement plus que xine ou mplayer qui sont basiques à côté).
Dans ce paragraphe je détaille l'installation de la version tarball disponible sur le site officiel. Avant d'aller plus loin on pourra installer les packages suivants
lib64cdio-devel
lib64vcd-devel
lib64xt-devel
lib64xvmc-devel
lib64graphicsmagick-devel
j'ai dû créer préalablement ces deux liens
ln -s /usr/include/GraphicsMagick/wand/ /usr/include
ln -s /usr/include/GraphicsMagick/magick/ /usr/include
On récupérera xine à l'URL xine.sourceforge.net. On décompresse la première archive en tapant
tar xvf xine-lib-1.2.11.tar.xz
Cela donne le répertoire xine-lib-1.2.11 dans lequel on tape
./configure
Voici le résultat
xine-lib
summary:
----------------
* input plugins:
-
file -
stdin_fifo
* Network:
-
rtsp - rtp
-
net - pnm
-
http - ftp
- https -
ftpes
- gopher
- tls
- mms
- IPv6
(disabled plugins: sftp scp nfs smb)
* Optical discs:
- cdda
- vcdo
- vcd
- dvd (external libs)
* Devices:
- dvb
- v4l2
(disabled plugins: v4l)
* Misc:
- vdr
- avio (libavformat)
- test
(disabled plugins: gnome-vfs)
* demultiplexer plugins:
-
4xm
- aac
-
ac3
- aiff
- asf
- avformat (with libavformat)
-
avi
- cdda
- ea wve
- film
- FLAC
- FLAC (with libFLAC)
-
fli
- flv
-
idcin - iff
- image
- interplay mve - ivf
- matroska
- mng
- mod
-
mpeg -
mpeg_audio
- mpeg_block - mpeg_elem
- mpeg_pes - mpeg_ts
- Nosefart (NSF)
-
nsf
- nsv
- ogg
- psx str - pva
- qt/mpeg-4 - raw dv
- real/realaudio - roq
- smjpeg
- snd/au
-
vmd
- voc
-
vox
- vqa
- wav
- wc3 mve - ws
aud
- yuv4mpeg2
(disabled plugins: WavPack)
* video decoder plugins:
- MPEG 1,2 (libmpeg2)
- Amiga Bitplane
- Raw RGB
- Raw YUV
- dxr3_video
- gdk-pixbuf
- image
- libjpeg
- libpng
- theora
- vdpau
- libvpx (VP8/VP9)
- libaom (AV1)
- ffmpeg
(disabled plugins: w32dll mmal OpenHEVC dav1d)
* audio decoder plugins:
- linear PCM
- dvaudio
- GSM 06.10
- faad
- Nosefart (NSF)
- FLAC (with libFLAC)
- speex
- vorbis
- MAD (MPG 1/2/3) (*INTERNAL* library)
- DTS (*INTERNAL* library)
- A52/ra-dnet (external library, float math)
- Musepack (*INTERNAL* library)
- ffmpeg
(disabled plugins: w32dll WavPack)
* subtitle decoder plugins:
-
spu
- spucc
- spucmml
- sputext
- spudvb
- PGS (BluRay) - TextST (BluRay)
- dxr3_spu
* post effect plugins:
* planar video effects:
-
invert - expand
-
eq
- eq2
- boxblur
- denoise3d
- unsharp
- tvtime
- postproc
- vdr
* SFX:
-
goom
- oscope
- fftscope -
mosaico
- tdaudioanalyzer
* Audio:
-
upmix -
upmix_mono
- volnorm
- scretch
* video driver plugins:
- OpenGL 2.0 (with bicubic scaling)
- X11 (GLX) backend
- X11 (EGL) backend
- Wayland (EGL) backend
- XShm (X11 shared memory)
- Xv (XVideo *shared*)
- XxMC (XVideo extended motion compensation)
- OpenGL (with GLU support)
- vaapi (Video Acceleration (VA) API for Linux)
- vdpau (X11 Video Decode and Presentation API for Unix)
- XvMC (XVideo motion compensation)
- xcb-shm (X shared memory using XCB)
- xcb-xv (XVideo using XCB)
- aa (Ascii ART)
- fb (Linux framebuffer device)
- sdl (Simple DirectMedia Layer)
- dxr3 (Hollywood+ and Creative dxr3, mpeg video only)
(disabled plugins: sunfb caca directfb directx stk macos
mmal vidix)
* audio driver plugins:
- alsa (ALSA - Advanced Linux Sound Architecture)
- Jack
- oss (Open Sound System)
- pulseaudio (PulseAudio sound server)
(disabled plugins: CoreAudio directx esd fusionsound
irixal sun sndio)
---
On tape ensuite
make
j'ai dû également dans le fichier src/video_dec/Makefile
effacer dans la variable CFLAGS les occurrences de -Werror-implicit-function-declaration
puis en tant que root
make install
Dans le fichier /etc/ld.so.conf on rajoute les
lignes
/usr/local/lib/xine/plugins/2.8
/usr/local/lib/xine/plugins/2.8/post
On tape alors, toujours en tant que root
ldconfig
Maintenant on décompresse la deuxième archive en tapant
tar xvf xine-ui-0.99.12.tar.xz
Cela donne le répertoire xine-ui-0.99.12 dans lequel on tape successivement
./configure
make
Puis en tant que root
make install
On lance xine en tapant simplement
xine
Voilà le résultat avec le skin CelomaChrome
Xine a le look d'un lecteur de DVD de salon
Vous trouverez
d'autres skins ici http://rpm.pbone.net/index.php3/stat/4/idpl/12097414/dir/fedora_1/com/xine-skins-1.8-1.fr.noarch.rpm.html
il sera peut être nécessaire de l'installer en omettant les dépendances (urpmi
--allow-nodeps).
Les skins vont se retrouver sous /usr/share/xine/skins il faudra
les copier sous /usr/local/share/xine/skins il suffit de les
décompresser sous /usr/local/share/xine/skins.
xine est capable de lire les fichiers vidéo utilisant les codes compatibles MPEG1 (VCD) ou MPEG2 (SVCD) et même MPEG4 (xvid ou DivX). Il lit les DVD dès lors que vous avez installé libdvdcss il n'est plus nécessaire d'installer un quelconque plugin (xine-dvdnav, d4d, d5d, ...) tout est inclus dans xine-lib.
Le site officiel est http://www.mplayerhq.hu/design7/news.html On récupérera la dernière version stable MPlayer qu'on décompresse en tapant
tar xvf MPlayer-1.5.tar.xz
Cela donne le répertoire MPlayer-1.5. Auparavant on va
décompresser les codecs windows qu'on récupérera dans la section download
du site. On crée d'abord le répertoire d'accueil:
mkdir /usr/local/lib/win32
Dans lequel on copie les codecs
cp essential-20071007.tar.bz2 /usr/local/lib/win32/
Qu'on décompresse après s'être placé sous /usr/local/lib/win32/
tar xvfj essential-20071007.tar.bz2
Dans le répertoire essential-20071007 ainsi obtenu on tape
mv * ..
Vous pouvez supprimer maintenant le répertoire /usr/local/lib/win32/essential-20071007.
Revenons dans le répertoire mplayer, on tape alors
./configure --language=fr --enable-gui
Je n'ai pas activé live555 car ça plante à la compilation. En fin de ./configure on a les principales options qui seront utilisées pour la compilation de MPlayer
Config files successfully generated by ./configure
--language=fr --enable-gui !
Install prefix: /usr/local
Data directory: /usr/local/share/mplayer
Config direct.: /usr/local/etc/mplayer
Byte order: little-endian
Optimizing for: native
Languages:
Messages/GUI: fr
Manual pages: fr
Documentation: fr
Enabled optional drivers:
Input: dvdnav ftp pvr tv-v4l2 tv librtmp cddb cdda
dvdread vcd dvb networking
Codecs: libdav1d libvpx x264 xvid ffmpeg(internal)
real xanim libopus faad2 faac libmpeg2 liba52 mpg123 libtheora libgsm
speex libvorbis twolame libmad liblzo OpenJPEG
Audio output: alsa openal jack pulse oss v4l2 sdl
mpegpes(dvb)
Video output: v4l2 matrixview opengl sdl pnm jpeg mng
mpegpes(dvb) fbdev aa ggi xvidix cvidix vdpau xv x11 xover yuv4mpeg
md5sum tga
Disabled optional drivers:
Input: vstream radio tv-v4l1 tv-dshow live555 nemesi
bluray smb
Codecs: libaom crystalhd libdv libopencore_amrwb
libopencore_amrnb qtx win32 ilbc musepack libdca toolame gif
Audio output: sndio sun nas esd arts dxr2
Video output: zr zr2 dxr3 dxr2 vesa gif89a svga caca
winvidix 3dfx xmga dga xvmc directfb dfbmga bl xvr100 tdfx_vid wii s3fb
tdfxfb mga
On peut taper make si vous rencontrez l'erreur
/bin/ld: ffmpeg/libavcodec/libdav1d.o: in function
`libdav1d_receive_frame':
libdav1d.c:(.text+0x2d8): undefined reference to `dav1d_get_event_flags'
./configure --language=fr --enable-gui --disable-libdav1d-lavc
undefined reference to `__pow_finite'
il faudra éditer le fichier config.mak et au niveau de la variable CFLAGS supprimer --ffast-math on retape make
puis en tant que root make install
A présent on peut récupérer les thèmes dont le thème par défaut s'appelle Blue. On le copiera sous /usr/local/share/mplayer/skins
cp Blue-1.13.tar.bz2 /usr/local/share/mplayer/skins
Dans ce répertoire on tape ensuite successivement
cd /usr/local/share/mplayer/skins
tar xvfj Blue-1.13.tar.bz2
ln -s Blue default
C'est fini on peut taper MPlayer en tapant
gmplayer
Et voilà le résultat
La vidéo apparaît dans une fenêtre séparée et non pas dans la petite fenêtre. Autre vu de MPlayer en utilisant un skin copiant lecteur bien connu...
MPlayer
est capable de lire à peu près tous les formats (MPEG1, MPEG2, MPEG4,
...), y compris le format DV brut ! Pour lire les DVD dans le menu (clique
bouton droit de la souris sur la fenêtre d'affichage) DVD->Ouvrir un
disque, puis DVD->Langues audio->French. Il reconnait également les
conteneurs ogm et les matroska.
Ca n'a pas grand chose à voir avec la vidéo, mais MPlayer permet
de pouvoir écouter la radio ! Une liste des radios francophones peut
se trouver ici https://doc.ubuntu-fr.org/liste_radio_france
il suffit d'en choisir une et de taper le lien
mplayer http://direct.francebleu.fr/live/fbarmorique-midfi.mp3
Nous allons nous servir de vlc
Il suffit de taper la commande
vlc video.avi --sout
'#std{access=udp,mux=ts,dst=192.168.26.50:1234}'
192.168.26.50 est l'adresse IP du poste client et 1234 le port de
diffusion, sur le poste client pour recevoir le flux, il suffit de taper
vlc udp://@:1234
Le streaming permet la
réception sur plusieurs postes clients d'un réseau
vlc video.avi --sout '#std{access=mmsh,dst=:1234}'
pour la réception de n'importe quel poste client, il suffit de taper
vlc mmsh://serveurdiffusion:1234
serveurdiffusion étant le nom du serveur de diffusion et 1234 le
port de diffusion.
pour transcoder puis diffuser en UDP multicast à l'adresse 224.1.0.200 on
tapera
vlc video.avi --sout
'#transcode{vcode=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}
:standard{access=udp,mux=ts,dst=224.1.0.200,sap,name="monflux"}'
pour diffuser simplement en UDP multicast à l'adresse 224.1.0.200 on
tapera
vlc video.avi --sout
'#duplicate{dst=standard{access=udp,mux=ts,dst=224.1.0.200,sap,name="monflux"}}'
pour lire le fichier il suffit de taper
vlc udp:@224.1.0.200
le flux multicast pouvant être stoppé par les routeurs on pourra
rajouter à la commande de diffusion l'option --ttl X avec
X qui correspond au nombre de routeur.
Il faut lancer le serveur manager de video à la demande
accessible sur le serveur de diffusion par telnet
vlc --extraintf telnet --telnet-password videolan
--rtsp-host 192.168.1.11:1234
le mot de passe au serveur de diffusion sera videolan, son adresse
192.168.1.11 et le port de diffusion 1234, on va maintenant rajouter des
vidéos. On se connecte sur le serveur par telnet, le port par
défaut étant 4212
telnet 192.168.1.11 4212
Trying 192.168.1.11...
Connected to 192.168.1.11.
Escape character is '^]'.
Password:
Welcome, Master
>
pour rajouter une vidéo après le prompt on tape
> new canal1 vod enabled setup canal1 input
"/maurice/video/perso/tahiti/danses/danses-marquisiennes-xvid.avi"
pour en rajouter une deuxième
> new canal2 vod enabled setup canal2 input
"/maurice/video/perso/tahiti/dansesmangareva.avi"
Maintenant d'un poste client pour lire le canal1 on va taper
vlc rstp://192.168.1.11:1234/canal1