Lire des DVD avec Xine avec et sans carte de decompresion MPEG-2

De Lea Linux
Aller à la navigation Aller à la recherche

Lire des DVD avec Xine avec et sans carte de décompresion MPEG-2

Cette documentation est considérée comme étant obsolète.

Cela signifie que la documentation sur cette page est dépassée. Léa-Linux vous incite à ne pas suivre cette documentation dans votre utilisation d'une distribution récente. Cette documentation est conservée uniquement dans un souci de curiosité et d'archive documentaire, mais au moins une partie des informations qui la compose n'est plus valide.

Trouvez des articles plus à jour dans la rubrique Logiciels.

Lire des DVD vidéo avec Xine, avec et sans carte de décompresion MPEG-2 (dxr3 et Hollywood+).

Introduction

La lecture de DVD video sous Linux a longtemps été un véritable défi. La cause en était la volonté des majors et autres multi-nationales de verrouiller le marché du DVD (zones, cryptage des DVD, etc.). Gràce au travail acharné de plusieurs équipes, ce temps est aujourd'hui révolu, et après avoir lu ces quelques lignes, et épongé un peu de sueur, vous pourrez utiliser sous Linux vos DVD video de façon optimale.

Nous allons présenter dans cet article [#xine l'installation de Xine], un lecteur video performant pour Linux. A cause de problèmes légaux, Xine ne sait pas tel quel lire les DVD cryptés ou bloqués. Heureusement, une autre équipe développe en parallèle un plugin pour Xine (xine_d4d) permettant de les lire sans aucun problème. Nous verrons [#xine_d4d comment installer xine_d4d] pour lire les DVD cryptés.
La structure modulaire de Xine permet aussi à un autre groupe de développer un plugin (xine-dvdnav) afin d'[#xine-dvdnav utiliser les menus des DVD] comme sur une platine de salon.

Nous verrons enfin [#dxr3 comment tirer parti des cartes de décompression MPEG-2] basées sur le chipset em8300, dont les cartes Creative Labs dxr3 et Sigma Design Hollywood+ (et d'autres cartes sans marque et moins chères ;).

Enfin, nous verrons qu'un autre problème se pose qui, lui, n'est pas lié au lecteur de DVD : rendre automatique l'installation de tous les drivers au boot de Linux.

Les utilisateurs avancés (ou pressés ;) pourrons se rendre directement au [#resume résumé] qui regroupe en quelques lignes les étapes à franchir afin d'installer Xine avec et sans carte de décompression.

Pour commencer, il faut que votre noyau soit compilé avec le support du système de fichier UDF (CONFIG_UDF_FS = Y ou M), car la plupart des DVD utilisent ce système de fichier. C'est le cas des distributions récentes. Nous supposerons également dans la suite que vous avez un noyau de la série 2.4.


Si vous avez une Mandrake

Dans ce cas, lisez plutôt : [xine_mdk.php3 xine pour mandrake].

Préparatifs

/dev/dvd

Etablissez un lien entre votre lecteur (chez moi /dev/hdb, car j'ai un lecteur de DVD atapi (IDE), mais ce pourrait être /dev/scd0 si vous avez un lecteur SCSI) et /dev/dvd :

[user@localhost ~]$ ln -s /dev/hdb /dev/dvd

Vous devez aussi donner les droits en lecture/écriture sur ce périphérique a vos utilisateurs de xine : reportez vous à [../admin/permissions.php3 cet article].

/usr/local

Nous allons installer Xine (ainsi que les programmes pour piloter la carte em8300) dans le répertoire /usr/local.

Le répertoire /usr/local/bin doit donc être dans votre chemin de recherche (PATH) et de plus, /usr/local/lib doit se trouver dans les librairies chargées par défaut.

Ajoutez la ligne :

export PATH=$PATH:/usr/local/bin

dans ~/.bashrc et (passez en root) la ligne :

/usr/local/lib

dans /etc/ld.so.conf, puis tapez : /sbin/ldconfig (afin de faire prendre en compte les librairies de /usr/local/lib au système).


Installation d'une carte de décompression MPEG-2

Si vous n'avez pas de telle carte, passez directement au [#xine chapitre suivant] pour installer Xine.

"Bon, c'est bien joli tout cela, mais la lecture de dvd sur mon PII 350 est saccadée et c'est pour cela que j'ai acheté une carte dxr3 !"

Et bien, c'est pour cela qu'une équipe de joyeux lurons a développé un driver pour votre carte accélératrice ! (enfin, la leur je pense...) Ce driver fonctionne avec toutes les cartes basées sur la puce em8300 (Creative Labs dxr3, Sigma Design Hollywood+, etc). Il est utilisable par Xine, et depuis la version 0.9.0 du 3/12/2001, par MPlayer.

L'installation et la configuration de ce driver est assez difficile, mais cela vaut le coup...

Il faut savoir que ce driver est développé sans l'aide des constructeurs de la puce em8300 ! Il est entièrement reverse-engineeré (admirez le franglais), c'est à dire que les développeurs ont observé le comportement du driver et de la carte sous Windows et en ont déduit comment programmer le driver pour Linux. C'est un travail long et difficile (mais que je (Jice) trouve très amusant ;)

Voyons comment j'ai installé cette carte chez moi. Avant toute chose, il faut que votre noyau soit compilé avec le support I2C (CONFIG_I2C = Y ou M) et I2C bit-banging interfaces (CONFIG_I2C_ALGOBIT = Y ou M), ce qui est le cas des noyaux pour les distributions récentes (Mandrake 8, etc.)

Important : sachez que par défaut le driver active la sortie télé de la carte MPEG-2 ; pour afficher la video sur le moniteur (on parle alors de mode "overlay"), il faut suivre ces recommandations.

Création des périphériques em8300

Créons les périphériques à travers lesquels nous accéderons à la carte :

$ su
Password: xxxxxxxxxx
# mknod /dev/em8300 c 121 0
# mknod /dev/em8300_mv c 121 1
# mknod /dev/em8300_ma c 121 2
# mknod /dev/em8300_sp c 121 3
# chmod g+rw /dev/em8300*
# exit

Pour que l'utilisateur courant puisse utiliser la carte de décompression

Et pour que tout le monde (et pas seulement root) puisse se servir de la carte de décompression (et donc de xine pour dxr3) éditez /etc/security/console.perms et ajoutez-y :

<em8300>=/dev/em8300*
<console>Â 0600 <em8300>Â Â Â Â 0600 root.audio

relancez le serveur X en tapant CTRL+ALT+BACKSPACE.
Et voilà ! Tout le monde peut utiliser votre carte de décompression.

Récupération des sources et installation de la librairie dxr3, et du "patch" pour Xine

Il vous faut le package des drivers em8300 (http://dxr3.sourceforge.net). Prenez la dernière version sur http://sourceforge.net/project/showfiles.php?group_id=5165 : ce ne sera pas pire ! A la rédaction de cet article les drivers sont en version 0.9.0 ; ils ne contiennent plus de patch pour Xine car celui-ci est intégré à Xine depuis xine-5.0.

Remarque : pour que les étapes de compilation passent chez moi, j'ai dû copier le fichier em8300-0.9.0/include/linux/em8300.h vers /usr/src/linux-2.4.8/include/linux/em8300.h

Passons à l'installation :

$ tar xzf em8300-0.9.0.tar.gz
$ cd em8300-0.9.0
$ ./configure --prefix=/usr/local
$ make
$ su
Password: xxxxxxxx
# make install
# exit

Et c'est tout ? Hé bien oui, sauf si vous aviez installé Xine auparavant : il faut le recompiler (seulement la partie xine-lib) : il va détecter la librairie dxr3 tout seul et se compiler avec le plugin dxr3. Placez-vous dans le répertoire de Xine :

$ cd xine-lib-0.9.7
$ rm -f config.cache
$ make clean (si vous avez un message d'erreur ici, ce n'est pas grave : continuez)
$ ./configure --prefix=/usr/local
$ make
$ su
Password: xxxxxxx
# make install
# exit

Et voilà !

Chargement des modules

Et c'est tout ? Non ! Maintenant il faut charger les modules (=drivers). Heureusement deux scripts se chargent de cela pour nous : ldm pour le chargement et rmm pour le déchargement. Mais avant de les charger, il faut les compiler (avant toute chose, les sources de votre noyau doivent être installées et configurées, sinon vous aurez un message d'erreur). Placez-vous dans le répertoire em8300-0.9.0/modules :

$ cd em8300-0.9.0
$ cd modules
$ ./make
$ su
Password: xxxxxxxx
$ ./make install
$ exit

Ensuite on charge les modules (pour l'instant, ce n'est qu'un test) :

$ cd em8300-0.9.0/modules
$ su
Password: xxxxxxxxx
# ./ldm
(vérifions que l'installation est correcte : les lignes suivantes doivent ressembler à ça)
# lsmod | grep em8300
em8300Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 45456Â Â 0 (unused)
soundcore              4208  6 [em8300 sb_lib sound]
i2c-algo-bit           7328  3 [em8300]
# exit

Récupération et installation du microcode

Pour que la carte de décompression fonctionne, il faut programmer son processeur em8300. Cela se fait en chargeant dedans un programme nommé le "microcode" (programme en langage machine correspondant au processeur em8300 de la carte).

Pour récupérer ce programme, montez la disquette ou le CD sur laquelle se trouvent les drivers Windows (ou téléchargez la dernière version des drivers) et trouvez le fichier qui s'appelle rmquasar.vx_ (si vous avez une carte Hollywood+) ou enc2dev.vx_Â (si vous avez une carte dxr3). Ces fichiers sont peut-être dans un zip ou un autre type de fichier : à vous de le trouver ; avec ma carte Hollywood+ le fichier est à la racine de la disquette.

Il faut décompresser ce fichier :

$ cp /mnt/floppy/rmquasar.vx_ .
$ em8300-0.9.0/scripts/msexpand.pl rmquasar.vx_
Input file appears to be Microsoft Compress format, proceeding
Output filename = rmquasar.vxd
Original file size: 307668 bytes
Compression ratio: 45.3%

puis récupérer le microcode :

$ em8300-0.9.0/scripts/microcode_extract.pl rmquasar.vxd
Found microcode block (length=26282), saving to microcode0.bin
Found microcode block (length=26026), saving to microcode1.bin
Found microcode block (length=26222), saving to microcode2.bin

Note : il peut y avoir 2 ou 3 microcodes, selon votre carte et/ou la version des drivers. C'est normal.

Ensuite il faut charger le microcode dans la carte, et pour ce :

$ su
Password: xxxxxxxx
# em8300-0.9.0/scripts/microcode_upload.pl microcode0.bin
Microcode uploaded to /dev/em8300
# exit

Note (1) : à ce moment le "vga passthrough" (le càble qui relie votre carte vidéo à la carte MPEG-2) peut cesser de fonctionner (ce n'est pas le cas chez moi... : ce problème semble ne plus exister (?)). Si cela vous arrive, il n'y a pas encore d'autre solution que de rebrancher votre moniteur directement sur la carte video plutôt que sur la carte de décompression.

C'est parfait. Le premier problème est qu'il y a (comme vous l'avez peut-être remarqué) plusieurs microcodes, alors lequel choisir ? Réponse : en essayant ! Les développeurs n'ont pas encore trouvé lequel choisir. Ce sera à vous de le faire. Chez moi tous les microcode semblent fonctionner de la même manière (en fait, après de multiple expérience, il semble que seul l'un d'eux permette de faire fonctionner correctement le mode 'overlay' : affichage à l'écran plutot que sur la télé), mais ce ne sera peut-être pas le cas chez vous.
Note de Jice : chez moi, le microcode permettant de faire fonctionner correctement l'overlay est microcode2.bin.

Voilà comment faire pour choisir un bon microcode :

  1. tapez : em8300-0.9.0/scripts/microcode_upload.pl microcodeX.binX est le numéro du microcode que vous voulez tester.
  2. lancez xine (en tant que root) :
    # xine
    (ceci pour un affichage sur une télé. Pour un affichage sur le moniteur, lisez d'abord le paragraphe sur l'overlay.)
  3. jouez un dvd, si vous obtenez un signal video (même de couleur complétement décalées dans le vert) c'est bon, vous avez un microcode qui fonctionne, sinon, quittez xine, déchargez puis rechargez les modules :
    # cd em8300-0.9.0/modules
    # ./rmm
    # ./ldm
    et recommencez avec un autre microcode.
  4. si ça ne marche toujours pas : vous êtes maudit, il va falloir vous mettre à l'anglais et lire le howto : http://dxr3.sourceforge.net/howto.html ou alors acheter un lecteur dvd de salon, voire même utiliser Windows (mais vous n'arriverez sûrement pas à cette extrémité ;-)

Choisir les paramètres du noyau

A ce point, vous avez identifié un microcode qui fonctionne, mais les couleurs ne sont probablement pas les bonnes : c'est parce que nous n'avons pas passé les bons paramètres aux modules que nous avons chargés.
Note de Jice : si vous utilisez uniquement l'overlay, les modules fonctionnent sans aucun paramètre, et avec les bonnes couleurs. Vous pouvez donc sauter cette étape si vous ne désirez pas utiliser la sortie télé de votre carte MPEG-2.

Editez d'abord ~/.xine/config et modifier les lignes:

dxr3_tvmode:default
video_driver_name:Xv

Pour qu'elles deviennent :

dxr3_tvmode:pal ou ntsc ou pal60 (ou overlay, voir plus loin)
video_driver_name:dxr3

Si ces lignes n'existent pas : ajoutez-les !

Puis, éditez le fichier em8300-0.9.0/modules/ldm :

#!/bin/sh
modprobe i2c-algo-bit
insmod eeprom.o
insmod adv717x.o pixelport_16bit=1 pixelport_other_pal=0
insmod bt865.o
insmod em8300.o dicom_fix=0 dicom_control=0 dicom_other_pal=0

(ça c'est celui qui marche chez moi) Pour trouver les paramêtres qui vont bien, il va vous falloir une série et './rmm', './ldm'. Voici par quoi remplacer les lignes en gras pour que les couleurs soient bonnes :

adv717x.0 pixelport_16bit=1 pixelport_other_pal=1
em8300.0Â dicom_fix=1 dicom_control=1 dicom_other_pal=1

 ou

adv717x.0 pixelport_16bit=0 pixelport_other_pal=0
em8300.0Â dicom_fix=1 dicom_control=1 dicom_other_pal=0

 ou

adv717x.0 pixelport_16bit=0 pixelport_other_pal=1
em8300.0Â dicom_fix=1 dicom_control=1 dicom_other_pal=1

 ou

adv717x.0 pixelport_16bit=1 pixelport_other_pal=0
em8300.0Â dicom_fix=0 dicom_control=0 dicom_other_pal=0

Voilà comment procéder :

  • changer les deux lignes en gras par celles proposées (ou essayer d'autres combinaisons)
  • ./rmm
  • ./ldm
  • $EM8300PATH/microcode_upload.pl microcodeX.bin (ou X est le numéro du microcode qui marche !)
  • xine
  • on joue un dvd : les couleurs sont bonnes : ok, les couleurs ne sont pas bonnes on recommence.

C'est très fastidieux, mais au bout d'un moment, on finit par y arriver !

Automatiser le chargement des modules

Ca y est vous avez trouver les bons paramètres pour charger les modules ?

Nous allons automatiser leur chargement au démarrage de la machine. Créez le fichier /etc/rc.d/init.d/em8300 (l'emplacement correspond à une Mandrake/RedHat) :

#!/bin/sh
# (c) Frédéric Bonnaud
# em8300 :Â Â This shell script launches the dxr3 driver on your system.
#

case $1 in
 start)
   /usr/local/bin/ldm
   /usr/local/bin/microcode_upload.pl /usr/local/etc/microcodexxx.bin
   # pensez à copiez le microcode dans /usr/local/etc !
    ;;
 stop)
   /usr/local/bin/rmm
    ;;
 status)
   if lsmod | grep em8300 2>&1 > /dev/null ; then
     echo "Le driver EM8300 (décompression MPEG-2) est chargé."
   else
     echo "Le driver EM8300 (décompression MPEG-2) n'est pas chargé."
   fi
    ;;
 reload)
    ;;
 restart)
   $0 stop
   $0 start
    ;;
 *)
   echo "Usage: $(basename $0) start|stop|restart|status"
   exit 0
esac

exit 0

Copiez ldm, rmm et microcode_upload.pl vers /usr/local/bin et remplacez modprobe xxxxx.o par modprobe xxxxx et ajoutez PATH=$PATH:/sbin à chacun de ces fichiers (ldm et rmm). Ils doivent ressembler à (avec vos paramètres) :

#!/bin/sh
# ldm

PATH=$PATH:/sbin:/usr/sbin

modprobe i2c-algo-bit

insmod eeprom
insmod adv717x pixelport_16bit=1 pixelport_other_pal=0 swap_redblue_pal=0
insmod bt865
insmod em8300 dicom_fix=0 dicom_control=0 dicom_other_pal=0

et :

#!/bin/sh
# rmm

PATH=$PATH:/sbin:/usr/sbin

fuser -k /dev/em8300
fuser -k /dev/em8300_mv
fuser -k /dev/em8300_ma
rmmod eeprom
rmmod em8300
rmmod adv717x
rmmod bt865

puis, tapez :

# chkconfig --add em8300

Si vous n'avez pas chkconfig, ajoutez des liens S* vers le script dans les répertoires correspondant aux runlevels 3 et 5 (en général /etc/rc.d/rc.3 et rc.5), et des liens K* dans les runlevels 0 et 6 si votre système est "sysV compliant" ;)

Bref, si vous n'avez pas ces répertoires, débrouillez vous simplement pour que /usr/local/bin/ldm soit lancé au démarrage de votre machine et éventuellement /usr/local/bin/rmm quand vous éteignez votre machine.

Utilitaires

Lorsque vous avez installé les drivers em8300, un programme (dhc) a été installé dans /usr/local/bin, ce programme permet

  • d'activer a postériori les modes PAL/NTSC/PAL 60
  • de passer du mode 4/3 au mode 16/9
  • d'activer la sortie son numérique.
  • de régler les contrastes, la brillance
  • d'activer/supprimer les sous-titres

N'hésitez pas à l'utiliser : il est très pratique et simplissime d'emploi.

Un autre programme a été installé : dxr3view. Il permet d'utiliser, tester et régler l'overlay de la carte (i.e. affichage sur le moniteur).
Normalement l'affichage se fait correctement dans la fenêtre dxr3view.
Lorsque la souris est sur cette fenêtre, un appui sur la touche 't' affiche un menu (mémorisez bien cette touche) qui vous permet de passer en plein écran. Mais surtout ne le faites pas avant d'avoir lu la suite : pour repassez en mode 'fenêtré' il faut appuyer sur 't' , puis 'flêche bas', puis 'entrée'.
Mémorisez bien cette séquence de touche avant d'essayer : sinon, vous n'avez plus d'écran : il faudra débrancher le cable 'VGA PASSTHROUGH' !

Utilisation de l'overlay (affichage sur le moniteur) avec le driver em8300

Par défaut, le driver dxr3 (nom du driver

em8300 de Xine) affiche la video sur la sortie télé de la carte MPEG-2. Si vous désirez afficher la video sur votre moniteur, il faut activer le mode nommé "overlay".

Depuis la version 0.8.1 des drivers em8300, ce mode overlay fonctionne assez correctement, mis à part un bug de xine dans l'initialisation de l'overlay ; nous allons voir ci-dessous un truc pour contourner ce bug.
Comment ça marche ? C'est relativement simple.

  1. Pour la première utilisation (et à chaque changement de résolution/profondeur de couleur), il faut lancer "autocal" qui a été installé dans /usr/local/bin par Xine.
  2. Modifiez ~/.xine/config, pour que les lignes suivantes contiennent :
    1. video.driver:dxr3
    2. dxr3.videoout_mode:overlay
  3. Lancez dxr3view qui est dans /usr/local/bin,
  4. puis xine comme d'habitude (la première fois, par "xine -V dxr3")
  5. Enfin, lancez un film : pour que l'affichage se fasse dans la fenêtre de Xine, minimisez celles de dxr3view, puis déplacez un peu la fenêtre de Xine : cela va lui faire "attraper" l'overlay.
  6. c fini :)

Tous les plugins fonctionnent bien avec l'overlay, même dvdnav (navigation dans les menus des DVD), sauf que l'affichage des menus est un peu décalé, rien de grave en somme.

Voilà, bon film !


Installation de Xine

L'installation est somme toute triviale : on récupère sur: http://xine.sourceforge.net les packages xine-lib et xine-ui.

Note (1) : à l'heure ou j'écris ces lignes (17/12/2001) la version 0.9.7 de xine est sortie ; Xine supporte directement les cartes à base de em8300 (style : dxr3 ou Hollywood+) à partir de la version 0.5.3. Il n'y a plus besoin de patcher Xine.

On compile les sources, et on installe Xine dans /usr/local :

[user@localhost ~]$ tar xzf xine-lib-0.9.7.tar.gz
[user@localhost ~]$ cd xine-lib-9.7
[user@localhost xine-lib-0.9.7]$ ./configure --prefix=/usr/local
[user@localhost xine-lib-0.9.7]$ make
[user@localhost xine-lib-0.9.7]$ su
Password:xxxxxxxx
[root@localhost xine-lib-0.9.7]# make install
[root@localhost xine-lib-0.9.7]# exit
[user@localhost xine-lib-0.9.7]$ cd ..
[user@localhost ~]$ tar xzf xine-ui-0.9.7.tar.gz
[user@localhost xine-ui-0.9.7]$ ./configure --prefix=/usr/local
[user@localhost xine-ui-0.9.7]$ make
[user@localhost xine-ui-0.9.7]$ su
Password:xxxxxxxx
[root@localhost xine-ui-0.9.7]# make install
[root@localhost xine-ui-0.9.7]# exit

Et voilà ! Xine est compilé et installé ! Les fichiers de Xine sont dans /usr/local/bin pour les exécutables, /usr/local/lib pour les librairies, et /usr/local/lib/xine pour les plugins de Xine.

Nous allons maintenant le tester. Munissez-vous d'un DVD non crypté et mettez le dans votre lecteur de DVD.
Lancez xine :

[user@localhost ~]$ xine

si a ce moment vous vous faites abreuver d'injures du type :

audio_out_oss: realtime check: *FAILED* :-(((((
audio_oss_out: Audio driver realtime sync disabled...
audio_oss_out: ...Will use video master clock for soft-sync instead
audio_oss_out: ...There may be audio/video synchronization issues

input_dvd: unable to open raw dvd drive (/dev/rdvd): Permission denied

ce n'est pas grave (moquez-vous en). Par contre si vous avez :

bash: xine: command not found

ou :

input plugin found : /usr/local/lib/xine/plugins/input_file.so(input_file.so)
input plugin found : /usr/local/lib/xine/plugins/input_net.so(input_net.so)
xine.c(736): /usr/local/lib/xine/plugins/input_dvd.so doesn't seem to be installed (libcss.so.0: cannot load shared object file: No such file or directory)

C'est que /usr/local/bin n'est pas dans votre chemin de recherche (PATH) et/ou que /usr/local/lib n'est pas dans les librairies chargées par défaut.
[#usr_local Relisez les préparatifs], ou tapez :

LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/xine

pour lancer xine.

Pour spécifier le driver video, vous pouvez lancer xine avec l'option -V (ex : xine -V dxr3), pour l'audio avec -A (ex : xine -A oss). Xine se "souvient" ensuite du driver video ou audio que vous avez choisi (il modifie son fichier de configuraiton ~/.xine/config).

Une sortie du type :

[jice@taz jice]$ xine
This is xine (X11 gui) - a free video player v0.9.7
(c) 2000, 2001 by G. Bartsch and the xine project team.
Généré avec la bibliothèque xine 0.9.7 [sam 15 déc 2001 21:56:43]-[gcc version 2.96 20000731 (Mandrake Linux 8.1 2.96-0.62mdk)]-[Linux 2.4.8-26mdk i586].
Version de la bibliothèque de xine trouvée : 0.9.7 (0.9.7).
Display is not using Xinerama.
xres 1024 yres 768 depth 16
dxr3_vo: setting aspect ratio to full
dxr3_vo: setting up overlay mode
dxr3_vo: setting tv_mode to PAL 50Hz
load_plugins: video output plugin dxr3 successfully loaded.
audio_oss_out: Opening audio device...
audio_oss_out: realtime check: *FAILED*
audio_oss_out: Audio driver realtime sync disabled...
audio_oss_out: ...will use system real-time clock for soft-sync instead
audio_oss_out: ...there may be audio/video synchronization issues
audio_oss_out : supported modes are mono stereo
load_plugins: audio output plugin oss successfully loaded.
xine_init entered
xine: using MMX optimized memcpy()
load_plugins: input plugin found : CDA
load_plugins: input plugin found : DVD
load_plugins: input plugin found : stdin_fifo
load_plugins: input plugin found : TCP
load_plugins: input plugin found : file
load_plugins: input plugin found : RTP
load_plugins: input plugin found : VCD
load_plugins: input plugin found : HTTP
load_plugins: demux plugin found : MPEG_TS
load_plugins: demux plugin found : QUICKTIME
load_plugins: demux plugin found : MPEG
load_plugins: demux plugin found : ASF
load_plugins: demux plugin found : AVI
load_plugins: demux plugin found : CDA
load_plugins: demux plugin found : MPEG_ELEM
load_plugins: demux plugin found : MPEG_PES
load_plugins: demux plugin found : OGG
load_plugins: demux plugin found : MPGAUDIO
load_plugins: demux plugin found : MPEG_BLOCK
video decoder plugin found : vfw (win32) video decoder
audio decoder plugin found : vfw (win32) audio decoder
audio decoder plugin found : a/52dec
audio decoder plugin found : dts
audio decoder plugin found : mad
spu decoder plugin found : spudec
spu decoder plugin found : dxr3-spudec
video decoder plugin found : dxr3-mpeg2
video decoder plugin found : mpeg2dec
audio decoder plugin found : lpcm
video decoder plugin found : videofill
video decoder plugin found : ffmpeg video decoder
spu decoder plugin found : sputext
audio decoder plugin found : vorbis
xine_init returning

doit être considérée comme sans erreurs ! D'ailleurs, si vous voyez cela dans votre terminal, c'est que deux fenêtres viennent de s'ouvrir : une première, nommée xine video output et l'autre représentant un lecteur de DVD. Insérez un DVD video (non crypté) dans votre lecteur, puis cliquez sur le le bouton [dvd], dans la fenêtre du lecteur de DVD ; vous devez voir apparaître :

dvd://VIDEO_TS.VOB

ou quelque chose de ce genre.

C'est parfait : ça veut dire que Xine a bien reconnu que vous aviez un DVD dans votre lecteur et qu'il veut bien le jouer. Appuyez sur le bouton "play" (la petite flèche ;-). Et hop, miracle, ça marche. Appuyez sur le bouton juste à gauche de la croix (en haut à droite) et hop, vous passez en plein écran. Un clic droit sur la fenêtre de vidualisation et le lecteur de dvd disparaît, vous laissant en plein écran. Un autre clic droit et le lecteur réapparaît. C'est simplissime. Pour choisir la bande son et/ou les sous-titres, il faut cliquer sur les flèches : celles de "SUB" pour les sous-titres (off par défaut) et celles de "AUD" pour la bande son.

Et si ça ne marche pas ?
[#preparatifs Et si vous refaisiez tout par le menu ?]

Installons le plugin xine_d4d

Le problème des DVD c'est que la plupart sont encryptés (via CSS), sous prétexte d'en empêcher la copie. Cela est faux : rien ne vous empêche de copier tel quel un DVD crypté, le décryptage s'effectuant lors de la lecture pour les DVD (c'est un peu comme si vous enregistriez une K7 vidéo de Canal+ en crypté et que vous décryptiez lors de la lecture). Ceci dit, vu me prix d'un DVD-RAM, vous feriez mieux d'achetez le DVD original !
En fait, le cryptage permet aux multinationales de verrouiller le marché, et - accessoirement - de toucher des royalties sur tout lecteur de DVD (de salon, ou tout logiciel permettant de les lire).
(C'était la séquence "politique" de cet article :-)

Dans les faits, le cryptage empêche la lecture des DVD video par notre OS favori. Chaque problème a sa solution : pour nous c'est xine_d4d et son plugin (basé sur DeCSS, le décrypteur de DVD le plus contesté de la planète).

Téléchargez le package xine_d4d_plugin-0.3.0.tar.gz (ou une version plus récente) sur le site de captain css.
Note : (21/12/2001) ce site est tombé. Cherchez "captain_css " sur google et vous devriez trouver sans problème.

Procédons à l'installation :

$ tar xzf xine_d4d_plugin-0.3.0.tar.gz
$ cd xine_d4d_plugin-0.3.0
$ ./configure
$ make
$ su
Password:xxxxxxx
# make install
# exit

That's all folks. Relancez Xine : maintenant il lit les dvd cryptés, mais pour cela il faut cliquer sur [d4d] au lieu de [dvd] dans la fenêtre de Xine (le mieux est de toujours cliquer sur [d4d], puisque ce plugin lit aussi les DVD non cryptés).
Et voilà !

Installons le plugin xine-dvdnav

Lire des DVD, c'est bien. Mais utiliser les parties interactives des DVD (menus, etc.), c'est bien mieux ! C'est ce que propose ce plugin.

Tout d'abord, il faut installer la librairie libdvdread dont on trouve la dernière version sur http://www.dtek.chalmers.se/groups/dvd/downloads.shtml (ce lien est parfois indisponible, réessayez plus tard) :

$ tar xzf libdvdread-0.9.2.tar.gz
$ cd libdvdread-0.9.2
$ ./configure --prefix=/usr/
$ make
$ su -c
Password:xxxxxxxx
# make install
# ldconfig
# exit

Ensuite, récupérez le plugin xine-dvdnav sur : http://dvd.sourceforge.net/xine-dvdnav.shtml.

Remarquez que ce plugin lit aussi les DVD cryptés (mais il semble moins stable que xine_d4d). Actuellement le support des menus fonctionne assez bien, malgré des décalages en plein écran avec la carte de décompression em8300.

J'utilise actuellement la version 0.9.5.beta (en général la version de ce plugin correspond à la version de Xine) trouvée sur http://sourceforge.net/project/showfiles.php?group_id=31346&release_id=52555.
Récupérez le package, puis décompressez-le et installez-le comme d'habitude :

$ tar zxf xine-dvdnav-0.9.5.beta.tar.gz
$ cd xine-dvdnav-0.9.5.beta
$ ./configure
$ make
$ su -c
Password:xxxxxxxx
# make install
# exit

Vous pouvez également essayer la version CVS (i.e. la toute dernière version, telle que les développeurs l'ont chez eux).
La version que j'ai testée est la version CVS du 10/09/2001. Pour cela, il faut que les outils CVS soient installés sur votre machine (sur une Mandrake 8 Freq 2, le paquetage s'appelle : cvs-1.11-5mdk.i586.rpm). On récupère le plugin par :

cvs -d:pserver:anonymous@cvs.dvd.sourceforge.net:/cvsroot/dvd login
password:<ENTREE>
cvs -z3 -d:pserver:anonymous@cvs.dvd.sourceforge.net:/cvsroot/dvd co xine-dvdnav

Puis on l'installe par :

cd xine-dvdnav
./cvscompile.sh
make
su -c "make install"

On accède au menu des DVD en cliquant sur [NAV] dans la barre de boutons de Xine (attention, si vous avez cliqué sur [dvd] ou [d4d] avant, vous ne verrez rien changer : il faut vider la liste de lecture (playing-list) de xine en cliquant sur l'icone qui ne ressemble à "rien" (la première icône à droite des icones des plugins comme [dvd]) puis sur l'icone 'poubelle' dans la boîte de dialogue "Playlist editor" qui s'ouvre.


Résumé

Résumé des étapes pour les utilisateurs avancés... et les autres ;)

Prérequis

  1. créer le lien /dev/dvd
  2. ajouter /usr/local/bin au PATH et /usr/local/lib à ld.so.conf

Carte de décompression

  1. Si vous avez une telle carte, récupérez et installez (./configure, make et make install) le package suivant :

    em8300 (http://dxr3.sourceforge.net)

  2. Sinon, passez cette étape.

Xine

  1. récupérez et installez (./configure, make et make install) les packages suivants :
    1. xine-lib (http://xine.sourceforge.net)
    2. xine-ui (http://xine.sourceforge.net)
    3. xine_d4d (http://www.geocities.com/captain_css/) (21/12/2001: lien mort, chezchez le plugin sur google...)
    4. xine-dvdnav (http://dvd.sourceforge.net/xine-dvdnav.shtml)
  2. Si vous utilisez une carte de décompression
    1. Si vous souhaitez afficher la video sur le moniteur
      1. lancez /usr/local/bin/autocal pour calibrer votre ordinateur / moniteur pour xine (une seule fois, la première fois que vous utilisez Xine),
      2. lancez xine (au moins la première fois) avec "xine -V dxr3 &",
      3. lancez dxr3view,
      4. lancez la lecture d'un film,
      5. minimisez les fenêtres de dxr3view,
      6. déplacez un peu la fenêtre de visualisation de Xine
    2. Si vous affichez la video sur une télé
      1. connectez la télé ;)
      2. si vous avez une télé PAL/SECAM, configurez Xine pour qu'il affiche en PAL (modifiez la ligne dxr3.preferred_tvmode:PAL dans ~/.xine/config)
      3. lancez la lecture du film !
  3. si vous n'avez pas de carte de décompression, il suffit de lancer "xine" et de jouer le film !

Chasse aux problèmes

(ou trouble shooting)

Je placerai ici les réponses aux problèmes les plus courants. Envoyez-nous vos questions, et si elles sont pertinentes, elles trouveront leur place ici.

Pas de son

Si vous n'entendez pas le DVD qui est en train de se jouer, peut-être n'utilisez-vous pas le bon plugin de sortie audio ?
Essayez de lancer Xine avec l'option -A, par exemple :
xine -A oss
xine -A esd
xine -A alsa
etc. (voir xine -h pour les options disponibles chez vous)

Pas d'image

Si vous n'avez pas d'image mais que vous avez le son, cela signifie que par défaut le plugin de sortie video de Xine est mauvais. Cela peut s'arranger. Demandez à Xine de vous afficher la liste des plugins video qu'il supporte :

# xine --help | grep -A 2 -- "--video-driver"

 -V, --video-driver <drv>     Sélection du pilote vidéo par nom. Pilotes
                              disponibles :
                              aadxr3 dxr3 xv SyncFB raw opengl xshm none xxmc sdl fb xvmc

Essayez alors de lancer Xine en changeant de plugin video, par exemple :

# xine -V xshm

Essayez les tous un par un pour en trouver un qui fonctionne. A priori, les meilleurs plugins sont : dxr3 (mais il faut une carte de décompression), vidix, xv, puis les autres. Essayez les dans cet ordre.

Si vous n'avez toujours pas d'image sur votre moniteur avec une carte de décompression em8300, lisez bien le paragraphe "utilisation de l'overlay".



@ Retour à la rubrique Logiciels
@ Retour à la rubrique Matériel

Copyright

© 01/03/2001 Frédéric Bonnaud, Jean-Christophe Cardot

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 4.0 :
https://creativecommons.org/licenses/by-sa/4.0/