FUNIX

Mettez un manchot dans votre PC


Encourager FUNIX

La consultation du site est totalement libre et gratuite, sans publicités. Les dons sont néanmoins appréciés pour payer l'hébergement et encourager son auteur


Les lecteurs MPEG et DivX

[ Présentation | Installation des bibliothèques de base ( madlibdvdcss , libdvdread , libdvdnav , libdvbpsi , live555 ) |  Les lecteurs multi formats ( présentation , vlcxine MPlayer  ) | Streaming vidéo ( présentation , diffuser vers un poste, streaming sur le réseau ,  vidéo à la demande ) ]

Dernière modification 30 mai 2019

Les lecteurs vidéo sous Linux


(ce document est disponible au format pdf dans la rubrique téléchargement)

Présentation

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.

[Retour haut de la page ]

Installation des bibliothèques de base

Installation de mad

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

[Retour haut de la page ]



Installation de libdvdread

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.0.1.tar.bz2

Cela donne le répertoire libdvdread-6.0.1 dans lequel on tape

./configure
make


Puis en tant que root

make install

[Retour haut de la page ]



Installation de libdvdnav

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.0.0.tar.bz2

Cela donne le répertoire libdvdnav-6.0.0 dans lequel on tape

./configure
make


Puis en tant que root

make install

Installation de libdvdcss

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.2.tar.bz2


Cela donne le répertoire libdvdcss-1.4.2 dans lequel on tape

./configure
make


Puis en tant que root

make install

[Retour haut de la page ]



Installation de libdvbpsi

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.2.tar.bz2

Cela donne le répertoire libdvbpsi-1.3.2 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.

[Retour haut de la page ]



Installation de live555

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. -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

[Retour haut de la page ]



Les lecteurs multiformats

Présentation

Je vous présente ici les lecteurs les plus courants à savoir xine, MPlayer et vlc. Ces différents players sont capables de lire les avi classiques (du style divx/xvid mp3) mais aussi les ogm et les matroska (sauf pour aviplay qui ne reconnait pas ces deux derniers conteneurs vidéo).

[Retour haut de la page ]



VLC

Installation

VLC est un player vidéo particulièrement puissant, le site officiel est http://www.videolan.org on y récupère l'archive qu'on décompresse en tapant

tar xvf vlc-3.0.6.tar.xz

cela donne le répertoire vlc-3.0.6. On installera éventuellement les packages lib64cddb-devel, qt4-devel, fribidi, fribidi-devel, lib64sndfile-devel, lib64gcrypt-devel, lua-devel, lib64qt5gui-devel, wayland-protocols-devel, lib64wayland-egl1-devel, lib64mesaglesv2_2-devel et lib64SDL_image-devel. On revient dans vlc-3.0.6 on y tape

./configure --enable-gles2 --enable-fdkaac


puis on tape

make

si vous avez l'erreur suivante

access/sftp.c:310:14: error: « LIBSSH2_HOSTKEY_TYPE_ECDSA_256 » non déclaré (première utilisation dans cette fonction); vouliez-vous utiliser « LIBSSH2_HOSTKEY_TYPE_DSS » ?

je n'ai pas trouvé mieux pour l'instant que de désactiver l'usage de sftp avec

./configure --enable-gles2 --enable-fdkaac -disable-sftp

maintenant si vous avez l'erreur suivante

codec/fdkaac.c: Dans la fonction ‘OpenEncoder’:
codec/fdkaac.c:291:33: erreur : ‘AACENC_InfoStruct {alias struct <anonymous>}’ has no member named ‘encoderDelay’
     p_sys->i_encoderdelay = info.encoderDelay;

dans le fichier modules/codec/fdkaac.c on remplace encoderDelay par nDelay comme ceci

   //p_sys->i_encoderdelay = info.encoderDelay;
    p_sys->i_encoderdelay = info.nDelay;

on retape make si on bute sur l'erreur suivante

codec/vpx.c:119:23: error: « VPX_IMG_FMT_444A » non déclaré ici (hors de toute fonction); vouliez-vous utiliser « VPX_IMG_FMT_I440 » ?
     { VLC_CODEC_YUVA, VPX_IMG_FMT_444A, 8, 0 },

à court terme je n'ai pas trouvé mieux de désactiver vpx ce qui est particulièrement gênant car il permet l'utilisation des codecs VP8 et VP9. En tapant

./configure --enable-gles2 --enable-fdkaac --disable-sftp --disable-vpx

maintenant si vous rencontrez l'erreur suivante

/usr/local/include/opencv4/opencv2/core/cvdef.h:656:4: erreur : #error "OpenCV 4.x+ requires enabled C++11 support"
 #  error "OpenCV 4.x+ requires enabled C++11 support"

bizarrement opencv est bien configuré avec l'option C++11, il faudra désactiver opencv au configure

./configure --enable-gles2 --enable-fdkaac --disable-sftp --disable-vpx --disable-opencv

on retape make et maintenant face à l'erreur

/bin/ld: demux/mkv/.libs/libmkv_plugin_la-matroska_segment.o: in function `matroska_segment_c::ParseSimpleTags(SimpleTag*, libmatroska::KaxTagSimple*, int)':
/usr/local/linux/multimedia/vlc-3.0.6/modules/demux/mkv/matroska_segment.cpp:304: undefined reference to `libebml::EbmlString::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&() const'

je n'ai pas d'autres choix que de désactiver matroska

