A Linux dokumentációjából:
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:
Ajánlott a 'hdparm' vagy a 'setcd' nevű programot használni.
hdparm -E [sebesség] [meghajtó]
setcd -x [sebesség] [meghajtó]
A következő parancs is hasznos lehet:
echo file_readahead:2000000 >/proc/ide/[meghajtó]/settings
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:
hdparm -d1 -a8 -u1 (meghajtó)
Ez bekapcsolja a DMA hozzáférést, előreolvasást, IRQ unmaskingot. (ha ezeket nem érted, *olvasd el a hdparm man-ját*)
Kísérletezz a /proc/ide/[meghajtó]/settings
file-lal további tuning céljából.
Az SCSI meghajtóknak nincs ilyen egységes felülete ezen paraméterek állításához. Plextor SCSI meghajtókhoz viszont rendelkezésre áll egy program.
FreeBSD:
Speed: cdcontrol [-f meghajtó] speed [sebesség]
DMA: sysctl hw.ata.atapi_dma=1
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:
mplayer dvd://<sáv> [-dvd-device <egység>]
Például: mplayer dvd://1 -dvd-device /dev/hdc
Az alapértelmezett DVD egység a /dev/dvd
. Ha a rendszered ettől
különbözik, egy megfelelő symlink-kel, vagy a -dvd-device
opció használatával megoldhatod a problémát.
Az MPlayer a libdvdread
és libdvdcss
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 libmpdvdkit2/
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 libdvdread
bugot, és megpatchelni a libdvdcss-t
olyan módon hogy a
feltört CSS kulcsokat mentse el a $HOME/.mplayer/DVDKeys
könyvtárba, így a következő lejátszásnál nem lesz szükség ezek újabb
feltörésére.
Az MPlayer képes a rendszerben már jelenlevő libdvdread és libdvdcss könyvtárakat is használni, de ez a megoldás nem ajánlott, hibákat eredményezhet, könyvtár-inkompatibilitást, és alacsonyabb sebességet.
A libdvdnav
támogatásának készítése folyamatban volt, de
soha nem készült el. Jelenleg nem használható.
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.
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 szektorokban 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.
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.
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.
A libdvdread még mountolási pontot is elfogad meghajtó helyett, és a
/proc/mounts
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.
Az alapértelmezett DVD egység a /dev/dvd
. Ha a te
rendszered ettől eltér, hozz létre egy symlink-et, vagy add meg a
helyes nevet a parancssorban. Erre a -dvd-device
opció
szolgál.
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 DVDCSS_METHOD
környezeti változó
állításával lehet választani. A lehetséges értékek: key
,
disk
, vagy title
.
Ha semmi nincs megadva, a következő módszerek közül választ (alapban: key, title request):
~/.mplayer/DVDKeys
könyvtárban (gyors).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 itt találhatóak. Ha nincs firmware upgrade a meghajtódhoz, használd a regionset parancsot hogy Linux alatt is át tudd állítani a meghajtód régiókódját. Vigyázz: csak 5 lehetőséged van rá.
A rendelkezésre álló opciók teljes listája a man page-ben tekinthető meg.
A VCD lemezek 2 vagy több sávból állnak:
A .DAT file-okról:
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.
Az alapértelmezett VCD egység a /dev/cdrom
. Ha a beállításod
ettől eltér, készíts egy symlink-et, vagy add meg paraméterként
a -cdrom-device
opcióval.
Megjegyzés: 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, segíts a VCD-k SCSI-n történő támogatásában.
Addigis VCD-ről az adatot a readvcd programmal lehet leszedni, az így keletkező file-t pedig az MPlayer is lejátsza.
vcd://2
opciót kell használnod.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
(vcdfs/isofs-2.4.X.o
), 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 nem.
Egyébkéntis használd a -vcd
opciót inkább. A VCD-k másolására
egyéb alternatíva az új
cdfs kernel meghajtó
(nem része a hivatalos kernelnek), amely a CD session-okat image
file-ként mutatja, valamint a
cdrdao, egy bitről-bitre
grabbelő CD másoló alkalmazás.