Mercurial > mplayer.hg
view DOCS/hu/cd-dvd.html @ 12925:2abd8e24eb69
10l to the author of this longstanding and obscure bug. Each language
should be removed only once from the list.
Thanks to Chris White for pointing out that there was a problem.
author | diego |
---|---|
date | Sat, 31 Jul 2004 22:17:23 +0000 |
parents | eaf11811351c |
children |
line wrap: on
line source
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <LINK REL="stylesheet" TYPE="text/css" HREF="../default.css"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> </HEAD> <BODY> <P><B><A NAME=drives>4.1. CD-ROM meghajtók</A></B></P> <P>A Linux dokumentációjából:</P> <P>Néhány CDROM meghajtó képes szabályozni az olvasás sebességét. Jónéhány okunk lehet arra, hogy ezt kihasználjuk:</P> <UL> <LI>Magas sebességen előfordulhatnak olvasási hibák, főleg hibásan készített CD lemezek esetén.</LI> <LI>Nem elhanyagolható a sebességgel arányos zajszint sem.</LI> </UL> <P>Ajánlott a 'hdparm' vagy a 'setcd' nevű programot használni.</P> <P> <CODE>hdparm -E [sebesség] [meghajtó]</CODE></P> <P> <CODE>setcd -x [sebesség] [meghajtó]</CODE></P> <P>A következő parancs is hasznos lehet:</P> <P> <CODE>echo file_readahead:2000000 >/proc/ide/[meghajtó]/settings</CODE></P> <P>Ez 2Mb-ot olvas előre olvasáskor (karcos CDROM-oknál hasznos). Ha túl magasra állítod, a folytonosan fel-, és lepörgő meghajtó drámai teljesítménycsökkenést fog okozni. Ajánlott továbbá a 'hdparm' program használata:</P> <P> <CODE>hdparm -d1 -a8 -u1 (meghajtó)</CODE></P> <P>Ez bekapcsolja a DMA hozzáférést, előreolvasást, IRQ unmaskingot. (ha ezeket nem érted, *olvasd el a hdparm man-ját*)</P> <P>Kísérletezz a <CODE>/proc/ide/[meghajtó]/settings</CODE> file-lal további tuning céljából.</P> <P>Az SCSI meghajtóknak nincs ilyen egységes felülete ezen paraméterek állításához. <A HREF="http://das.ist.org/~georg/">Plextor SCSI meghajtókhoz</A> viszont rendelkezésre áll egy program.</P> <P>FreeBSD:</P> <P> Speed: <CODE>cdcontrol [-f meghajtó] speed [sebesség]</CODE></P> <P> DMA: <CODE>sysctl hw.ata.atapi_dma=1</CODE></P> <P><B><A NAME=dvd>4.2. DVD lejátszás</A></B></P> <P>A rendelkezésre álló opciók teljes listája a man page-ben tekinthető meg. Egy szabványos DVD lemez lejátszása a következőképpen történik:</P> <P><CODE>mplayer dvd://<sáv> [-dvd-device <egység>]</CODE></P> <P>Például: <CODE>mplayer dvd://1 -dvd-device /dev/hdc</CODE></P> <P>Az alapértelmezett DVD egység a <CODE>/dev/dvd</CODE>. Ha a rendszered ettől különbözik, egy megfelelő symlink-kel, vagy a <CODE>-dvd-device</CODE> opció használatával megoldhatod a problémát.</P> <H4>Új DVD támogatás (mpdvdkit2)</H4> <P>Az <B>MPlayer</B> a <CODE>libdvdread</CODE> és <CODE>libdvdcss</CODE> néven ismert könyvtárakat használja a DVD dekódolásához és lejátszásához. Ez a két program a <CODE>libmpdvdkit2/</CODE> alkönyvtárban található, így külön installálásuk szükségtelen és felesleges. Azért használjuk ezt a módszert mert így lehetőségünk nyílt kijavítani egy <CODE>libdvdread</CODE> bugot, és megpatchelni a <CODE>libdvdcss-t</CODE> olyan módon hogy a feltört CSS kulcsokat mentse el a <CODE>$HOME/.mplayer/DVDKeys</CODE> könyvtárba, így a következő lejátszásnál nem lesz szükség ezek újabb feltörésére.</P> <P>Az <B>MPlayer</B> képes a rendszerben már jelenlevő libdvdread és libdvdcss könyvtárakat is használni, de ez a megoldás <B>nem</B> ajánlott, hibákat eredményezhet, könyvtár-inkompatibilitást, és alacsonyabb sebességet.</P> <H4>DVD navigáció (dvdnav)</H4> <P>A <CODE>libdvdnav</CODE> támogatásának készítése folyamatban volt, de soha nem készült el. Jelenleg nem használható.</P> <H4>A DVD-k struktúrája</H4> <P>A DVD lemezek 2048 b/s szektorokat használnak ecc/crc-vel. Általában egy UDF filerendszert tartalmaznak egyetlen sávon, ami több file-t tartalmaz (kis .IFO és .BUK, és nagy (1GB) .VOB). Ezek valódi file-ok és másolhatóak/lejátszhatóak egy mountolt, nem titkosított DVD-ről.</P> <P>Az .IFO file-ok tartalmazzák a navigációs információkat (fejezet/sáv/szög/nyelv, stb), amelyek nélkülözhetetlenek a .VOB-ok értelmezéséhez. A .BUK file-ok ezek másolatai. Ezek a file-ok <B>szektorokban</B> számolnak, így a DVD navigáció helyes implementálásához ezt át kell számítani. Szükséges továbbá a file-ok titkosításának megszüntetése.</P> <P>Az imént felsorolt okok miatt a DVD támogatás szektor szintű hozzáférést igényel az egységhez. Linux alatt ehhez sajnos root jogokkal kell rendelkezni. Ennek megoldásaképp az UDF filerendszert userspace-ben kell implementálni. A libdvdread 0.9.x és a libmpdvdkit ezt csinálja. A kernel UDF meghajtójára nincs szükség. A DVD-t sem kell mountolni, mivel csak a szektor alapú hozzáférés lesz érvényben.</LI> </UL> <P>Néha a /dev/dvd felhasználók számára nem hozzáférhető, így a libdvdread fejlesztők készítettek egy emulációs réteget, amely a szektorcímeket filenév+offset-re alakítja, ezáltal emulálva a "nyers" hozzáférést akár egy mountolt filerendszeren, vagy merevlemezen.</P> <P>A libdvdread még mountolási pontot is elfogad meghajtó helyett, és a <CODE>/proc/mounts</CODE> alapján szerzi meg a meghajtó nevét. Ez a módszer Solaris-ra készült, ahol ezen nevek allokálása dinamikusan történik.</P> <P>Az alapértelmezett DVD egység a <CODE>/dev/dvd</CODE>. Ha a te rendszered ettől eltér, hozz létre egy symlink-et, vagy add meg a helyes nevet a parancssorban. Erre a <CODE>-dvd-device</CODE> opció szolgál.</P> <H4>DVD authentikáció</H4> <P>Ez, és a titkosítás feltörése egy patchelt libdvdcss-sel történik (lásd fent). A módszerek között a <CODE>DVDCSS_METHOD</CODE> környezeti változó állításával lehet választani. A lehetséges értékek: <CODE>key</CODE>, <CODE>disk</CODE>, vagy <CODE>title</CODE>.</P> <P>Ha semmi nincs megadva, a következő módszerek közül választ (alapban: key, title request):</P> <OL> <LI><B>bus key:</B> ez a kulcs az authentikáció után készül el, és ezzel történik a titkosítása a kulcsoknak mielőtt a buszra kerülnének (a hallgatózást elkerülendő).</LI> <LI><B>cached key:</B> az MPlayer keres egy már feltört, megfelelő kulcsot az <CODE>~/.mplayer/DVDKeys</CODE> könyvtárban (gyors).</LI> <LI><B>key:</B> ha nincs cache-elt kulcs, az MPlayer megpróbálja a rendelkezésre álló kulcsokkal feltörni a lemezt.</LI> <LI><B>disk:</B> ha a key módszer nem jár sikerrel, az MPlayer megpróbálhatja egy brute force algoritmussal feltörni a lemezt. Ez a folyamat erősen igényli a CPU-t, és 64Mb memóriát is átmeneti adattárolásra. Ez a metódus mindig működik (lassú).</LI> <LI><B>title request:</B> a lemez kulccsal az MPlayer feltöri a title kulcsot, amik <I>rejtett szektorokban</I> tárolódnak. Az RPC-2 meghajtók régióellenőrzése is ilyenkor történik, ezért az ilyen meghajtókon hibát jelezhet. Ha sikerült, a title kulcs feltörése következik a bus és disk kulcsokkal.</LI> <LI><B>title:</B> ez a módszer lesz kipróbálva, ha a title request sikertelen volt. Itt nincs szükség kulccserére a DVD meghajtóval. Ismétlődő minták alapján megpróbálja kitalálni a title kulcsot. Ritka esetekben sikertelen lehet, például ha nincs elég titkosított adat, vagy a title közepén megváltozik a kulcs. Mindenesetre ez az egyetlen módszer egy merevlemezen tárolt DVD feltörésére, vagy egy helytelen régióval rendelkező RPC2 meghajtón (lassú).</LI> </OL> <P>Az RPC-1-es DVD meghajtók a régióbeállításokat csak a szoftveres DVD lejátszókkal tudják korlátozni, az RPC-2 meghajtók hardveresen vannak limitálva 5 változtatásra. Ajánlott lehet a firmware-t RPC-1-re upgradelni, ha RPC-2-es meghajtód van. Ezek az upgrade-k <A HREF="http://www.firmware-flash.com">itt</A> találhatóak. Ha nincs firmware upgrade a meghajtódhoz, használd a <A HREF="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">regionset</A> parancsot hogy Linux alatt is át tudd állítani a meghajtód régiókódját. <B>Vigyázz:</B> csak 5 lehetőséged van rá.</P> <P><B><A NAME="vcd">4.3. VCD lejátszás</A></B></P> <P>A rendelkezésre álló opciók teljes listája a man page-ben tekinthető meg.</P> <H4>VCD struktúra</H4> <P>A VCD lemezek 2 vagy több sávból állnak:</P> <UL> <LI>Az első sáv egy pár MB-os 2048 byte/szektor méretű adatsáv, egy iso9660 filerendszerrel. Ez általában win32-es VCD lejátszót, vagy más információkat tartalmaz (jpeg, szöveg, stb).</LI> <LI> <LI>A második (és a többi) sáv nyers 2324 byte/szektor méretű MPEG sáv, amely nem filerendszert hanem nyers MPEG-PS adatot tartalmaz, egy csomagot szektoronként. Ezeket a sávokat <B>nem lehet mountolni</B>!</LI> <LI>Léteznek VCD lemezek amelyeken nincs is első sáv (abszolut filerendszer nélkül). Ezek is lejátszhatóak, de nem mountolhatóak.</LI> </UL> <P>A .DAT file-okról:</P> <P>Azok a ~600Mb-os file-ok amik a mountolt VCD-k elso sávján vannak, nem igazi file-ok! Ez egy úgynevezett ISO átjáró, amivel a Windows programok hozzáférhetnek az ilyen file-okhoz (mivel vinnyózon a programok nem tudnak hozzáférni közvetlenül az eszközhöz). Linux alatt nem tudod másolni vagy lejátszani az ilyen file-okat, mert szemetet tartalmaznak. Windows alatt azért lehetséges, mert az iso9660 meghajtója ezeken a file-okon keresztül emulálja a közvetlen lemezhozzáférést.</P> <P>Az alapértelmezett VCD egység a <CODE>/dev/cdrom</CODE>. Ha a beállításod ettől eltér, készíts egy symlink-et, vagy add meg paraméterként a <CODE>-cdrom-device</CODE> opcióval.</P> <P><B>Megjegyzés:</B> legalábbis a Plextor és Toshiba SCSI CD-ROM meghajtókról ismert hogy nagyon lassan játszanak le VCD-ket. Ennek oka, hogy a CDROMREADRAW ioctl nincs teljesen implementálva ezeken a meghajtókon. Ha értesz az SCSI programozásához, <A HREF="../tech/patches.txt">segíts</A> a VCD-k SCSI-n történő támogatásában.</P> <P>Addigis VCD-ről az adatot a <A HREF="http://140.132.1.204/OS/Linux/packages/X/viewers/readvcd/">readvcd</A> programmal lehet leszedni, az így keletkező file-t pedig az MPlayer is lejátsza.</P> <H4>A VCD-k struktúrája</H4> <UL> <LI>Az első sáv egy 2048 byte/sector méretú szabvány sáv iso9660 filerendszerrel, általában Windows-os VCD lejátszó programot tartalmaz, néha egyéb információ (képek, szöveg, stb).</LI> <LI>A második, és utána következő sávok nyers 2324 byte/sector méretű MPEG (film) sávok, mindegyik egy-egy MPEG-PS adat/sector-t tartalmaz filerendszer helyett. Hasonlóan az audio CD sávokhoz, ezeket a sávokat <B>sem lehet mountolni</B> (Mountoltál már valaha audio CD-t hogy lejátszd?). Mivel a legtöbb film ebben a sávban van, a <CODE>vcd://2</CODE> opciót kell használnod.</LI> <LI>Léteznek VCD lemezek amelyeken nincs rajta az első sáv (tehát csak egyetlen sávot tartalmaznak, filerendszer nélkül). Ezek is lejátszhatóak, de nem mountolhatóak.</LI> </UL> <H4>A .DAT file-okról:</H4> <P>A ~600Mb-os fileok amik a mountolt Video CD-k első sávján találhatóak nem igazi file-ok! Ez az úgynevezett ISO gateway, amiknek a célja hogy Windows-os applikációk is hozzá tudjanak férni az MPEG sávokhoz (mivel a Windows egyáltalán nem engedi a nyers hozzáférést applikációk számára). Linux alatt ezek a file-ok nem megtekinhetők, sem pedig lejátszhatók. Windows alatt azért lehetséges mert az iso9660 meghajtója emulálja a nyers olvasást ezekre a fileokra. A .DAT file-ok lejátszására kernel patch-re van szükséged, melyet a PowerDVD Linux-os verziója tartalmaz. Ez egy módosított iso9660 filerendszer meghajtót tartalmaz (<CODE>vcdfs/isofs-2.4.X.o</CODE>), mely szintén képes ilyen emulációra. Ha ezzel a meghajtóval mountolod a lemezt, képes leszel az ilyen file-ok másolására, lejátszására. De a standard kernel meghajtójával <B>nem</B>. Egyébkéntis használd a <CODE>-vcd</CODE> opciót inkább. A VCD-k másolására egyéb alternatíva az új <A HREF="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</A> kernel meghajtó (nem része a hivatalos kernelnek), amely a CD <I>session-okat</I> image file-ként mutatja, valamint a <A HREF="http://cdrdao.sourceforge.net/">cdrdao</A>, egy bitről-bitre grabbelő CD másoló alkalmazás.</P> </BODY> </HTML>