UĹźywanie CD/DVDNapÄdy CD/DVD
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:
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.
Wiele napÄdĂłw CD jest dokuczliwie gĹoĹnych. Redukcja prÄdkoĹci moĹźe zmniejszyÄ
natÄĹźenie haĹasu.
Linux
MoĹźesz zredukowaÄ prÄdkoĹÄ napÄdu CD z interfejsem IDE korzystajÄ c
z hdparm, setcd lub
cdctl.
DziaĹajÄ one w nastÄpujÄ cy sposĂłb:
hdparm -E [prÄdkoĹÄ][urzÄ dzenie cdrom]setcd -x [prÄdkoĹÄ][urzÄ dzenie cdrom]cdctl -bS [speed]
JeĹli uĹźywasz emulacji SCSI, moĹźesz musieÄ zastosowaÄ ustawienia do prawdziwego
urzÄ dzenia IDE a nie emulowanego SCSI.
JeĹźeli masz uprawnienia roota, to pomĂłc moĹźe takĹźe nastÄpujÄ ca komenda:
echo file_readahead:2000000 > /proc/ide/[urzÄ dzenie cdrom]/settings
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
hdparm:
hdparm -d1 -a8 -u1 [urzÄ dzenie cdrom]
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
hdparm)
ProszÄ sprawdziÄ "/proc/ide/[urzÄ dzenie cdrom]/settings"
dla dostrojenia swojego napÄdu CD-ROM.
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
napÄdami SCSI Plextor.
FreeBSDPrÄdkoĹÄ:
cdcontrol [-f urzÄ dzenie] speed [prÄdkoĹÄ]DMA:
sysctl hw.ata.atapi_dma=1
Odtwarzanie DVD
Aby poznaÄ peĹnÄ listÄ dostÄpnych opcji, proszÄ przeczytaÄ odpowiednie strony
man. SkĹadnia do odtwarzania standardowego DVD jest nastÄpujÄ ca:
mplayer dvd://<ĹcieĹźka> [-dvd-device <urzÄ dzenie>]
PrzykĹad:
mplayer dvd://1 -dvd-device /dev/hdc
JeĹli skompilowaĹeĹ MPlayera z obsĹugÄ dvdnav,
skĹadnia jest taka sama, tylko musisz uĹźyÄ dvdnav:// zamiast dvd://.
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
.
MPlayer uĹźywa libdvdread
oraz libdvdcss do odtwarzania i dekodowania DVD. Te
dwie biblioteki sÄ zawarte w podkatalogu libmpdvdkit2
w gĹĂłwnym drzewie katalogĂłw MPlayera, nie trzeba
instalowaÄ ich osobno.
MoĹźesz teĹź uĹźyÄ systemowych wersji tych bibliotek, ale nie jest to zalecane,
poniewaĹź moĹźe spowodowaÄ bĹÄdy, niekompatybilnoĹci bibliotek oraz zmniejszenie
prÄdkoĹci.
JeĹli wystÄpujÄ problemy z dekodowaniem DVD, sprĂłbuj wyĹÄ czyÄ supermount lub
inne tego typu usĹugi. NiektĂłre napÄdy RPC-2 mogÄ rĂłwnieĹź wymagaÄ ustawienia
kodu regionu DVD.
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 (mapa
rozdziaĹĂłw/tytuĹĂłw/kÄ tĂłw kamery, 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 wymaga
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.
Dlatego teĹź nie w ogĂłle uĹźywamy sterownika systemu plikĂłw pochodzÄ cego
z jÄ dra, ale reimplementujemy to w przestrzeni uĹźytkownika.
ZajmujÄ siÄ tym
biblioteki libdvdread 0.9.x i
libmpdvdkit. 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 warstwÄ
emulacji, ktĂłra tĹumaczy adresowanie sektorowe na nazwy plikĂłw i offsety, aby
emulowaÄ dostÄp w trybie raw na podmontowanym systemie plikĂłw albo nawet na
twardym dysku.
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.
Deszyfrowanie DVD
Do deszyfrowania DVD jest uĹźywana biblioteka
libdvdcss. Metoda jej dziaĹania moĹźe byÄ okreĹlona
poprzez zmienna ĹrodowiskowÄ DVDCSS_METHOD,
co jest dokĹadniej opisane na stronie man.
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ĹşÄ w internecie.
Poszukiwania radzimy rozpoczÄ Ä od
forum firmware'Ăłw.
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.
Odtwarzanie VCD
PeĹna lista dostÄpnych opcji znajduje siÄ na stronie man. SkĹadnia dla
standardowego Video CD (VCD) jest nastÄpujÄ ca:
mplayer vcd://<ĹcieĹźka> [-cdrom-device <urzÄ dzenie>]
PrzykĹad:
mplayer vcd://2 -cdrom-device /dev/hdc
DomyĹlnym urzÄ dzeniem VCD jest /dev/cdrom. JeĹli
Twoje ustawienia sÄ inne, utwĂłrz dowiÄ zanie symboliczne
lub podaj prawidĹowe urzÄ dzenie w linii poleceĹ za pomocÄ opcji
Przynajmniej napÄdy CD-ROM SCSI firmy Plextor i niektĂłre modele Toshiby
majÄ beznadziejnÄ wydajnoĹÄ przy odczycie VCD. Jest to spowodowane
niekompletnÄ implementacjÄ ioctl'a CDROMREADRAW dla
tych urzÄ dzeĹ. JeĹli masz jakieĹ pojÄcie o programowaniu SCSI,
pomóş nam zaimplementowaÄ ogĂłlnÄ
obsĹugÄ SCSI dla VCD.
W miÄdzyczasie moĹźesz wyciÄ gaÄ dane z VCD za pomocÄ
readvcd
i odtwarzaÄ plik wynikowy za pomocÄ MPlayeraStruktura VCD
Video CD (VCD) skĹada siÄ z sektorĂłw CD-ROM XA, tzn. ĹcieĹźek CD-ROM
mode 2 form 1 i form 2:
Pierwsza ĹcieĹźka jest w formacie mode 2 form 2, ktĂłry oznacza uĹźycie korekcji
bĹÄdĂłw L2. ĹcieĹźka ta zawiera system plikĂłw ISO-9660 o gÄstoĹci 2048 bajtĂłw/sektor.
Ten system plikĂłw z kolei zawiera metainformacje VCD, a takĹźe nieruchome klatki, czÄsto
uĹźywane w menu. Segmenty MPEG dla menu mogÄ takĹźe byÄ skĹadowane w tejĹźe pierwszej
ĹcieĹźce, ale MPEGi muszÄ byÄ podzielone na kawaĹki po 150 sektorĂłw. System plikĂłw ISO-9660
moĹźe zawieraÄ inne pliki bÄ dĹş programy, niekonieczne dla eksploatacji VCD.
Druga i pozostaĹe ĹcieĹźki sÄ zwykle ĹcieĹźkami video MPEG typu raw o gÄstoĹci
2324 bajtĂłw/sektor, zawierajÄ cymi jeden pakiet danych MGEG PS na sektor.
ĹcieĹźki te sÄ w formacje mode 2 form 1, wiÄc przechowujÄ one wiÄcej danych
na sektor, w zamian za sĹabszÄ korekcjÄ bĹÄdĂłw. MoĹźliwe sÄ teĹź ĹcieĹźki
CD-DA na VCD poza pierwszÄ ĹcieĹźkÄ .
NiektĂłre systemy operacyjne uĹźywajÄ pewnych trikĂłw aby ĹcieĹźki nie zawierajÄ ce
systemu plikĂłw ISO-9660 byĹy widoczne w systemie plikĂłw. W pozostaĹych systemach,
jak na przykĹad w systemie GNU/Linux, nie ma takiej moĹźliwoĹci (jeszcze). W takim
przypadku dane MPEG nie mogÄ byÄ montowane.
Jako Ĺźe wiÄkszoĹÄ filmĂłw znajduje siÄ na tego typu ĹcieĹźce,
powinieneĹ sprĂłbowaÄ na poczÄ tek opcji .
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Ä.
Definicja standardu Video CD, nazywana "BiaĹÄ KsiÄgÄ "
Phillipsa, generalnie nie jest dostÄpna online, musi byÄ zakupiona u Phillipsa.
Bardziej szczegĂłĹowe informacje na temat Video CD moĹźna znaleĹşÄ na
stronie
dokumentacji vcdimagera.
O plikach .DAT
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 (vcdfs/isofs-2.4.X.o), 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Ä MPlayera. Ale nie bÄdzie to
dziaĹaĹo za pomocÄ standardowego sterownika iso9660 dostarczonego z jÄ drem
Linuksa! Zamiast tego uĹźyj opcji . AlternatywÄ dla
kopiowania VCD jest nowy sterownik:
cdfs (nie jest
czÄĹciÄ oficjalnego jÄ dra), ktĂłry wyĹwietla sesje CD jako pliki obrazĂłw, oraz
cdrdao, program do zgrywania
pĹyt CD bit po bicie.