Aby poznać pełną listę dostępnych opcji, proszę przeczytać odpowiednie strony man. Składnia dla standardowego DVD (Digital Versatile Disc) jest następująca:
mplayer dvd://<ścieżka>
[-dvd-device<urządzenie>
]
Przykład:
mplayer dvd://1
-dvd-device/dev/hdc
Domyślnym urządzeniem (device) DVD jest /dev/dvd. Jeżeli Twoje ustawienia są inne, stwórz odpowiedni symlink lub ustaw odpowiednie urządzenie (device) w linii polecenia korzystając z opcji -dvd-device.
Obsługa DVD - nowy sposób (mpdvdkit2).
MPlayer używa libdvdread
oraz libdvdcss
do dekodowania i odtwarzania DVD. Te
dwie biblioteki są zawarte w podkatalogu libmpdvdkit2/
w głównym drzewie katalogów MPlayera, nie trzeba
instalować ich osobno. Wybraliśmy tę opcję ponieważ musieliśmy poprawić błąd
libdvdread
i zastosować łatkę (patch), która dodaje
obsługę buforowania złamanych kluczy CSS do
libdvdcss
. Skutkuje to dużym wzrostem szybkości
ponieważ klucze nie muszą być łamane za każdym razem przed odtwarzaniem.
Jeśli występują problemy z dekodowaniem DVD, spróbuj wyłączyć supermount albo inne tego typu usługi.
MPlayer potrafi także używać bibliotek systemowych
libdvdread
oraz libdvdcss
, ale to rozwiązanie jest
nie zalecane, gdyż może powodować błędy,
niekompatybilności bibliotek oraz zmniejszenie prędkości.
W przypadku problemów z dekodowaniem DVD, spróbuj wyłączyć supermount, bądź inne tego typu udogodnienia.
Struktura dysku DVD. Dyski DVD mają po 2048 bajtów na sektor z ECC/CRC. Zwykle posiadają system plików UDF na pojedynczej ścieżce zawierającej różnorakie pliki (małe pliki .IFO i .BUK oraz duże (1GB) pliki .VOB). Są one rzeczywistymi plikami i mogą być kopiowane/odtwarzane z podmontowanego systemu plików niezakodowanego DVD.
Pliki .IFO zawierają informacje nawigacyjne filmu (rozdział/tytuł/mapa zaczepów/tablica języków, itp) i są konieczne do odczytu i interpretacji zawartości pliku .VOB (filmu). Pliki .BUK są kopiami zapasowymi plików .IFO. Używają sektorów wszędzie, więc aby zaimplementować nawigację na DVD lub rozszyfrować zawartość, należy używać adresowania sektorów dysku w trybie raw.
Z tego powodu obsługa DVD w starym stylu z użyciem
libcss
wymaga podmontowanego systemu plików DVD oraz
dostępu do urządzenia w trybie raw bazującym na sektorach. Niestety wymagane
jest (pod Linuksem) posiadanie uprawnień roota aby móc korzystać z sektorowego
adresowania pliku. Wybór jest następujący:
Posiadać uprawnienia roota lub używać programu wykonywalnego MPlayera posiadającego prawa suid-root.
Pozwolić MPlayerowi na uruchamianie owijacza
(wrapper) fibmap_mplayer w trybie suid-root w celu uzyskania dostępu do DVD
(używane przy odtwarzaniu DVD starą metodą poprzez
libcss
).
Wcale nie używać sterownika systemu plików zawartego w jądrze lecz korzystać
jedynie z narzędzi działających w przestrzeni użytkownika. Zajmują się tym
biblioteki libdvdread
0.9.x i
libmpdvdkit
(obsługa DVD nowym sposobem). Sterownik
systemu plików UDF zawarty w jądrze nie jest wymagany ponieważ wspomniane
biblioteki zawierają własny, wbudowany sterownik systemu plików UDF. DVD nie
musi być podmontowany, bowiem używany jest jedynie dostęp w trybie raw.
Czasami /dev/dvd nie może być czytany przez użytkowników,
zatem autorzy libdvdread
zaimplementowali emulację
warstwy, która przenosi adresowanie sektorowe na nazwy plików i offsety, aby już
u źródeł podmontowanego systemu plików emulować dostęp w trybie raw, na równi z
dostępem do dysku twardego.
libdvdread
równie dobrze akceptuje miejsce
podmontowania (mountpoint) jak i nazwę urządzenia przy dostępie w trybie raw i
sprawdza /proc/mounts w celu odnalezienia odpowiedniej
nazwy urządzenia (device). Zostało to napisane z myślą o systemie Solaris, gdzie
nazwy urządzeń są przydzielane automatycznie.
Domyślnym urządzeniem (device) DVD jest /dev/dvd. Jeżeli Twoje ustawienia są inne, stwórz odpowiedni symlink lub ustaw odpowiednie urządzenie w linii polecenia korzystając z opcji -dvd-device.
Autoryzacja DVD.
Metoda autoryzacji i rozszyfrowywania używana gdy korzystamy z DVD przy użyciu
nowego sposobu polega na korzystaniu ze zmodyfikowanej biblioteki
libdvdcss
(patrz wyżej). Ta metoda może być określona
poprzez zmienna środowiskową DVDCSS_METHOD
, która może być
ustawiona na "key", "disk" albo "title".
Jeżeli żadna wartość nie jest ustawiona, próbowane są następujące metody (domyślnie: "key", "title request"):
bus key: Ten klucz jest ustalany podczas autoryzacji (długa mieszanina ioctl'i i rozmaite wymiany kluczy, bajery kryptograficzne) oraz jest używany do szyfrowania tytułu i kluczy dyskowych przed wysłaniem ich nieszyfrowaną magistralą (by zapobiec podsłuchiwaniu). Bus key jest wymagany do pobrania i wstępnego rozszyfrowania zaszyfrowanego klucza dyskowego (disk key).
cached key: MPlayer wyszukuje już złamane klucze tytułów, które są przechowywane w katalogu ~/.mplayer/DVDKeys (szybkie ;) ).
key: Jeżeli żaden zbuforowany klucz nie jest dostępny, MPlayer próbuje rozszyfrować klucz dyskowy korzystając z garści kluczy zaszytych w odtwarzaczu.
disk: Jeżeli metoda "key" zawodzi (np. brak kluczy zaszytych w odtwarzaczu), MPlayer złamie klucz dyskowy używając algorytmu ataku brutalnego. Proces ten jest bardzo procesorochłonny i wymaga 64 MB pamięci (16777216 (16*2^20) 32-bitowych pól tabeli hash) do przechowywania tymczasowych danych. Ta metoda powinna zadziałać zawsze (niestety jest wolna).
title request: Mając klucz dyskowy
MPlayer pobiera zaszyfrowane klucze tytułowe (title
key), które są zawarte w ukrytych sektorach (hidden
sectors) używając ioctl()
. Ochrona
regionalna w napędach RPC-2 jest realizowana w tym kroku i może się nie udać na
tych napędach. Jeśli jednak się uda, klucze tytułowe zostają rozszyfrowane przy
użyciu magistrali i klucza dyskowego.
title: Ta metoda jest używana jeżeli zapytanie o tytuł zakończyło się niepowodzeniem i nie można polegać na żadnej wymianie kluczy z napędem DVD. Używa ona ataku kryptograficznego w celu odgadnięcia klucza tytułowego (title key) wprost (poprzez szukanie powtarzającego się ciągu znaków (wzoru) w rozszyfrowanej zawartości pliku VOB oraz poprzez zgadywanie, że czysty tekst odpowiadający pierwszym zaszyfrowanym bajtom jest kontynuacją wzoru). Metoda ta jest także znana jako "znany czysto-tekstowy atak (known plaintext attack)" bądź "DeCSSPlus". Rzadko zdarza się, ale się zdarza, że metoda ta może zawieść ponieważ jest niewystarczająco dużo zaszyfrowanych danych na dysku aby spełnić założenia statystycznego ataku lub ponieważ klucz zmienia się w trakcie tytułu. Jest to jedyna metoda, aby zdeszyfrować DVD przechowywane na twardym dysku lub DVD ze złym regionem na napędzie RPC2 (powolne).
Napędy DVD RPC-1 zabezpieczają ustawienia regionu jedynie poprzez oprogramowanie. Napędy RPC-2 mają sprzętowe zabezpieczenie, które pozwala na co najwyżej 5 zmian. Jeżeli posiadamy napęd DVD RPC-2 wymagana/zalecana jest aktualizacja firmware'u do RPC-1 . Nowe wersje firmware'ów można znaleźć na tej stronie z firmware'ami. Jeżeli nie ma tam nowej wersji firmware'u dla naszego urządzenia, użyj regionset tool (narzędzia do zmiany regionów) aby ustawić kod regionu na swoim napędzie DVD (pod Linuksem). Ostrzeżenie: Możesz ustawić region tylko 5 razy.