Mercurial > mplayer.hg
view DOCS/xml/pl/cd-dvd.xml @ 12205:3eab916cdaa3
sync
author | paszczi |
---|---|
date | Wed, 14 Apr 2004 16:03:13 +0000 |
parents | 0bac6204ed0e |
children | 6d42484e62bd |
line wrap: on
line source
<?xml version="1.0" encoding="utf-8"?> <!-- synced with 1.11 --> <chapter id="cd-dvd"> <title>Używanie CD/DVD</title> <sect1 id="drives"> <title>Napędy CD/DVD</title> <para> Fragment dokumentacji Linuksa: </para> <para> Nowoczesne napędy CD-ROM osiągają bardzo duże prędkości. Niektóre z nich są dodatkowo zdolne do pracy przy zredukowanych prędkościach. Oto kilka powodów, dla których powinniśmy zastanowić się czy nie należy zredukować prędkości naszego napędu: </para> <itemizedlist> <listitem><para> Istnieją doniesienia o błędach odczytu przy dużych prędkościach, szczególnie podczas używania uszkodzonych bądź wadliwie wytłoczonych/nagranych płyt CD. Redukcja prędkości odczytu może uchronić nas przed utratą danych w takich przypadkach. </para></listitem> <listitem><para> Wiele napędów CD jest dokuczliwie głośnych. Redukcja prędkości może zmniejszyć natężenie hałasu. </para></listitem> </itemizedlist> <para> Redukcję prędkości napędu CD z interfejsem IDE możemy uzystać korzystając z <command>hdparm</command> bądź programu <command>setcd</command>. Działają one w następujący sposób: <screen>hdparm -E <replaceable>[prędkość]</replaceable> <replaceable>[urządzenie cdrom]</replaceable></screen> <screen>setcd -x <replaceable>[prędkość]</replaceable> <replaceable>[urządzenie cdrom]</replaceable></screen> </para> <para> Jeżeli masz uprawnienia roota, to pomóc może także następująca komenda: <screen>echo file_readahead:2000000 > /proc/ide/<replaceable>[urządzenie cdrom]</replaceable>/settings</screen> </para> <para> Ustawiamy w ten sposób wielkość bufora odczytu na 2MB, co pomaga przy odczycie porysowanych płyt. Jeżeli ustawimy zbyt dużą wielkość tego bufora, napęd będzie stale rozkręcał się i zwalniał, co spowoduje bardzo znaczny spadek wydajności. Zaleca się również dostrojenie napędu CD-ROM przy użyciu <command>hdparm</command>: <screen>hdparm -d1 -a8 -u1 <replaceable>[urządzenie cdrom]</replaceable></screen> </para> <para> Włączamy w ten sposób dostęp DMA do dysku, czytanie z wyprzedzeniem i odmaskowanie IRQ (IRQ unmasking) (więcej przeczytasz na stronach man do <command>hdparm</command>) </para> <para> Proszę sprawdzić "<filename>/proc/ide/<replaceable>urządzenie cdrom</replaceable>/settings"</filename> dla dostrojenia swojego napędu CD-ROM. </para> <para> Dla napędów SCSI nie istnieje jednolity sposób ustawiawiania tych parametrów (jeżeli znasz jakiś to napisz nam o nim). Istnieje narzędzie które działa z <ulink url="http://das.ist.org/~georg/">napędami SCSI Plextor</ulink>. </para> <para>FreeBSD:</para> <para>Prędkość: <command>cdcontrol [-f <replaceable>device</replaceable>] speed <replaceable>speed</replaceable></command></para> <para>DMA: <command>sysctl hw.ata.atapi_dma=1</command></para> </sect1> <sect1 id="dvd"> <title>Odtwarzanie DVD</title> <para> 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: <screen>mplayer dvd://<replaceable><ścieżka></replaceable> [-dvd-device <replaceable><urządzenie></replaceable>]</screen> </para> <para> Przykład: <screen>mplayer dvd://<replaceable>1</replaceable> -dvd-device <replaceable>/dev/hdc</replaceable></screen> </para> <para> Domyślnym urządzeniem (device) DVD jest <filename>/dev/dvd</filename>. Jeżeli Twoje ustawienia są inne, stwórz odpowiedni symlink lub ustaw odpowiednie urządzenie (device) w linii polecenia korzystając z opcji <option>-dvd-device</option>. </para> <formalpara> <title>Obsługa DVD - nowy sposób (mpdvdkit2)</title> <para> <application>MPlayer</application> używa <systemitem>libdvdread</systemitem> oraz <systemitem>libdvdcss</systemitem> do dekodowania i odtwarzania DVD. Te dwie biblioteki są zawarte w podkatalogu <filename class="directory">libmpdvdkit2/</filename> w głównym drzewie katalogów <application>MPlayera</application>, nie trzeba instalować ich osobno. Wybraliśmy tę opcję ponieważ musieliśmy poprawić błąd <systemitem>libdvdread</systemitem> i zastosować łatkę (patch), która dodaje obsługę <emphasis role="bold">buforowania złamanych kluczy CSS</emphasis> do <systemitem>libdvdcss</systemitem>. Skutkuje to dużym wzrostem szybkości ponieważ klucze nie muszą być łamane za każdym razem przed odtwarzaniem. </para> </formalpara> <note><para> Jeśli występują problemy z dekodowaniem DVD, spróbuj wyłączyć supermount albo inne tego typu usługi. </para></note> <para> <application>MPlayer</application> potrafi także używać bibliotek systemowych <systemitem>libdvdread</systemitem> oraz <systemitem>libdvdcss</systemitem>, ale to rozwiązanie jest <emphasis role="bold">nie</emphasis> zalecane, gdyż może powodować błędy, niekompatybilności bibliotek oraz zmniejszenie prędkości. </para> <note><para> W przypadku problemów z dekodowaniem DVD, spróbuj wyłączyć supermount, bądź inne tego typu udogodnienia. </para></note> <formalpara> <title>Struktura dysku DVD</title> <para> 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. </para> </formalpara> <para> 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ą <emphasis role="bold">sektorów</emphasis> wszędzie, więc aby zaimplementować nawigację na DVD lub rozszyfrować zawartość, należy używać adresowania sektorów dysku w trybie raw. </para> <para> Z tego powodu obsługa DVD w starym stylu z użyciem <systemitem>libcss</systemitem> 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: <itemizedlist> <listitem><para> Posiadać uprawnienia roota lub używać programu wykonywalnego <application>MPlayera</application> posiadającego prawa suid-root. </para></listitem> <listitem><para> Pozwolić <application>MPlayerowi</application> 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 <systemitem>libcss</systemitem>). </para></listitem> <listitem><para> 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 <systemitem>libdvdread</systemitem> 0.9.x i <systemitem>libmpdvdkit</systemitem> (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. </para></listitem> </itemizedlist> </para> <para> Czasami <filename>/dev/dvd</filename> nie może być czytany przez użytkowników, zatem autorzy <systemitem>libdvdread</systemitem> 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. </para> <para> <systemitem>libdvdread</systemitem> równie dobrze akceptuje miejsce podmontowania (mountpoint) jak i nazwę urządzenia przy dostępie w trybie raw i sprawdza <filename>/proc/mounts</filename> 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. </para> <para> Domyślnym urządzeniem (device) DVD jest <filename>/dev/dvd</filename>. Jeżeli Twoje ustawienia są inne, stwórz odpowiedni symlink lub ustaw odpowiednie urządzenie w linii polecenia korzystając z opcji <option>-dvd-device</option>. </para> <formalpara> <title>Autoryzacja DVD</title> <para> Metoda autoryzacji i rozszyfrowywania używana gdy korzystamy z DVD przy użyciu nowego sposobu polega na korzystaniu ze zmodyfikowanej biblioteki <systemitem>libdvdcss</systemitem> (patrz wyżej). Ta metoda może być określona poprzez zmienna środowiskową <envar>DVDCSS_METHOD</envar>, która może być ustawiona na "key", "disk" albo "title". </para> </formalpara> <para> Jeżeli żadna wartość nie jest ustawiona, próbowane są następujące metody (domyślnie: "key", "title request"): </para> <orderedlist> <listitem><para> <emphasis role="bold">bus key</emphasis>: 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). </para></listitem> <listitem><para> <emphasis role="bold">cached key</emphasis>: <application>MPlayer</application> wyszukuje już złamane klucze tytułów, które są przechowywane w katalogu <filename class="directory">~/.mplayer/DVDKeys</filename> (szybkie ;) ). </para></listitem> <listitem><para> <emphasis role="bold">key</emphasis>: Jeżeli żaden zbuforowany klucz nie jest dostępny, <application>MPlayer</application> próbuje rozszyfrować klucz dyskowy korzystając z garści kluczy zaszytych w odtwarzaczu. </para></listitem> <listitem><para> <emphasis role="bold">disk</emphasis>: Jeżeli metoda "key" zawodzi (np. brak kluczy zaszytych w odtwarzaczu), <application>MPlayer</application> 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). </para></listitem> <listitem><para> <emphasis role="bold">title request</emphasis>: Mając klucz dyskowy <application>MPlayer</application> pobiera zaszyfrowane klucze tytułowe (title key), które są zawarte w <emphasis>ukrytych sektorach (hidden sectors)</emphasis> używając <systemitem>ioctl()</systemitem>. 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. </para></listitem> <listitem><para> <emphasis role="bold">title</emphasis>: 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). </para></listitem> </orderedlist> <para> 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 <ulink url="http://www.firmware-flash.com">stronie z firmware'ami</ulink>. Jeżeli nie ma tam nowej wersji firmware'u dla naszego urządzenia, użyj <ulink url="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">regionset tool (narzędzia do zmiany regionów)</ulink> aby ustawić kod regionu na swoim napędzie DVD (pod Linuksem). <emphasis role="bold">Ostrzeżenie</emphasis>: Możesz ustawić region tylko 5 razy. </para> </sect1> <sect1 id="vcd"> <title>Odtwarzanie VCD</title> <para> Pełna lista dostępnych opcji znajduje się na stronie man. Składnia dla standardowego Video CD (VCD) jest następująca: <screen>mplayer vcd://<replaceable><ścieżka></replaceable> [-cdrom-device <replaceable><urządzenie></replaceable>]</screen> Przykład: <screen>mplayer vcd://2 -cdrom-device /dev/hdc</screen> Domyślnym urządzeniem VCD jest <filename>/dev/cdrom</filename>. Jeśli Twoje ustawienia są inne, utwórz dowiązanie symboliczne lub podaj prawidłowe urządzenie w linii poleceń za pomocą opcji <option>-cdrom-device</option> </para> <note><para> Przynajmniej napędy CD-ROM SCSI firmy Plextor i niektóre modele Toshiby mają beznadziejną wydajność przy odczycie VCD. Jest to spowodowane niekompletną implementacją <systemitem>ioctl</systemitem>'a CDROMREADRAW dla tych urządzeń. Jeśli masz jakieś pojęcie o programowaniu SCSI, <ulink url="../../tech/patches.txt">pomóż nam</ulink> zaimplementować ogólną obsługę SCSI dla VCD. </para></note> <para> W międzyczasie możesz wyciągać dane z VCD za pomocą <ulink url="http://140.132.1.204/OS/Linux/packages/X/viewers/readvcd/">readvcd</ulink> i odtwarzać plik wynikowy za pomocą <application>MPlayera</application> </para> <formalpara> <title>Struktura VCD</title> <para>Płyty VCD składają się z jednej lub więcej ścieżek:</para> </formalpara> <itemizedlist> <listitem><para> Pierwsza ścieżka jest małą ścieżką o gęstości 2048 bajtów/sektor z danymi w systemie plików iso9660, zwykle zawierająca windowsowy odtwarzacz VCD i być może inne informacje (obrazy, tekst, itp.). </para></listitem> <listitem><para> Druga i pozostałe ścieżki o gęstości 2324 bajtów/sektor zawierają po jednym pakiecie czystego strumienia MPEG PS na sektor zamiast systemu plików. Podobnie, jak w przypadku ścieżek audio CD, ścieżki te <emphasis role="bold">nie mogą być montowane</emphasis> (Czy kiedykolwiek montowałeś płytę audio CD by ją odtworzyć?). Biorąc pod uwagę, że filmy znajdują się na tej ścieżce, powinieneś spróbować na początek opcji <option>vcd://2</option>. </para></listitem> <listitem><para> Istnieją również płyty VCD bez pierwszej ścieżki (pojedyncza ścieżka i brak systemu plików w ogóle). Je również da się odtwarzać, ale nie da się ich montować. </para></listitem> </itemizedlist> <formalpara> <title>O plikach .DAT</title> <para> Plik o rozmiarze ok. 600 MB widoczny na pierwszej ścieżce zamontowanego VCD nie jest prawdziwym plikiem ! Jest on tzw. bramką ISO, utworzoną by Windows mógł obsługiwać takie ścieżki (Windows w ogóle nie zezwala aplikacjom na dostęp do urządzeń w trybie raw). Pod Linuksem nie możesz kopiować ani odtwarzać tych plików (zawierają "śmieci"). Pod Windows jest to możliwe, gdyż jego sterownik iso9660 symuluje odczyt ścieżek w trybie raw za pomocą tego pliku. By móc odtwarzać pliki .DAT, musisz mieć sterownik do jądra, który dostarczany jest z linuksową wersją PowerDVD. Posiada on zmodyfikowany sterownik systemu plików iso9660 (<filename>vcdfs/isofs-2.4.X.o</filename>), który jest w stanie symulować odczyt ścieżek w trybie raw za pomocą pliku .DAT. Jeśli podmontujesz płytę używając ich sterownika, możesz kopiować, a nawet odtwarzać pliki .DAT za pomocą <application>MPlayera</application>. Ale nie będzie to działało za pomocą standardowego sterownika iso9660 dostarczonego z jądrem Linuksa! Zamiast tego użyj opcji <option>vcd://</option>. Alternatywą dla kopiowania VCD jest nowy sterownik: <ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink> (nie jest częścią oficjalnego jądra), który wyświetla sesje CD jako pliki obrazów, oraz <ulink url="http://cdrdao.sourceforge.net/">cdrdao</ulink>, program do zgrywania płyt CD bit po bicie. </para> </formalpara> </sect1> </chapter>