mirror of
https://github.com/mpv-player/mpv
synced 2024-12-22 23:02:37 +00:00
4e8a504371
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9333 b3059339-0415-0410-9bf9-f77b7e298cf2
274 lines
14 KiB
HTML
274 lines
14 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML>
|
|
|
|
<HEAD>
|
|
<TITLE>CD, DVD, VCD - MPlayer - Le Lecteur Multimédia pour Linux</TITLE>
|
|
<LINK REL="stylesheet" TYPE="text/css" HREF="default.css">
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
|
</HEAD>
|
|
|
|
<BODY>
|
|
|
|
|
|
<H2><A NAME="drives">4.1 lecteurs CD/DVD</A></H2>
|
|
|
|
<P>Extrait de la documentation GNU/Linux :</P>
|
|
|
|
<P>Certains lecteurs de CD-ROM sont capables de changer leur vitesse de lecture.
|
|
Il y a plusieurs raisons possibles pour changer cette vitesse:</P>
|
|
|
|
<UL>
|
|
<LI>Il a été signalé que des lecteurs peuvent commettre des erreurs fréquentes
|
|
à haute vitesse (surtout avec des CDs mal pressés), la diminuer peut alors
|
|
empêcher ces erreurs.</LI>
|
|
<LI>ces lecteurs génèrent souvent un bruit assourdissant, qu'une vitesse réduite
|
|
peut contribuer à diminuer.</LI>
|
|
</UL>
|
|
|
|
<P>Vous pouvez réduire la vitesse des lecteurs de CD-ROM IDE avec <CODE>hdparm</CODE>
|
|
ou avec un programme nommé <CODE>setcd</CODE>. Il fonctionne comme cela:</P>
|
|
|
|
<P> <CODE>hdparm -E [vitesse] [périph. cdrom]</CODE></P>
|
|
|
|
<P> <CODE>setcd -x [vitesse] [périph. cdrom]</CODE></P>
|
|
|
|
<P>Vous pouvez également essayer</P>
|
|
|
|
<P> <CODE>echo current_speed:4 > /proc/ide/[périph. cdrom]/settings</CODE></P>
|
|
|
|
<P>mais vous aurez besoin des privilèges root. La commande suivante peut également aider:</P>
|
|
|
|
<P> <CODE>echo file_readahead:2000000 > /proc/ide/[périph. cdrom]/settings</CODE></P>
|
|
|
|
<P>pour créer 2MB de cache du fichier, ce qui est utile pour les CD-Roms endommagés.
|
|
Si vous lui donnez une valeur trop haute, le lecteur ne va pas cesser de s'arrêter et de repartir,
|
|
ce qui va dramatiquement diminuer les performances.
|
|
Il est également recommandé d'optimiser votre lecteur de CD-ROM avec
|
|
<CODE>hdparm</CODE>:</P>
|
|
|
|
<P> <CODE>hdparm -d1 -a8 -u1 (périph. cdrom)</CODE></P>
|
|
|
|
<P>pour permettre l'accès DMA, le cache en lecture, et l'IRQ unmasking. (lisez la page de
|
|
man de <CODE>hdparm</CODE> pour plus d'explications).</P>
|
|
|
|
<P>Référez vous à "<CODE>/proc/ide/[périph. cdrom]/settings</CODE>" pour optimiser correctement votre
|
|
lecteur CD-ROM</P>
|
|
|
|
<P>Les lecteurs SCSI n'ont pas une manière uniforme de fixer ces paramètres (Vous en
|
|
connaissez une ? Dites-la nous!) Il y a un outil qui fonctionne pour les
|
|
<A HREF="http://das.ist.org/~georg/">lecteurs SCSI Plextor</A>.</P>
|
|
|
|
<P>FreeBSD:</P>
|
|
|
|
<P> Vitesse: <CODE>cdcontrol [-f périph.] speed [vitesse]</CODE></P>
|
|
<P> DMA: <CODE>sysctl hw.ata.atapi_dma=1</CODE></P>
|
|
|
|
|
|
<H2><A NAME="dvd">4.2. Lecture de DVDs</A></H2>
|
|
|
|
<P>Pour voir la liste complète des options disponibles, veuillez lire la page de man.
|
|
La syntaxe des Digital Versatile Disc (DVD) est la suivante:</P>
|
|
|
|
<P><CODE>mplayer -dvd <piste> [-dvd-device <périphérique>]</CODE></P>
|
|
|
|
<P>Exemple: <CODE>mplayer -dvd 1 -dvd-device /dev/hdc</CODE></P>
|
|
|
|
<P>Le périphérique DVD par défaut est <CODE>/dev/dvd</CODE>. Si votre installation
|
|
diffère, faites un lien symbolique ou spécifiez le périphérique correct en ligne
|
|
de commande avec l'option <CODE>-dvd-device</CODE>.</P>
|
|
|
|
<H4>Nouvelle méthode de lecture DVD (mpdvdkit2)</H4>
|
|
|
|
<P>MPlayer utilise <CODE>libdvdread</CODE> et <CODE>libdvdcss</CODE> pour
|
|
le décryptage et la lecture des DVDs. Ces deux bibliothèques sont incluses
|
|
dans le sous-répertoire <CODE>libmpdvdkit2/</CODE> du répertoire source de
|
|
MPlayer, vous n'avez donc pas besoin de les installer séparément. Nous avons
|
|
opté pour cette solution car nous devions corriger un bug de <CODE>libdvdread</CODE>, et
|
|
appliquer un patch qui ajoute <B>un cache pour les clés CSS crackées</B> à <CODE>libdvdcss</CODE>.
|
|
Le résultat est bien plus rapide car les clés n'ont pas à être cassé à chaque lecture.</P>
|
|
|
|
<P>MPlayer peut également utiliser les bibliothèques globales au système <CODE>libdvdread</CODE> et
|
|
<CODE>libdvdcss</CODE>, mais cette solution n'est <B>pas</B> recommandée,
|
|
car elle peut provoquer des bugs, des incompatibilités de librairies,
|
|
et une vitesse moins importante.</P>
|
|
|
|
<H4>Navigation DVD (dvdnav)</H4>
|
|
|
|
<P>Le support pour la navigation DVD via <CODE>dvdnav</CODE> était développé, mais
|
|
n'a jamais été vraiment fini et n'est actuellement plus maintenu. Qui sait, il
|
|
pourrait même compiler.</P>
|
|
|
|
<H4>Ancienne méthode de lecture DVD - OPTIONNELLE</H4>
|
|
|
|
<P>Utile si vous voulez lire des VOBs encodés depuis le <B>disque dur</B>.
|
|
Compilez et installez <B>libcss</B> 0.0.1 (pas plus récent) pour cela
|
|
(Si MPlayer ne le détecte pas, utilisez l'option <CODE>-csslib /chemin/de/libcss.so</CODE>).
|
|
Pour l'utiliser, vous devez être root, utilisez un binaire de MPlayer suid root, ou
|
|
laissez MPlayer utiliser le wrapper fibmap_mplayer suid-root.</P>
|
|
|
|
<H4>structure d'un DVD</H4>
|
|
|
|
<P>Les disques DVD utilisent tous des secteurs de 2048 octets par secondes avec ECC/CRC.
|
|
Ils ont généralement un système de fichier UDF sur une seule piste, qui contient des
|
|
fichiers variés (des petits fichiers .IFO et .BUK et un gros (1Go) fichier .VOB).
|
|
Ce sont de véritables fichiers et ils peuvent être joués/copiés depuis le système de
|
|
fichier monté d'un DVD non-crypté.</P>
|
|
|
|
<P>Les fichiers .IFO contiennent les infos de navigation dans le film (carte des
|
|
chapitres/titres/angles, table des langues, etc) et sont requis pour lire et
|
|
interpréter le contenu des .VOB (le film). Les fichiers .BUK sont des backups
|
|
de ces fichiers. Ils utilisent des <B>secteur</B> partout, donc vous avez besoin
|
|
d'utiliser un adressage brut des secteurs sur le disque pour implémenter la navigation
|
|
DVD. C'est également requis pour décrypter le contenu.</P>
|
|
|
|
<P>L'ensemble de l'ancienne méthode de lecture DVD avec <CODE>libcss</CODE> à donc besoin d'un
|
|
système de fichier DVD monté et un accès basé sur les secteurs bruts pour accéder
|
|
au périphérique. Malheureusement vous devez être root (sous Linux) pour obtenir l'adresse
|
|
du secteur d'un fichier. Vous avez alors les deux solutions suivantes:</P>
|
|
|
|
<UL>
|
|
<LI>Soyez root ou utilisez un binaire de mplayer suid-root.</LI>
|
|
<LI>Laissez MPlayer appeler le wrapper fibmap_mplayer suid-root pour accéder
|
|
au DVD (utilisé dans l'ancienne méthode de lecture DVD avec libcss).</LI>
|
|
<LI>N'utilisez pas le pilote de système de fichier du noyau du tout et ré-implémentez
|
|
le dans l'espace utilisateur. <CODE>libdvdread</CODE> 0.9.x et <CODE>libmpdvdkit</CODE>
|
|
le font (nouvelle méthode de lecture DVD). Les pilotes du système de fichier udf ne sont
|
|
pas requis car ils utilisent leur propre pilote. De plus le dvd n'a pas besoin d'être
|
|
monté puisque l'accès basé sur les secteurs bruts est utilisé.</LI>
|
|
</UL>
|
|
|
|
<P>Parfois <CODE>/dev/dvd</CODE> ne peut être lu par les utilisateurs, les auteurs de
|
|
<CODE>libdvdread</CODE> ont donc implémenté une couche d'émulation qui transforme les
|
|
adresses des secteurs en noms de fichier+offsets, pour émuler l'accès brut sur un système
|
|
de fichier monté ou même sur un disque dur.</P>
|
|
|
|
<P><CODE>libdvdread</CODE> accepte même le point de montage au lieu du nom de périphérique
|
|
pour l'accès brut et regarde dans <CODE>/proc/mounts</CODE> pour obtenir le nom de
|
|
périphérique. Il a été développé pour Solaris, où les noms de périphériques sont
|
|
alloués dynamiquement.</P>
|
|
|
|
<P>Le périphérique DVD par défaut est <CODE>/dev/dvd</CODE>. Si votre installation
|
|
diffère, faites un lien symbolique ou spécifiez le bon périphérique en ligne de
|
|
commande avec l'option <CODE>-dvd-device</CODE>.</P>
|
|
|
|
<H4>Certification DVD</H4>
|
|
|
|
<P>La nouvelle méthode de certification et de décryptage est fait par un libdvdcss
|
|
patché (voir plus haut). La méthode peut être spécifiée avec la variable
|
|
d'environnement <CODE>DVDCSS_METHOD</CODE> qui peut être initialisée à
|
|
<CODE>key</CODE>, <CODE>disk</CODE> ou <CODE>title</CODE>.</P>
|
|
|
|
<P>Si rien n'est spécifié il essaie les méthodes suivantes
|
|
(par défaut: clé, demande de titre):</P>
|
|
|
|
<OL>
|
|
<LI><B>clé bus:</B> Cette clé est négociée durant la certification (un long mix
|
|
d'ioctls et d'échanges de clé variés, trucs de crypto) et est utilisé pour crypter
|
|
le titre et les clés disque avant de les envoyer sur un bus non protégé
|
|
(pour empêcher les écoutes). La clé bus est requise pour obtenir et décrypter
|
|
les clés disque cryptées.</LI>
|
|
<LI><B>clé mise en cache:</B> MPlayer cherche une clé déjà crackée
|
|
dans le répertoire <CODE>~/.mplayer/DVDKeys</CODE> (rapide;).</LI>
|
|
<LI><B>clé:</B> Si aucune clé n'est disponible dans le cache, MPlayer essaie de
|
|
décrypter la clé disque avec un ensemble de clés incluses.</LI>
|
|
<LI><B>disque:</B> Si la méthode clé échoue (c-a-d. pas de clés incluses),
|
|
MPlayer va cracker la clé disque avec un algorithme <I>brute force</I>.
|
|
Ce processus est intensif pour le CPU et requiert 60 Mo de mémoire (table
|
|
de hachage 32Bit de 16M) pour stocker temporairement les données. Cette
|
|
méthode devrait toujours fonctionner (lent).</LI>
|
|
<LI><B>demande de titre:</B> Avec les clés disque MPlayer demande les clés titre
|
|
cryptées, qui sont à l'intérieur de <I>secteurs cachés</I> en utilisant
|
|
<CODE>ioctl()</CODE>. La protection de région des lecteurs RPC-2 devrait
|
|
opérer à cette étape et devrait échouer sur ces lecteurs. Si elle réussit, les
|
|
clés titre seront cryptées avec les clés bus et disque.</LI>
|
|
<LI><B>titre:</B> Cette méthode est utilisé si la demande de titre a échoué et ne
|
|
repose sur aucun échange de clé avec le lecteur DVD. Il utilise une attaque crypto
|
|
pour deviner la clé titre directement (en trouvant un motif répété dans le
|
|
contenu VOB décodé et en supposant que le texte en clair correspondant aux premiers
|
|
octets cryptés est une continuation de ce motif).
|
|
Cette méthode est également connue sous le nom de "known plaintext attack"
|
|
ou "DeCSSPlus". Dans de rares cas cela peut échouer car il n'y a pas assez
|
|
de données cryptées sur le disque pour pour faire une attaque statistique
|
|
ou à cause des changements de clé au milieu du titre. C'est la seule façon de décrypter
|
|
un DVD stocké sur le disque dur ou un DVD avec une mauvaise zone sur un lecteur RPC2
|
|
(lent).</LI>
|
|
</OL>
|
|
|
|
<P>Les lecteurs DVD RPC-1 ne protègent les réglages de protection de zone que de façon logicielle.
|
|
Les lecteurs RPC-2 ont une protection matérielle qui ne permet que
|
|
5 changements. Il peut être requis/recommandé d'upgrader le firmware en RPC-1
|
|
si vous avez un lecteur DVD RPC-2. Les upgrades firmware peuvent être trouvées sur cette
|
|
<A HREF="http://www.firmware-flash.com">page de firmware</A>. Si il n'y a
|
|
pas d'upgrade de firmware disponible pour votre périphérique, utilisez l'
|
|
<A HREF="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">outil de
|
|
réglage de zone</A> pour changer le code de zone de votre lecteur DVD (sous Linux).
|
|
<B>Attention:</B> Vous ne pouvez régler la zone que 5 fois.</P>
|
|
|
|
|
|
<H2><A NAME="vcd">4.3 Lecture de VCDs</A></H2>
|
|
|
|
<P>Pour voir la liste complète des options disponibles, veuillez lire la page de man.
|
|
La syntaxe pour un Video CD standard (VCD) est la suivante:</P>
|
|
|
|
<P><CODE>mplayer -vcd <track> [-cdrom-device <périph.>]</CODE></P>
|
|
|
|
<P>Exemple: <CODE>mplayer -vcd 2 -cdrom-device /dev/hdc</CODE></P>
|
|
|
|
<P>Le périphérique VCD par défaut est <CODE>/dev/cdrom</CODE>. Si votre installation
|
|
diffère, faites un lien symbolique ou spécifiez le bon périphérique en ligne de
|
|
commande avec l'option <CODE>-cdrom-device</CODE>.</P>
|
|
|
|
<P><B>Note:</B> Au moins les CD-ROM SCSI Plextor et certains Toshiba ont d'horribles
|
|
performances durant la lecture de VCDs. C'est parce que l'ioctl CDROMREADRAW
|
|
n'est pas complètement implémenté pour ces lecteurs. Si vous avez des connaissances
|
|
dans la programmation SCSI, merci de <A HREF="../tech/patches.txt">nous aider</A>
|
|
à implémenter un support SCSI générique pour les VCDs.</P>
|
|
|
|
<P>À ce propos vous pouvez extraire des données d'un VCD avec
|
|
<A HREF="http://140.132.1.204/OS/Linux/packages/X/viewers/readvcd/">readvcd</A>
|
|
et lire le fichier obtenu avec MPlayer.</P>
|
|
|
|
<H4>Structure d'un VCD</H4>
|
|
|
|
<P>Les disques VCD contiennent une piste ou plus:</P>
|
|
|
|
<UL>
|
|
<LI>La première piste est une petite piste de donnée de 2048 octets/secteur,
|
|
avec un système de fichier iso9660, contenant généralement les lecteur de
|
|
VCD Windows et peut-être d'autres infos(jpegs, texte, etc).</LI>
|
|
<LI>La seconde piste et les suivantes sont des pistes MPEG brutes (film) à 2324
|
|
octets/secteur, contenant des paquets de données MPEG PS au lieu d'un système
|
|
de fichier. Similaires à des pistes audio, elles <B>ne peuvent être montées</B>
|
|
(Avez-vous déjà monté un CD audio pour le lire ?).
|
|
Comme la plupart des films sont sur cette piste, vous devriez essayer
|
|
<CODE>-vcd 2</CODE> en premier.</LI>
|
|
<LI>Il existe également certains disques VCD sans la première piste (une seule
|
|
piste et pas de système de fichier du tout). Ils sont quand même lisibles,
|
|
mais ne peuvent pas être montés.</LI>
|
|
</UL>
|
|
|
|
<P>A propos des fichiers .DAT:</P>
|
|
|
|
<P>Le fichier de ~600 Mo visible sur la première piste d'un vcd monté n'est
|
|
pas un vrai fichier! C'est ce qu'on appelle une passerelle iso, créée pour
|
|
permettre à Windows de gérer de telles pistes (Windows n'autorise pas l'accès
|
|
brut au périphérique du tout). Sous linux, vous ne pouvez pas copier ou lire
|
|
de telles pistes (elle contiennent des ordures). Sous Windows c'est possible
|
|
car son pilote iso9660 émule la lecture brute des pistes dans ce fichier. Pour
|
|
lire un fichier .DAT vous avez besoin un pilote noyau qui peut être trouvé
|
|
dans la version Linux de PowerDVD. Il possède un pilote de système de fichier
|
|
iso9660 modifié (vcdfs/isofs-2.4.X.o), qui est capable d'émuler les pistes brutes
|
|
au travers de ce fichier .DAT fantôme. Si vous montez le disque en utilisant
|
|
leur pilote, vous pouvez copier et même lire les fichiers .DAT avec mplayer.
|
|
Mais cela ne <B>fonctionnera pas</B> avec le pilote iso9660 standard du noyau!
|
|
Il est recommandé d'utiliser l'option <CODE>-vcd</CODE> à la place. D'autres
|
|
possibilités pour la copie de VCD sont le nouveau pilote noyau
|
|
<A HREF="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</A> (qui ne fait pas partie
|
|
du noyau officiel) qui montre les <I>sessions</I> du CD en temps que fichiers image) et
|
|
<A HREF="http://cdrdao.sourceforge.net/">cdrdao</A>, une application d'enregistrement/copie
|
|
bit-a-bit).</P>
|
|
|
|
|
|
</BODY>
|
|
</HTML>
|