4.2. Přehrávání DVD

Úplný seznam dostupných voleb naleznete v man stránce. Syntaxe pro přehrání standardního DVD je následující:

mplayer dvd://<track> [-dvd-device <DVD_zařízení>]

Příklad:

mplayer dvd://1 -dvd-device /dev/hdc

Pokud jste kompilovali MPlayer s podporou dvdnav, je syntaxe stejná až na to, že musíte používat dvdnav:// místo dvd://.

Výchozím DVD zařízením je /dev/dvd. Pokud se vaše nastavení liší, vytvořte symlink, nebo uveďte správné zařízení na příkazovém řádku pomocí volby -dvd-device.

MPlayer používá libdvdread a libdvdcss pro přehrávání a dekódování DVD. Tyto dvě knihovny jsou obsaženy ve zdrojových kódech MPlayeru, nemusíte je tedy instalovat zvlášť. Můžete rovněž použít systémové verze těchto knihoven, ale toto řešení nedoporučujeme, protože může vést k chybám, nekompatibilitě knihovny a nižší rychlosti.

Poznámka

V případě problémů s dekódováním DVD, zkuste vypnout supermount a podobná udělátka. Některé RPC-2 mechaniky mohou rovněž vyžadovat nastavení region kódu.

Struktura DVD.  DVD disky mají 2048 bajtů na sektor s ECC/CRC. Obvykle mají souborový systém UDF v jediné stopě, obsahující různé soubory (malé .IFO a .BUK soubory a velké (1GB) .VOB soubory). Jsou to reálné soubory a mohou být kopírovány/přehrávány z připojeného systému souborů nešifrovaného DVD.

Soubory .IFO obsahují informace pro navigaci ve filmu (kapitola/titul/mapa úhlů, tabulka jazyků, atd) a jsou potřeba pro čtení a interpretaci obsahu .VOBu (filmu). Soubory .BUK jsou jejich zálohami. Všude používají sektory, takže musíte použít surové (RAW) adresování sektorů na disku, abyste se mohli navigovat v DVD, nebo dekryptovat jeho obsah.

Podpora DVD vyžaduje přímý sektorově-orientovaný přístup k zařízení. Naneštěstí musíte (pod Linuxem) být root, abyste dostali adresu sektoru souboru. To je důvod proč vůbec nepoužíváme modul souborového systému z kernelu a místo něj jej implementujeme v uživatelském prostoru. To zajistí libdvdread 0.9.x. UDF ovladač z kernelu není potřeba, jelikož tyto knihovny mají zabudován svůj vlastní. Rovněž nemusí být DVD přimountováno vzhledem k tomu že používáme pouze přímý sektorově orientovaný přístup.

Někdy /dev/dvd nemůže být čteno uživateli, proto autoři libdvdread implementovali emulační vrstvu, která převádí sektorové adresy na soubor+offset za účelem emulace raw přístupu nad připojeným souborovým systémem nebo dokonce i hard diskem.

libdvdread dokonce přijme bod připojení (mountpoint) místo názvu zařízení pro přímý přístup a podívá se do /proc/mounts na jméno zařízení. To bylo vyvinuto pro Solaris, kde jsou názvy souborů dynamicky alokovány.

Dešifrování DVD.  Dešifrování DVD provádí libdvdcss. Metoda může být zvolena pomocí proměnné prostředí DVDCSS_METHOD, detaily viz manuálovou stránku.

RPC-1 DVD mechaniky chrání nastavení regionu pouze softwarově. RPC-2 mechaniky mají hardwarovou ochranu umožňující pouze 5 změn. Může být potřeba/doporučeno provést upgrade firmwaru na RPC-1 pokud máte RPC-2 DVD mechaniku. Můžete zkusit najít upgrady firmwaru pro svou mechaniku na internetu, toto firmwarové fórum může být dobrým začátkem pro vaše hledání. Pokud pro vaši mechaniku není k dispozici upgrade firmwaru, použijte nástroj regionset pro nastavení region kódu vaší DVD mechaniky (pod Linux). Varování: Region můžete přenastavit pouze pětkrát.