./configure --enable-gles2 --enable-fdkaac --disable-sftp --disable-vpx --disable-opencv --disable-matroska

et de retaper 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




[Retour haut de la page ]

Utilisation

Il suffit de taper vlc, l'interface est particulièrement riche (nettement plus que xine ou mplayer qui sont basiques à côté).


[Retour haut de la page ]

Xine

Installation

xine est disponible sur Mageia. 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.9.tar.xz

Cela donne le répertoire xine-lib-1.2.9 dans lequel on tape

./configure

Voici le résultat

xine-lib summary:
----------------
 * input plugins:
   - file          - net
   - stdin_fifo    - rtp
   - http          - mms
   - pnm           - rtsp
   - vcdo          - vcd
   - dvd (external libs)
   - vdr
   - dvb
   - v4l2
   - cdda
   - avio (libavformat)
   - test

 * demultiplexer plugins:
   - avi           - mpeg
   - mpeg_block    - mpeg_audio
   - mpeg_elem     - mpeg_pes
   - mpeg_ts       - qt/mpeg-4
   - film          - roq
   - fli           - smjpeg
   - idcin         - wav
   - wc3 mve       - voc
   - vqa           - aiff
   - cdda          - snd/au
   - yuv4mpeg2     - real/realaudio
   - ea wve        - raw dv
   - interplay mve - psx str
   - ws aud        - pva
   - vox           - nsf
   - nsv           - 4xm
   - FLAC          - aac
   - iff           - matroska
   - vmd           - flv
   - ac3 (external library)
   - asf
   - Nosefart (NSF)
   - mng
   - mod
   - FLAC (with libFLAC)
   - ogg
   - avformat (with libavformat)

 * video decoder plugins:
   - MPEG 1,2         - Amiga Bitplane
   - Raw RGB          - Raw YUV
   - dxr3_video
   - gdk-pixbuf
   - image
   - libjpeg
   - theora
   - vdpau
   - libvpx (VP8/VP9)
   - ffmpeg

 * audio decoder plugins:
   - GSM 06.10       - linear PCM
   - faad
   - Nosefart (NSF)
   - FLAC (with libFLAC)
   - speex
   - vorbis
   - MAD (MPG 1/2/3) (*INTERNAL* library)
   - DTS (*INTERNAL* library)
   - A52/ra-dnet (external library)
   - Musepack (*INTERNAL* library)
   - ffmpeg

 * subtitle decoder plugins:
   - spu             - spucc
   - spucmml         - sputext
   - spudvb
   - dxr3_spu

 * post effect plugins:
  * planar video effects:
   - invert          - expand
   - eq              - eq2
   - boxblur         - denoise3d
   - unsharp         - tvtime
   - postproc
   - vdr
  * SFX:
   - goom            - oscope
   - fftscope        - mosaico
   - tdaudioanalyzer

 * video driver plugins:
   - XShm (X11 shared memory)
   - Xv (XVideo *shared*)
   - XxMC (XVideo extended motion compensation)
   - XvMC (XVideo motion compensation)
   - OpenGL (with GLU support)
   - OpenGL 2.0 (with bicubic scaling)
   - vaapi (Video Acceleration (VA) API for Linux)
   - vdpau (X11 Video Decode and Presentation API for Unix)
   - 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)

 * audio driver plugins:
   - alsa (ALSA - Advanced Linux Sound Architecture)
   - Jack
   - oss (Open Sound System)
   - pulseaudio (PulseAudio sound server)
---

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.7
/usr/local/lib/xine/plugins/2.7/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.10.tar.xz

Cela donne le répertoire xine-ui-0.99.10 dans lequel on tape successivement

./configure
make

Puis en tant que root

make install

[Retour haut de la page ]

Utilisation

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.


[Retour haut de la page ]

MPlayer

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.4.tar.xz

Cela donne le répertoire MPlayer-1.4. 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: libvpx x264 xvid libopencore_amrwb libopencore_amrnb ffmpeg(internal) real xanim libopus faad2 faac libmpeg2 liba52 mpg123 libtheora libgsm speex libvorbis twolame libmad gif OpenJPEG
    Audio output: sndio alsa openal jack pulse oss v4l2 sdl mpegpes(dvb)
    Video output: v4l2 matrixview opengl sdl gif89a pnm jpeg mng mpegpes(dvb) fbdev aa ggi xvidix cvidix dga vdpau xv x11 xover yuv4mpeg md5sum tga

  Disabled optional drivers:
    Input: vstream radio tv-v4l1 tv-dshow live555 nemesi bluray smb
    Codecs: crystalhd libdv qtx win32 ilbc musepack libdca toolame liblzo
    Audio output: sun nas esd arts ivtv dxr2
    Video output: zr zr2 ivtv dxr3 dxr2 vesa svga caca winvidix 3dfx xmga xvmc directfb dfbmga bl xvr100 tdfx_vid wii s3fb tdfxfb mga

'config.h' and 'config.mak' contain your configuration options.

On peut taper 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

[Retour haut de la page ]

Streaming vidéo

Présentation

Nous allons nous servir de vlc

Diffuser une vidéo vers un poste en particulier

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

[Retour haut de la page ]

Faire du streaming sur un réseau

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.

[Retour haut de la page ]

Vidéo à la demande (VoD)

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

 

[Retour page d'accueil FUNIX]

[Retour haut de la page ]