mpv/DOCS/French/cd-dvd.html

274 lines
14 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>CD, DVD, VCD - MPlayer - Le Lecteur Multim<69>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 <20>t<EFBFBD> signal<61> que des lecteurs peuvent commettre des erreurs fr<66>quentes
<20> haute vitesse (surtout avec des CDs mal press<73>s), la diminuer peut alors
emp<6D>cher ces erreurs.</LI>
<LI>ces lecteurs g<>n<EFBFBD>rent souvent un bruit assourdissant, qu'une vitesse r<>duite
peut contribuer <20> 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<6D> <CODE>setcd</CODE>. Il fonctionne comme cela:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>hdparm -E [vitesse] [p<>riph. cdrom]</CODE></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>setcd -x [vitesse] [p<>riph. cdrom]</CODE></P>
<P>Vous pouvez <20>galement essayer</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>echo current_speed:4 &gt; /proc/ide/[p<>riph. cdrom]/settings</CODE></P>
<P>mais vous aurez besoin des privil<69>ges root. La commande suivante peut <20>galement aider:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>echo file_readahead:2000000 &gt; /proc/ide/[p<>riph. cdrom]/settings</CODE></P>
<P>pour cr<63>er 2MB de cache du fichier, ce qui est utile pour les CD-Roms endommag<61>s.
Si vous lui donnez une valeur trop haute, le lecteur ne va pas arr<72>ter de s'arr<72>ter et de repartir,
ce qui va dramatiquement diminuer les performances.
Il est <20>galement recommand<6E> d'optimiser votre lecteur de CD-ROM avec
<CODE>hdparm</CODE>:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>hdparm -d1 -a8 -u1 (p<>riph. cdrom)</CODE></P>
<P>pour permettre l'acc<63>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<EFBFBD>f<EFBFBD>rez vous <20> "<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<6E>re uniforme de fixer ces parametres (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>&nbsp;&nbsp;&nbsp;&nbsp;Vitesse: <CODE>cdcontrol [-f p<>riph.] speed [vitesse]</CODE></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;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<70>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 &lt;piste&gt; [-dvd-device &lt;p<EFBFBD>riph<EFBFBD>rique&gt;]</CODE></P>
<P>Exemple: <CODE>mplayer -dvd 1 -dvd-device /dev/hdc</CODE></P>
<P>Le p<>riph<70>rique DVD par d<>faut est <CODE>/dev/dvd</CODE>. Si votre installation
diff<66>re, faites un lien symbolique ou sp<73>cifiez le p<>riph<70>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<74>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<>parement. Nous avons
opt<70> 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<63>s CSS crack<63>es</B> <20> <CODE>libdvdcss</CODE>.
Le r<>sultat est bien plus rapide car les cl<63>s n'ont pas <20> <20>tre cass<73> <20> chaque lecture.</P>
<P>MPlayer peut <20>galement utiliser les biblioth<74>ques globales au syst<73>me <CODE>libdvdread</CODE> et
<CODE>libdvdcss</CODE>, mais cette solution n'est <B>pas</B> recommand<6E>e,
car elle peut provoquer des bugs, des incompatibilit<69>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> <20>tait d<>velopp<70>, mais
n'a jamais <20>t<EFBFBD> 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<6F>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 <20>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<EFBFBD>ralement un syst<73>me de fichier UDF sur une seule piste, qui contient des
fichiers vari<72>s (des petits fichiers .IFO et .BUK et un gros (1Go) fichier .VOB).
Ce sont de v<>ritables fichiers et ils peuvent <20>tre jou<6F>s/copi<70>s depuis le syst<73>me de
fichier mont<6E> d'un DVD non-crypt<70>.</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<70>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<70>menter la navigation
DVD. C'est <20>galement requis pour d<>crypter le contenu.</P>
<P>L'ensemble de l'ancienne m<>thode de lecture DVD avec <CODE>libcss</CODE> <20> donc besoin d'un
syst<73>me de fichier DVD mont<6E> et un acc<63>s bas<61> sur les secteurs bruts pour acc<63>der
au p<>riph<70>rique. Malheureusement vous devez <20>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<63>der
au DVD (utilis<69> dans l'ancienne m<>thode de lecture DVD avec libcss).</LI>
<LI>N'utilisez pas le pilote de syst<73>me de fichier du noyau du tout et r<>-impl<70>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<73>me de fichier udf ne sont
pas requis car ils utilisent leur propre pilote. De plus le dvd n'a pas besoin d'<27>tre
mont<6E> puisque l'acc<63>s bas<61> sur les secteurs bruts est utilis<69>.</LI>
</UL>
<P>Parfois <CODE>/dev/dvd</CODE> ne peut <20>tre lu par les utilisateurs, les auteurs de
<CODE>libdvdread</CODE> ont donc impl<70>ment<6E> une couche d'<27>mulation qui transforme les
adresses des secteurs en noms de fichier+offsets, pour <20>muler l'acc<63>s brut sur un syst<73>me
de fichier mont<6E> 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<>rip<69>rique
pour l'acc<63>s brut et regarde dans <CODE>/proc/mounts</CODE> pour obtenir le nom de
p<>riph<70>rique. Il a <20>t<EFBFBD> d<>velopp<70> pour Solaris, o<> les noms de p<>riph<70>riques sont
allou<6F>s dynamiquement.</P>
<P>Le p<>riph<70>rique DVD par d<>faut est <CODE>/dev/dvd</CODE>. Si votre installation
diff<66>re, faites un lien symbolique ou sp<73>cifiez le bon p<>riph<70>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<63> (voir plus haut). La m<>thode peut <20>tre sp<73>cifi<66>e avec la variable
d'environnement <CODE>DVDCSS_METHOD</CODE> qui peut <20>tre initialis<69>e <20>
<CODE>key</CODE>, <CODE>disk</CODE> ou <CODE>title</CODE>.</P>
<P>Si rien n'est sp<73>cifi<66> il essaie les m<>thodes suivantes
(par d<>faut: cl<63>, demande de titre):</P>
<OL>
<LI><B>cl<EFBFBD> bus:</B> Cette cl<63> est n<>goci<63>e durant la certification (un long mix
d'ioctls et d'<27>changes de cl<63> vari<72>s, trucs de crypto) et est utilis<69> pour crypter
le titre et les cl<63>s disque avant de les envoyer sur un bus non prot<6F>g<EFBFBD>
(pour emp<6D>cher les <20>coutes). La cl<63> bus est requise pour obtenir et d<>crypter
les cl<63>s disque crypt<70>es.</LI>
<LI><B>cl<EFBFBD> mise en cache:</B> MPlayer cherche une cl<63> d<>j<EFBFBD> crack<63>e
dans le r<>pertoire <CODE>~/.mplayer/DVDKeys</CODE> (rapide;).</LI>
<LI><B>cl<EFBFBD>:</B> Si aucune cl<63> n'est disponible dans le cache, MPlayer essaie de
d<>crypter la cl<63> disque avec un ensemble de cl<63>s incluses.</LI>
<LI><B>disque:</B> Si la m<>thode cl<63> <20>choue (c-a-d. pas de cl<63>s incluses),
MPlayer va cracker la cl<63> 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<6E>es. Cette
m<>thode devrait toujours fonctionner (lent).</LI>
<LI><B>demande de titre:</B> Avec les cl<63>s disque MPlayer demande les cl<63>s titre
crypt<70>es, qui sont <20> l'int<6E>rieur de <I>secteurs cach<63>s</I> en utilisant
<CODE>ioctl()</CODE>. La protection de r<>gion des lecteurs RPC-2 devrait
op<6F>rer <20> cette <20>tape et devrait <20>chouer sur ces lecteurs. Si elle r<>ussit, les
cl<63>s titre seront crypt<70>es avec les cl<63>s bus et disque.</LI>
<LI><B>titre:</B> Cette m<>thode est utilis<69> si la demande de titre a <20>chou<6F> et ne
repose sur aucun <20>change de cl<63> avec le lecteur DVD. Il utilise une attaque crypto
pour deviner la cl<63> titre directement (en trouvant un motif r<>p<EFBFBD>t<EFBFBD> dans le
contenu VOB d<>cod<6F> et en supposant que le texte en clair correspondant aux premiers
octets crypt<70>s est une continuation de ce motif).
Cette m<>thode est <20>galement connue sous le nom de "known plaintext attack"
ou "DeCSSPlus". Dans de rares cas cela peut <20>chouer car il n'y a pas assez
de donn<6E>es crypt<70>es sur le disque pour pour faire une attaque statistique
ou <20> cause des changements de cl<63> au milieu du titre. C'est la seule fa<66>on de d<>crypter
un DVD stock<63> 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<6F>gent les r<>glages de protection de zone que de fa<66>on logicielle.
Les lecteurs RPC-2 ont une protection mat<61>rielle qui ne permet que
5 changements. Il peut <20>tre requis/recommand<6E> d'upgrader le firmware en RPC-1
si vous avez un lecteur DVD RPC-2. Les upgrades firmware peuvent <20>tre trouv<75>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<70>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<70>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 &lt;track&gt; [-cdrom-device &lt;p<EFBFBD>riph.&gt;]</CODE></P>
<P>Exemple: <CODE>mplayer -vcd 2 -cdrom-device /dev/hdc</CODE></P>
<P>Le p<>riph<70>rique VCD par d<>faut est <CODE>/dev/cdrom</CODE>. Si votre installation
diff<66>re, faites un lien symbolique ou sp<73>cifiez le bon p<>riph<70>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<70>tement impl<70>ment<6E> pour ces lecteurs. Si vous avez des connaissances
dans la programmation SCSI, merci de <A HREF="../tech/patches.txt">nous aider</A>
<20> impl<70>menter un support SCSI g<>n<EFBFBD>rique pour les VCDs.</P>
<P><EFBFBD> ce propos vous pouvez extraire des donn<6E>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<6D>re piste est une petite piste de donn<6E>e de 2048 octets/secteur,
avec un syst<73>me de fichier iso9660, contenant g<>n<EFBFBD>ralement les lecteur de
VCD Windows et peut-<2D>tre d'autres infos(jpegs, texte, etc).</LI>
<LI>La seconde piste et les suivantes sont des pistes MPEG brutes (film) <20> 2324
octets/secteur, contenant des paquets de donn<6E>es MPEG PS au lieu d'un syst<73>me
de fichier. Similaires <20> des pistes audio, elles <B>ne peuvent <20>tre mont<6E>es</B>
(Avez-vous d<>j<EFBFBD> mont<6E> 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 <20>galement certains disques VCD sans la premi<6D>re piste (une seule
piste et pas de syst<73>me de fichier du tout). Ils sont quand m<>me lisibles,
mais ne peuvent pas <20>tre mont<6E>s.</LI>
</UL>
<P>A propos des fichiers .DAT:</P>
<P>Le fichier de ~600 Mo visible sur la premi<6D>re piste d'un vcd mont<6E> n'est
pas un vrai fichier! C'est ce qu'on appelle une passerelle iso, cr<63><72>e pour
permettre <20> Windows de g<>rer de telles pistes (Windows n'autorise pas l'acc<63>s
brut au p<>riph<70>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 <20>mule la lecture brute des pistes dans ce fichier. Pour
lire un fichier .DAT vous avez besoin un pilote noyau qui peut <20>tre trouv<75>
dans la version Linux de PowerDVD. Il poss<73>de un pilote de syst<73>me de fichier
iso9660 modifi<66> (vcdfs/isofs-2.4.X.o), qui est capable d'<27>muler les pistes brutes
au travers de ce fichier .DAT fant<6E>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<6E> d'utiliser l'option <CODE>-vcd</CODE> <20> la place. D'autres
possibilit<69>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>