A használható kapcsolók teljes listájáért olvasd el a man oldalt. A szintaxis egy szabványos Digital Versatile Disc (DVD)-hez a következő:
mplayer dvd://<sáv>
[-dvd-device<eszköz>
]
Például:
mplayer dvd://1
-dvd-device/dev/hdc
Ha az MPlayert dvdnav támogatással fordítottad, a szintaxis ugyan ez, kivéve, hogy dvdnav://-ot kell használnod a dvd:// helyett.
Az alapértelmezett DVD eszköz a /dev/dvd. Ha a te beállításod különböző, készíts egy szimbolikus linket vagy add meg a megfelelő eszközt a parancssorban a -dvd-device kapcsolóval.
Az MPlayer fel tudja használni a libdvdread
-ot
és a libdvdcss
-t is a DVD-k dekódolásához és lejátszásához.
Ez a két függvénykönyvtár a libmpdvdkit2
alkönyvtárban található az MPlayer forrás fájában,
nem kell őket külön telepítened. Használhatod a két függvénykönyvtár rendszer-szintű
verzióját is, de ez nem javasolt, mivel hibák forrása
lehet, a függvénykönyvtárak közötti inkompatibilítást és sebességcsökkenést okozhat.
Ha DVD dekódolási problémáid vannak, próbáld meg letiltani a supermount-ot vagy bármilyen más hasonló dolgot. Néhány RPC-2 vezérlő régió kód beállítását is megköveteli.
DVD struktúra. A DVD lemezeken 2048 bájtos szektorok vannak ECC/CRC-vel. Legtöbbször UDF fájlrendszer van egyetlen sávon, ami különböző fájlokat tartalmaz (kicsi .IFO és .BUK fájlok, valamint nagy (1 GB) .VOB fájlok). Ezek igazi fájlok, amik másolhatóak/lejátszhatóak egy nem titkosított DVD mountolt fájlrendszeréről.
Az .IFO fájlok a filmben történő navígációhoz tartalmaznak információkat (fejezet/cím/szög térkép, nyelvtáblázat, stb.) és szökségesek a .VOB tartalmának olvasásához és értelmezéséhez (film). A .BUK fájlok ezek biztonsági mentései. Szektorokat használnak mindenhol, így a lemezen nyers szektor címzést kell használni a DVD navigáláshoz és a tartalom dekódolásához.
A DVD támogatás nyers szektor-alapú elérést igényel az eszközhöz. Sajnos (Linux
alatt) root-nak kell lenned, hogy megkapd egy fájl szektor címét. Emiatt egyáltalán
nem használjuk a kernel fájlrendszer vezérlőjét, inkább felhasználói szinten
(userspace) oldottuk meg. A libdvdread
0.9.x és a
libmpdvdkit
teszi ezt lehetővé. A kernel UDF fájlrendszer
vezérlője nem kell, mivel saját beépített UDF fájlrendszer vezérlőjük van.
Sőt, még mountolni sem kell a DVD-t, mivel csak nyers szektor-alapú címzést
használnak.
Néha a /dev/dvd nem olvasható a felhasználók által, így
a libdvdread
szerzői egy emulációs réteget készítettek,
ami átalakítja a szektor címeket fájlnév+eltolásra, így nyers elérést emulál a
mountolt fájlrendszeren vagy akár a merevlemezen is.
A libdvdread
elfogadja a mountolás helyét is az eszköz
neve helyett a nyers címzéshez, az eszköz nevét a /proc/mounts
fájlból olvassa ki. Solaris-ra lett kifejlesztve, ahol az eszköz nevek dinamikusan
vannak lefoglalva.
Az alapértelmezett DVD eszköz a /dev/dvd. Ha a te beállításaid különbözőek, készíts egy szimbolikus linket vagy add meg a megfelelő eszközt a parancssorban a -dvd-device kapcsolóval.
DVD hitelesítés.
A hitelesítés és az új formájú DVD támogatás dekódolási metódusának támogatását a
patchelt libdvdcss
biztosítja (lásd feljebb). A módszert
a DVDCSS_METHOD
környezeti változó segítségével előírhatod, beállítható
kulcsra, lemezre vagy sávra.
Ha semmi sincs megadva, akkor a következő módon próbálkozik (alapértelmezett: kulcs, sáv kérés):
busz kulcs: Ez a kulcs a hitelesítés során kerül megállapításra (ioctl-ek és egyéb kulcs cserék hosszú sora, titkosítási cucc) és a sáv és a lemez kulcsok titkosítására használják, mielőtt kiküldenék a védtelen buszra (hogy megelőzzés az eavesdropping-ot). A busz kulcs szükséges a titkosított lemez kulcs megszerzéséhez és visszakódolásához.
cache-elt kulcs: Az MPlayer végignézi a már cache-elt sáv kulcsokat, amik a ~/.mplayer/DVDKeys könyvtárban tárolódnak (gyors ;).
kulcs: Ha nincs cache-lt kulcs, az MPlayer megpróbálja visszakódolni a lemez kulcsot a beépített lejátszó kulcsok gyűjteményének segítségével.
lemez: Ha a kulcs metódus sikertelen (pl. nincs beépített lejátszó kulcs), az MPlayer feltöri a lemez kulcsot egy brute force algoritmussal. Ez az eljárás intenzív CPU használatot eredményez és 64 MB memóriát igényel (16M 32Bit-es bejegyzések a hash táblához) az ideiglenes adatok tárolásához. Ez a módszer mindig működik (lassú).
sáv kérés: a lemez kulccsal az
MPlayer az ioctl()
segítségével
lekéri a titkosított sáv kulcsokat, amik rejtett szektorokban találhatók.
Az RPC-2 meghajtók régió védelme is ebben a lépésben van megvalósítva, ezért
ez hibázhat ilyen meghajtókon. Ha sikerül, a sáv kulcsokat dekódolja a busz és
lemez kulccsal.
sáv: Ezt a metódust akkor használjuk, ha a sáv kérés sikertelen és nem a DVD meghajtóval történő kulcs cserén alapul. Ez egy crypto támadást indít, hogy kitalálja közvetlenül a sáv kulcsot (egy, a visszakódolt VOB tartalomban ismétlődő minta megkeresésével, azt feltételezve, hogy az első titkosított bájtnak megfelelő sima szöveg ezen minta folytatása). Ezt a metódust úgy is ismerik, mint "ismert tiszta szöveg támadás" vagy "DeCSSPlus". Ritka esetben sikertelen lehet, mert nincs elég titkosított adat a lemezen a statisztikai támadáshoz vagy mert a kulcs megváltozik a sáv közepén. Ez a módszer az egyetlen járható út a merevlemezen tárolt DVD-k visszakódolásához vagy a rossz régió kódú DVD-k RPC2 meghajtóban történő lejátszásához (lassú).
Az RPC-1 DVD meghajtók csak szoftveresen védik a régió kódot. Az RPC-2 meghajtókban hardveres védelem van, ami csak 5 változtatást engedélyez. Szükséges/javasolt a firmware frissítése RPC-1-re ha RPC-2-es DVD meghajtód van. Megpróbálhatsz keresni firmware frissítést az Interneten, ez a firmware fórum egy jó kiinduló pont lehet. Ha nincs firmware javítás a te meghajtódhoz, használd a regionset eszközt a DVD meghajtód régió kódjának beállításához (Linux alatt). Figyelem: Csak 5 alkalommal állíthatod át a régió kódot.