Aus LinuxUser 08/2003

xine, eine freie Playerbibliothek (Seite 2)

Fallstricke

xine spielt inzwischen ohne zusätzliche Plugins unverschlüsselte DVDs ab. Allerdings ist dazu auf manchen Systemen dennoch etwas Vorarbeit nötig. Zunächst sollten Sie einen symbolischen Link /dev/dvd anlegen, der auf die Gerätedatei des DVD-Laufwerks zeigt. Hier ist ein Beispiel für ein als Master am zweiten IDE-Controller angeschlossenes DVD-Laufwerk:

ln -s /dev/hdc /dev/dvd

Oft hilft ein Blick mit dem Programm dmesg in die Kernel-Log-Meldungen, um herauszubekommen, welches Block-Device dem DVD-Laufwerk entspricht:

guenter@wolverine:~$ dmesg | grep -i dvd
hdc: HITACHI DVD-ROM GD-2500, ATAPI CD/DVD-ROM drive
hdc: ATAPI 24X DVD-ROM drive, 512kB Cache, DMA

Schwieriger wird es auf Systemen, die die IDE-SCSI-Emulation benutzen (/proc/scsi/ide-scsi vorhanden). In diesem Fall bildet der Kernel die IDE-Devices auf SCSI-Devices /dev/scd@L: * ab, und der Anwender spricht diese an Stelle der IDE-Geräte an. Hier leistet das Programm cdrecord wertvolle Hilfe:

rai23:~# cdrecord -scanbus
Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jörg Schilling
Linux sg driver version: 3.1.22
Using libscg version 'schily-0.5'
scsibus0:
        0,0,0     0) 'TOSHIBA ' 'DVD-ROM SD-M1612' '1004' Removable CD-ROM
        0,1,0     1) 'ATAPI   ' 'CD-R/RW 20X10   ' 'H.BK' Removable CD-ROM

Auf diesem Rechner sprechen Sie das DVD-ROM Laufwerk als das erste SCSI-CD-Device an, also /dev/scd0. Entsprechend legen Sie den Link dann mit ln -s /dev/scd0 /dev/dvd an.

Als nächstes prüfen Sie mit hdparm, ob das DVD-Device im DMA-Modus angesprochen wird, und schalten diesen gegebenfalls ein. Andernfalls spielen auch aktuelle Rechner DVDs nicht flüssig ab:

rai23:~# hdparm /dev/hdc
 using_dma    =  0 (off)

In diesem Fall ist der DMA-Modus also nicht aktiviert. Aktivieren Sie ihn mit dem folgenden Kommando:

rai23:~# hdparm -d 1 /dev/hdc
/dev/hda:
 setting using_dma to 1 (on)
 using_dma    =  1 (on)

Wenn auf dem Rechner die IDE-SCSI-Emulation aktiv ist, sollte hdparm trotzdem auf das IDE-Device und nicht etwa auf das SCSI-Device angewendet werden.

Nehmen Sie den Aufruf von hdparm möglichst in ein Init-Skript auf, damit er bei jedem Boot-Vorgang ausgeführt wird. Bei Debian-Systemen bietet sich hierzu beispielsweise das Skript /etc/init.d/hwtools (apt-get install hwtools) an.

Nach dieser Vorarbeit spielt xine unverschlüsselte DVDs ab. Die meisten Frontends bieten dazu einen DVD-Button oder -Menüeintrag an, oder Sie starten das entsprechende Frontend einfach von der Kommandozeile, wie in diesem Beispiel gxine:

gxine dvd://

Der Aufruf kann bei anderen Programmen variieren. Klappt die DVD-Wiedergabe nicht, kann das mehrere Ursachen haben. Am wahrscheinlichsten ist, dass die DVD Region-kodiert und/oder verschlüsselt ist. Xine selbst prüft die Region zwar nicht, aber neuere DVD-Laufwerke (so genannte RPC-2-Laufwerke) unterbinden den Zugriff schon auf Firmware-Level, wenn die Region der DVD nicht mit der im Laufwerk eingestellten Region übereinstimmt.

Abhilfe schafft hier das Regionset-Utility von der Web-Seite http://www.linuxtv.org. Es ist als RPM-Paket beispielsweise unter [3] zu finden. Anwender einer nicht-RPM-basierten Distribution erhalten den Source-Tarball mit alien –to-tgz aus dem Source-RPM. Anschließend packen Sie das Programm mit tar xfvz [Tarball-Name] aus und kompilieren es mit einem einfach make-Aufruf.

Ein weiteres Hindernis sind verschlüsselte DVDs. Aus rechtlichen Gründen kann xine keinen Code zur Dekodierung des dort eingesetzten Content Scrambling System (kurz CSS) enthalten. Ist allerdings die libdvdcss vorhanden, sollten sich beliebige DVDs wiedergeben lassen. Beachten Sie hierbei aber die Lizenz- und Urheberrechtsbestimmungen (siehe auch Artikel zu Ogle). Das Entschlüsseln der DVD-Inhalte ist rechtlich problematisch.

