Mercurial > mplayer.hg
view DOCS/xml/de/cd-dvd.xml @ 23066:9fa58c749c03
include inttypes.h in the check for dvdnav
author | nicodvb |
---|---|
date | Sun, 22 Apr 2007 20:03:09 +0000 |
parents | 9a47b083d2be |
children | 156068fd461b |
line wrap: on
line source
<?xml version="1.0" encoding="utf-8"?> <!-- synced with r20637 --> <chapter id="cd-dvd"> <title>CD/DVD Nutzung</title> <sect1 id="drives"> <title>CD/DVD-Laufwerke</title> <para> Moderne CD-ROM-Laufwerke können sehr hohe Geschwindigkeiten erreichen. Jedoch sind einige CD-ROM-Laufwerke in der Lage, mit gedrosselter Geschwindigkeit zu laufen. Es gibt verschiedene Gründe, in Erwägung zu ziehen, die Geschwindig eines CD-ROM-Laufwerks zu ändern: </para> <itemizedlist> <listitem> <para> Es gibt Berichte über Lesefehler bei hohen Geschwindigkeiten, besonders bei schlecht gepressten CD-ROMs. Reduzierung der Geschwindigkeit kann unter diesen Umständen Datenverlust verhindern. </para> </listitem> <listitem> <para> Viele CD-ROM-Laufwerke sind nervend laut. Eine geringere Geschwindigkeit kann die Geräsche reduzieren. </para> </listitem> </itemizedlist> <sect2 id="drives_linux"> <title>Linux</title> <para> Du kannst die Geschwindigkeit von IDE CD-ROM-Laufwerken mit <command>hdparm</command>, <command>setcd</command> oder <command>cdctl</command> reduzieren. Dies funktioniert wie folgt: <screen>hdparm -E <replaceable>[Geschwindigkeit]</replaceable> <replaceable>[CD-ROM-Gerät]</replaceable></screen> <screen>setcd -x <replaceable>[Geschwindigkeit]</replaceable> <replaceable>[CD-ROM-Gerät]</replaceable></screen> <screen>cdctl -bS <replaceable>[Geschwindigkeit]</replaceable></screen> </para> <para> Wenn du SCSI-Emulation benuzt, musst du die Einstellungen unter Umständen am echten IDE-Gerät vornehmen und nicht am emuliertem SCSI-Gerät. </para> <para> Wenn du über root-Rechte verfügst, kann das folgende Kommando ebenso helfen: <screen>echo file_readahead:2000000 > /proc/ide/<replaceable>[CD-ROM-Gerät]</replaceable>/settings</screen> </para> <para> <!-- TODO: 1) aehm Ich glaube nicht das das (oben) als 2 MB interpretiert wird. Duerften Bytes sein --> Dies setzt die Menge der vorausgehend gelesenen Daten auf 2MB, was bei verkratzten CD-ROMs hilft. Wenn du dies zu hoch setzt, wird das Laufwerk dauernd anlaufen und wieder langsamer werden; dies wird die Leistung dramtisch verschlechtern. Es wird ebenso empfohlen, dass du dein CD-ROM-Laufwerk mit <command>hdparm</command> konfigurierst: <screen>hdparm -d1 -a8 -u1 <replaceable>[CD-ROM-Gerät]</replaceable></screen> </para> <para> Dies aktiviert DMA-Zugriff, Read-ahead (vorausgehendes Lesen) und IRQ-Unmasking (lies die <command>hdparm</command> Manpage für eine ausführliche Erklärung). </para> <para> Wir verweisen hier auf "<filename>/proc/ide/<replaceable>[CD-ROM-Gerät]</replaceable>/settings</filename>" für Feineinstellungen an deinem CD-ROM. </para> <para> SCSI-Laufwerke haben kein einheitliches Verfahren, diese Parameter zu setzen. (Kennst du einen? Berichte ihn uns!) Es gibt ein Tool, welches mit <ulink url="http://das.ist.org/~georg/">Plextor SCSI-Laufwerken</ulink> funktioniert. </para> </sect2> <sect2 id="drives_freebsd"> <title>FreeBSD</title> <para> Geschwindigkeit: <screen>cdcontrol [-f <replaceable>Gerät</replaceable>] speed <replaceable>[Geschwindigkeit]</replaceable></screen> </para> <para> DMA: <screen>sysctl hw.ata.atapi_dma=1</screen> </para> </sect2> </sect1> <sect1 id="dvd"> <title>DVD-Wiedergabe</title> <para> Für eine komplette Liste der verfügbaren Optionen lies bitte die Manpage. Die Syntax für das Abspielen einer Standard-DVD lautet wie folgt: <screen>mplayer dvd://<replaceable><Track></replaceable> [-dvd-device <replaceable><Gerät></replaceable>]</screen> </para> <para> Beispiel: <screen>mplayer dvd://1 -dvd-device /dev/hdc</screen> </para> <para> Das Standard-DVD-Laufwerk ist <filename>/dev/dvd</filename>. Wenn deine Installation davon abweicht, erstelle einen Symlink oder gib das genaue Gerät auf der Kommandozeile an mit der Option <option>-dvd-device</option>. </para> <para> <application>MPlayer</application> verwendet <systemitem>libdvdread</systemitem> und <systemitem>libdvdcss</systemitem> zur DVD-Wiedergabe und -Entschlüsselung. Diese beiden Bibliotheken sind im Unterverzeichnis <application>MPlayer</application>-Quelltextbaum, du brauchst sie nicht separat zu installieren. Du kannst auch systemweite Versionen der beiden Bibliotheken verwenden, diese wird jedoch <emphasis role="bold">nicht</emphasis> empfohlen, da dies zu Bugs, Bibliotheksinkompatibilitäten und geringerer Geschwindigkeit führen kann. </para> <note> <para> In Fällen von DVD-Dekodierungs-Problemen versuche Supermount oder solche Hilfen zu deaktivieren. Einige RPC-2 Laufwerke können verlangen, dass ein Regionalcode gesetzt ist. </para> </note> <formalpara> <title>DVD-Struktur</title> <para> DVDs haben 2048 Bytes pro Sektor mit ECC/CRC. Sie haben üblicherweise ein UDF-Dateisystem auf einem einzigem Track, welcher verschiedene Dateien (kleine .IFO und .BUK Dateien und große .VOB Dateien) enthält. Sie sind echte Dateien und können von einem gemounteten Dateisystem einer unentschlüsselten DVD kopiert/abgespielt werden. </para> </formalpara> <para> Die .IFO-Dateien enthalten die Informationen zur Filmnavigation (Kapitel/Titel/Blickwinkel, Sprachtabellen etc.) und werden benötigt, um den .VOB Inhalt (den Film) zu lesen und zu interpretieren. Die .BUK-Dateien sind Backups davon. Sie nutzen überall <emphasis role="bold">Sektoren</emphasis>, so dass du Direktaddressierung von Sektoren auf dem Datenträger benötigst, um DVD-Navigation zu implementieren oder den Inhalt zu entschlüsseln. </para> <para> DVD-Unterstützung benötigt rohen Sektor-basierten Zugriff auf das Laufwerk. Leider musst du (unter Linux) root sein, um die Sektoraddresse einer Datei zu erhalten. Das ist der Grund, warum wir nicht den Dateisystemtreiber des Kernels nutzen sondern es im Userspace reimplementiert haben. <systemitem>libdvdread</systemitem> 0.9.x tut dies. Der UDF-Dateisystemtreiber des Kernels wird nicht benötigt, da sie bereits einen eigenen eingebauten UDF-Dateisystem-Treiber haben. Ebenso muss die DVD nicht gemountet werden, da der direkte Sektor-basierte Zugriff genutzt wird. </para> <para> Manchmal kann <filename>/dev/dvd</filename> nicht von Benutzern gelesen werden, deshalb implementierten die Autoren von <systemitem>libdvdread</systemitem> einen Emulations-Layer, welcher die Sektorenadressen in Dateinamen+Offsets überträgt und Raw-Zugriff auf dem gemounteten Dateisystem oder auch auf Festplatten emuliert. </para> <para> <systemitem>libdvdread</systemitem> akzeptiert sogar Mountpoints an Stelle von Gerätenamen für Raw-Zugriff und überprüft <filename>/proc/mounts</filename>, um den Gerätenamen herauszufinden. Es wurde für Solaris entwickelt, wo Gerätenamen dynamisch zugewiesen werden. </para> <para> Wenn du <application>MPlayer</application> mit dvdnav-Unterstützung compiliert hast, bleibt die Syntax derselbe, ausgenommen die Verwendung von dvdnav:// an Stelle von dvd://. </para> <formalpara> <title>DVD-Entschlüsselung</title> <para> DVD-Entschlüsselung geschieht durch <systemitem>libdvdcss</systemitem>. Die dafür verwendete Methode kann durch Umgebungsvariable <envar>DVDCSS_METHOD</envar> festgelegt werden, siehe Manpage für Details. </para> </formalpara> <para> <!-- Idee: (am Regioncode) hinzufuegen? --> <!-- Comment: Ich mag das Wort upgrade nicht. Oder besser gesagt sollte der Text besser auf die Risiken und Fakten eingehen. --> RPC-1 DVD-Laufwerke schützen Regionseinstellunge nur durch Software. RPC-2-Laufwerke haben einen Hardwareschutz, welcher nur 5 Änderungen erlaubt. Es kann notwendig/empfehlenswert sein, die Firmware auf RPC-1 zu aktualisieren, wenn du ein RPC-2 DVD-Laufwerk hast. Du kannst versuchen ein Firmwareupgrade für dein Laufwerk im Internet zu finden, <ulink url="http://forum.rpc-1.com/dl_all.php">dieses Firmware-Forum</ulink> kann ein guter Ausgangspunkt für deine Suche sein. Wenn es kein Firmwareupgrade für dein Laufwerk gibt, benutze das <ulink url="http://linvdr.org/projects/regionset/">regionset-Tool</ulink>, um den Regionscode deines DVD-Laufwerks (unter Linux) zu setzen. <emphasis role="bold">Warnung</emphasis>: Du kannst nur 5 mal den Regioncode ändern. </para> </sect1> <sect1 id="vcd"> <title>VCD-Wiedergabe</title> <para> Für eine komplette Liste an verfügbaren Optionen lies bitte die Manpage. Die Syntax für eine Standard Video CD (VCS) lautet wie folgt: <screen>mplayer vcd://<replaceable><Track></replaceable> [-cdrom-device <replaceable><Gerät></replaceable>]</screen> Beispiel: <screen>mplayer vcd://2 -cdrom-device /dev/hdc</screen> Das Standard-VCD-Gerät ist <filename>/dev/cdrom</filename>. Wenn deine Installation davon abweicht, erstelle einen Symlink oder gib das genaue Gerät auf der Kommandozeile an mit der Option <option>-cdrom-device</option>. </para> <note> <para> <!-- TODO: have horrible performance reading VCD - zu ueberpruefen --> Mindenstens Plextor und einige SCSI-CD-ROM-Laufwerke von Toshiba haben eine schreckliche VCD-Leseleistung. Das liegt daran, daß der <systemitem>ioctl</systemitem> CDROMREADRAW für diese Laufwerke nicht vollstaendig implementiert ist. Wenn du ein bisschen Fachwissen über SCSI- Programmierung hast, <ulink url="../../tech/patches.txt">hilf uns</ulink> bitte, allgemeine SCSI-Unterstützggung für VCDs zu implementieren. </para> </note> <para> Inzwischen kannst du die Daten von VCDs mit <ulink url="http://ftp.ntut.edu.tw/ftp/OS/Linux/packages/X/viewers/readvcd/">readvcd</ulink> extrahieren und die ausgegebene Datei mit <application>MPlayer</application> abspielen. </para> <formalpara> <title>VCD-Struktur</title> <para> Eine Video CD (VCD) besteht aus CD-ROM XA Sektoren, z.B. CD-ROM Mode 2 Form 1 und 2 Tracks: </para> </formalpara> <itemizedlist> <listitem> <para> Der erste Track ist im Format Mode 2 Form 2, was bedeutet, dass es L2-Fehlerkorrektur benutzt. Der Track enthält ein ISO-9660 Dateisystem mit 2048 Bytes/Sektor. Das Dateisystem enthält VCD Metadata-Informationen ebenso wie Standbilder, welche oft in Menüs benutzt werden. MPEG-Segmente für Menüs können auch im ersten Track gespeichert werden, die MPEGs müssen aber in eine Serie von 150-Sektoren-Einheiten gestückelt werden. Das ISO-9660 Dateisystem kann auch noch andere Dateien oder Programme enthalten, welche nicht für VCD-Betrieb erforderlich sind. </para> </listitem> <listitem> <para> Der zweite und die restlichen Tracks sind generelle rohe 2324 Bytes/Sektor MPEG (Film) Tracks, welche ein MPEG-PS-Datenpaket pro Sektor enthalten. Diese sind im Format Mode 2 Form 1, so dass sie mehr Daten pro Sektor speichern können unter dem Verlust einiger Fehlerkorrektur. Es ist ebenso gültig, CD-DA Tracks in einer VCD nach dem ersten Track zu haben. Auf manchen Betriebssystemen gibt es ein paar Tricks, diese nicht-ISO-9660-Tracks im Dateisystem erscheinen zu lassen. Auf anderen Systemen wie GNU/Linux ist dies (noch) nicht der Fall. Hier können die MPEG-Daten <emphasis role="bold">nicht gemountet werden</emphasis>. Da sich die meisten Filme in einer solchen Art von Track befinden, solltest du zuerst <option>vcd://2</option> versuchen. </para> </listitem> <listitem> <para> Es existieren ebenso VCDs ohne einen ersten Track (einzelner Track und überhaupt kein Dateisystem). Diese sind trotzudem abspielbar, können aber nicht gemountet werden. </para> </listitem> <listitem> <para> Die Definition des Video-CD-Standards wird Philips "White Book" genannt und ist im Allgemeinen nicht online verfügbar, da es von Philips käuflich erworben werden muss. Detailliertere Informationen über Video-CDs befindet sich in der <ulink url="http://www.vcdimager.org/pub/vcdimager/manuals/0.7/vcdimager.html#SEC4">vcdimager- Documentation</ulink>. </para> </listitem> </itemizedlist> <formalpara> <title>.DAT Dateien</title> <para> Die ~600 MB Datei, die auf dem ersten Track einer gemounteten VCD sichtbar ist, ist keine richtige Datei! Es ist ein sogenanntes ISO-Gateway, geschaffen, um Windows den Zugriff auf solche Tracks zu geben (Windows erlaubt überhaupt keine direkten Zugriffe auf das Laufwerk). Unter Linux kannst du solche Dateien weder kopieren noch abspielen (sie enthalten Müll). Unter Windows ist dies möglich, da Windows ISO9660-Treiber das direkte Lesen der Tracks in diesen Dateien emuliert. Um eine .DAT Datei wiederzugeben, benötigst du einen Kernel-Treiber, welcher in der Linux-Version von PowerDVD zu finden ist. Es hat einen modifizierten ISO9660 Dateisystem-Treiber (<filename>vcdfs/isofs-2.4.X.o</filename>), welcher in der Lage ist, die rohen Tracks durch diese Schatten-.DAT-Dateien zu emulieren. Wenn du den Datenträger mit deren Treiber mountest, kannst du die .DAT Dateien kopieren und sogar mit <application>MPlayer</application> abspielen. Dies wird jedoch nicht mit dem Standard-ISO9660-Treiber des Linux-Kernels funktionieren! Benutze statt dessen <option>vcd://</option>. Alternativen für das Kopieren von VCDs sind der neue Kernel-Treiber <ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink> (nicht Bestandteil des offiziellen Kernels), welcher CD-Sessions als Imagedateien darstellt, und <ulink url="http://cdrdao.sf.net/">cdrdao</ulink>, ein Bit-für-Bit CD-Grabbing/Kopier-Programm. </para> </formalpara> </sect1> </chapter>