Grundsätzlich können Sie in DVD-Menüs mit Hilfe der Maus, der Tastatur oder auch per Infrarot-Fernbedienung navigieren. Bei den meisten Frontends erfolgt die Navigation per Tastatur über die Tasten im Ziffernblock der Tastatur. Zusätzlich stehen die Funktionstasten [F1] bis [F3] zur Verfügung, um aus dem Film direkt in das DVD-Menü zurückzuspringen.

Video-CDs abspielen

Von Haus aus spielt xine Video-CDs (VCDs) ab. Die meisten Frontends bieten dazu einen VCD-Button oder -Menüeintrag. Auch von der Kommandozeile können Sie die VCD-Wiedergabe starten, beispielsweise mit

gxine vcd://

Einzige Voraussetzung ist, dass der Link /dev/cdrom auf das Laufwerk zeigt, in dem die VCD liegt. Neuere VCDs verfügen, ganz ähnlich wie DVDs, über ein Menüsystem, das dem Anwender Informationen über das Medium präsentiert. Um dieses zu benutzen, installieren Sie das seperat unter [4] erhältliche Xine-VCDX-Plugin.

Nach einem Neustart erkennt xine automatisch das neue Plugin, und die meisten Frontends bieten entsprechende VCDX-Buttons oder Menüeinträge an; auf der Kommandozeile sieht das Ganze so aus:

gxine vcdx://

Performance optimieren

Insbesondere – aber nicht nur – die DVD-Wiedergabe erzeugt auf aktuellen Systemen einiges an CPU-Last. Ruckelt die Wiedergabe, gibt es eine Menge Möglichkeiten zur Optimierung. Im Abschnitt über DVDs fand bereits der DMA-Modus Erwähnung. Dieser sollte auf jeden Fall (übrigens auch für die Festplatten im System) aktiviert sein.

Sehr wichtig ist die richtige Wahl des Plugins zur Video-Ausgabe. Versuchen Sie es auf jeden Fall mit den so genannten Xv-Extensions (X Video), die ab XFree 4.0 im X-Server-Paket enthalten sind: Damit kann die Grafikkarte die Farbraumkonvertierung und Skalierung der Videodaten übernehmen, und das bringt einen gewaltingen Performance-Schub.

Mit dem folgenden Befehl finden Sie leicht heraus, ob der verwendete Treiber für die Grafikkarte die Videoausgabe von xine beschleunigen kann:

xvinfo

Das ist der Fall, wenn die Liste der Bildformate (Image formats) die Formate YUY2 und YV12 enthält:

Number of image formats: 5
[…]
      id: 0x32595559 (YUY2)
[…]
      id: 0x32315659 (YV12)

Finden Sie die letzten beiden Zeilen, ist alles in Ordnung. In diesem Fall sollte xine automatisch die Xv-Extension benutzen. Ansonsten machen Sie einen entsprechenden Eintrag in der Konfigurationsdatei oder übergeben die Option als Parameter auf der Kommandozeile:

gxine -V Xv

Funktioniert der Xv-Support nicht, sehen Sie sich nach aktuelleren Treibern für die verwendete Grafikkarte um. Oft wirkt ein Upgrade auf eine aktuelle XFree86-Release schon Wunder. Beispielsweise unterstützt die momentan aktuelle XFree86-Version 4.3.0 Xv auf i830-Chipsätzen, die in vielen Notebooks eingebaut sind.

In anderen Fällen bieten die Hersteller der Grafik-Chips separate Treiber an. So unterstützen nur die Treiber im Binärformat von Nvidia Xv auf älteren RivaTNT-Grafikkarten. Die Xine-FAQ enthält eine detaillierte Liste von Grafik-Chips und Quellen für Xv-fähige Treiber [5].

Multimedia im Kernel

Wer seinen Linux-Kernel selbst kompiliert, sollte hier Einiges beachten. Zunächst schalten Sie unbedingt den MTRR-Support ein. Dies bringt auf allen aktuellen CPUs erhebliche Performance-Verbesserungen bei der Grafikausgabe.

Außerdem hat sich der Preemptive-Scheduler-Patch bewährt. Für echte Experten sei gesagt, dass das Heraufsetzen der Hz-Zahl auf 1000 die Videowiedergabe nochmals erheblich flüssiger macht, weil dadurch die einzelnen Videobilder präziser zur richtigen Zeit dargestellt werden können.

Wem das alles nichts sagt, der kann sich beruhigt zurücklehnen: Viele Distributionen integrieren die entsprechenden Patches bereits in ihre Kernel, und spätestens Linux 2.6 kommt von Haus aus mit entsprechend verbessertem Scheduler daher, wie aktuelle 2.5er-Versionen schon heute zeigen.

LinuxUser 08/2003 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: