Kategorie-Archiv: Linux Multimedia

Ubuntu 9.04 und TrekStor Vibez MP3 Player

Mein TrekStor Vibez MP3-Player wurde unter früheren Linux-Distributionen immer als USB Massenspeicher erkannt. Daten liessen sich ohne Probleme wie bei einem USB Stick kopieren. Unter Ubuntu 9.04 wird das Gerät als Vibez MP3 Player erkannt, es lassen sich aber keine Daten kopieren. Die Ursachen dieses Fehlers und seine Behebung sind folgendermassen zu beschreiben:

Der Fehler

Für die Erkennung von USB Geräten und die Einbindung in das System ist u.a. HAL (hardware abstraction layer) zuständig. Bei Anschluss eines USB Geräts scannt HAL dieses und entscheidet über die Einbindungsart. Für den TrekStor Vibez ist in /var/log/messages zu sehen:


[1] usb 2-1.2: new high speed USB device using ehci_hcd and address 7
[2] usb 2-1.2: configuration #1 chosen from 1 choice
[3] scsi12 : SCSI emulation for USB Mass Storage devices
[4] gvfsd-gphoto2[22362]: segfault at c ip b7d629e0 sp bfbf4c24 error 4 in libpthread-2.9.so[b7d5b000+15000]

In Zeile 1 wird das Gerät erkannt, in Zeile 4 wird das für dieses Gerät zuständige GVFS Modul gestartet. GVFS ist die GNOME Implementierung eines virtuellen Dateisystems auf Benutzerebene. Es abstrahiert reale Dateisysteme und bietet eine einheitliche Schnittstelle für Anwenderprogramme, z.B. für Nautilus. Das Problem hier ist nur: Das gvfsd-gphoto2 Modul stürzt nach dem Laden mit einem Segmentation Fault ab ! Dies ist ein bekannter Bug (ua. https://bugs.launchpad.net/ubuntu/+bug/345916).

Die Lösung

In diesem Artikel fand sich ein Lösungsansatz:

  1. Aus einem Terminal heraus als Systemverwalter nach /usr/share/hal/fdi/preprobe/10osvendor/ wechseln
  2. Eine Sicherheitskopie der Datei 20-libgphoto2.fdi machen
  3. Die Originaldatei in einen Editor laden und nach „TrekStor“ suchen
  4. Der Eintrag findet sich in einem Konfigurationsblock, der mit

    <match key="usb.vendor_id" int="1647">

    beginnt.
  5. Dieser Block (11 Zeilen) wird gelöscht. Dadurch wird die Zuordnung des Moduls gvfsd-gphoto2 entfernt.

Wenn man danach das Gerät wieder anschliesst, wird es korrekt als Massenspeicher erkannt. Das zeigt sich auch im Protokoll:


usb 2-1.2: new high speed USB device using ehci_hcd and address 10
usb 2-1.2: configuration #1 chosen from 1 choice
scsi15 : SCSI emulation for USB Mass Storage devices
usb 2-1.2: reset high speed USB device using ehci_hcd and address 10
scsi 15:0:0:0: Direct-Access TrekStor vibez 2 PQ: 0 ANSI: 4
sd 15:0:0:0: [sdg] 23429729 512-byte hardware sectors: (11.9 GB/11.1 GiB)
sd 15:0:0:0: [sdg] Write Protect is off
sd 15:0:0:0: [sdg] 23429729 512-byte hardware sectors: (11.9 GB/11.1 GiB)
sd 15:0:0:0: [sdg] Write Protect is off
sd 15:0:0:0: [sdg] Attached SCSI removable disk
sd 15:0:0:0: Attached scsi generic sg8 type 0

Mit dieser Änderung lassen sich wieder Dateien kopieren. Zuständig ist jetzt das usb-storage Modul, das den USB Massenspeicher als SCSI Gerät einbindet.

Analoge Audioquellen in MP3 umwandeln

WAV Dateien in MP3 umwandeln

Hierzu ist der Lame das Mittel der Wahl:


lame -h --scale 1 datei.wav datei.mp3

wandelt die WAV Datei in eine MP3 Datei um, dabei hohe Qualität (-h) verwenden und die Laustärke um den angegebenen Faktor erhöhen (1 bedeutet also keine Erhöhung).

UPnP Mediaserver für Linux

Wenn ein UPnP Media Server auf einem Linux-Server installiert ist und dieser mittels iptables eine lokale Firewall besitzt, wird es schwierig. Zunächst sind folgende Ports für den Zugriff durch die Streaming Clients zu öffen:

  • 1900 udp und tcp
  • UDP 1030, 1900, 9080
  • Eine breite Port-Range ab 9000/tcp (sofern diese als Startadresse konfiguriert ist), der Server inkrementiert im Betrieb seinen Port gelegentlich !

(ich benutze TwonkyMedia, vielleicht brauchen andere Server andere Adressen)

Dann muss zusätzlich zur eigentlichen IP Adresse des Servers auch die Multicast Adresse 239.255.255.250/255.0.0.0 als Serveradresse (also Zieladresse) in den Firewall-regeln eingetragen sein. Ohne den Eintrag erreichen Suchmeldungen von UPnP Clients den Server nicht und können
diesen nicht benutzen.

Gigaset M740AV DVB-T Aufzeichnungen auf DVD brennen

Für den DVB-T Empfang verwende ich eine Settop-Box von Siemens, das Gigaset M740-AV. Diese Box besitzt einen Ethernet-Port und kann auf SMB-Shares im Netzwerk direkt aufzeichnen. Die erzeugten Dateien enthalten die DVB Tranport Streams (MPEG), allerdings wird ein eigenes Format verwendet. Dies zerlegt die aufgezeichneten Sendungen in einzelne, jeweils max. 250 MB grosse Dateien.
Um daraus Video-DVD’s zu machen, sind mehrere Schritte nötig:

  1. Die einzelnen, zu einer Aufzeichnung gehörenden Dateien werden zu einem Transport Stream (TS-Format) zusammengefügt. Dazu benutze ich das Java-Programm Cridmanager unter Linux. Da meine Aufnahmen sowieso auf einem Netzwerk-Server liegen, mounte ich den entsprechenden Share auf meiner Workstation und benenne den Mountpoint als Verzeichnis im Cridmanager.
  2. Anschliessend entferne ich Vor- und Nachlauf sowie die Werbeeinblendungen
    in den Aufnahmen. Hierzu dient das Programm ProjectX Beim Schneiden zerlegt ProjectX den TS-Stream in eine Audio- und eine Video-Datei (Demultiplexing, „demux“).
  3. Vor der weiteren Bearbeitung müssen die Demux-Dateien wieder zusammengefügt werden (Multiplexing). Dazu verwende ich das Tool „mplex“ aus den MJpeg Tools.mplex -f8 -v1 -o output.mpg input.m2v input.m2a

    wobei .m2v die Video- und .m2a die Audio Datei ist, die Dateiendungen können abweichen.

    Am Ende liegt eine MPEG2-Datei (.mpg) vor, die sich bereits mit gägigen Video-Abspielern unter Linux (xine, VLC, MPlayer) abspielen lässt. Auf meinem Server habe ich einen weiteren Share eingerichtet, auf dem ich diese Dateien sammle. Dieser Share ist auf dem Gigaset M740-AV als weiterer PC angemeldet, über die Funktion „Media Locator“ kann ich die Aufnahmen der Sammlung direkt abspielen.

  4. Zur Langzeit-Archivierung besonders beliebter Aufnahmen sinnvoll, aus den Aufnahmen Video-DVD’s zu brennen. Dazu sind unter Linux einige Tools verfügbar; als Frontend bietet sich das GUI (GTK/Gnome Anwendung) DeVeDe an. Diese erzeugt ISO-Images von Video-DVDs, die ich mit K3B auf einen DVD Rohling brenne.

Tipps und Probleme

  1. Cridmanager und ProjectX brauchen das richtige Java Runtime Environment (JRE)Das unter Fedora Core 6 normalerweise installierte JRE ist nicht brauchbar für den Cridmanager. Es gibt Fehlermeldungen beim Start und die Fensterbereiche lassen sich nicht zoomen, die Baumstruktur des crid-Verzeichnisses beim Cridmanager ist nicht erkennbar, ProjectX zeigt kein Bild usw. Zur Problemlösung ist das aktuelle Java Runtime Environment (JRE) (derzeit Version 6 Update 4) von SUN zu installieren. Danach ist es allerdings noch nicht als verwendete „Default“ Umgebung aktiv, sondern muss durch den „Alternatives“ Mechanismus aktiviert werden (root-Rechte nötig):

    /usr/sbin/alternatives --install /usr/bin/java java /usr/java/j2re6u3/bin/java 2
    /usr/sbin/alternatives --config java

    (der Pfad zu bin/java kann abweichen, also prüfen !)

    Der letzte Befehl bringt ein Auswahlmen¨ zur Wahl der Java-Umgebung, hier muss die eben installierte Umgebung gewählt werden.

  2. Video-DVDs flackern/ruckeln beim Abspielen auf einem Hardware DVD Player am FernseherBewegungsunschärfen bei Video-DVDs im PAL Format sind i.d.R durch Probleme beim Interlacing (Zeilensprungverfahren) begründet. Ein normales PAL Bild mit 720 Spalten und 576 Zeilen wird zwei Halbbildern mit jeweils halber Zeilenanzahl gesendet (gerade/ungerade Zeilen). Diese müssen natürlich in der richtigen (ursprünglichen) Reihenfolge in der PAL- MPEG-Datei (interlaced) liegen. Ist diese Reihenfolge durcheinander, sind unbewegte Bildteile scharf, bewegte Teile flackern jedoch.

    Abhilfe schafft bei mir ein Deinterlacing des Videos (in DeVeDe einstellbar, FFMGPEG-Deinterlacing). Dann werden die Halbbilder zu Vollbildern synchron vereinigt.

    Ein paar Hintergründe (mein derzeitiger Wissensstand):

    • Software-Videoplayer am PC oder LCD/Plasma-Fernseher zeigen deinterlaced Videos direkt an. Werden sie mit interlaced MPEG gefüttert, wird das Bild vor der Anzeige deinterlaced- ein digitales System kennt keine Zeilsprünge, sondern nur Pixel.
    • Hardware-DVD Player erzeugen am analogen Ausgang (PAL, SCART) immer ein interlaced Bild, auch wenn sie mit deinterlaced MPEGS gefüttert werden (also Progressive Scan kennen). An einem Digital-Ausgang liegt immer ein deinterlaced Signal an (eben digital)
    • Ist ein LCD-Display per PAL Scart an einen DVD Player angeschlossen und spielt der ein deinterlaced MPEG ab, findet also erst ein Interlacing (DVD Player) und dann ein Deinterlacing (LCD) statt- die Qualität ist also entsprechend… besonders, wenn das PAL Bild auf die Pixel des Displays skaliert /interpoliert werden.
    • Auch 100Hz Röhrenfernseher machen Deinterlacing und senden dann mit 100Hz das Bild ohne Zeilensprung an die Röhre.
  3. Richtige Sampling-Raten für Video-DVDsDas Audio-Sampling sollte nicht über 192 Kbps liegen, sonst kriegen Hardware-DVD Player Probleme, eine Video-Rate von 5011 Kbps ist für die Gigaset-MPEGs ideal (Originalrate). Kauf-DVDs kennen oft eine variable Bitrate, die je nach Bildinhalt (Grossaufnahmen vs. Panoramaansichten) angepasst ist.

Scanner unter Linux

Scanner unter Linux zu verwenden ist noch immer ein reizvolles Thema:

  • Kaum ein Hersteller unterstützt Linux direkt
  • Es gibt viele verschiedene Scanner mit sehr unterschiedlichem Hardware-Aufbau
  • Informationen zur Hardware werden oft vom Hersteller geheimgehalten
  • Es existieren verschiedene Anschlussarten (USB, SCSI, Parallelport, eigene Interfaces,…)

Auf dieser Seite sind einige Hintergründe und Tipps zusammengefaßt, wie Sie trotzdem Spass mit einem Scanner unter Linux haben können.

Ansteuerung

Das Ansteuern eines Scanners unter Linux geschieht nur auf Ebene des Anschlusses durch Kernelfunktionen (also z.B. usb- Module). Die Kommunikation über diesen Anschluss geschieht durch Programme auf Anwenderebene. Mittlerweile wird fast ausschliesslich SANE verwendet. Diese Software ist modular aufgebaut und unterscheidet einen Backend-Bereich mit den eigentlichen Scanner-Treibern und einen Frontend- Bereich mit den Benutzerprogrammen zum Scannen.
SANE ist netzwerktransparent, es können also auch mehrere Rechner über das Netz auf einen Scanner zugreifen.

SANE benutzen

  • InstallationSANE ist Bestandteil jeder grossen Distribution und wird über die jeweilige Paketverwaltung installiert. Wichtig ist: Es müssen sowohl das Frontend- als auch das Backend-Paket installiert werden.
  • KonfigurationSANE stützt sich auf folgende Konfigurationsdateien (Pfadangaben für Redhat-Linux):
    1. /etc/sane.d/dll.conf: Aktive Backends (Treiber) für die jeweiligen Scanner. Auf der SANE Homepage befindet sich eine Übersicht, welcher Scanner welchen Treiber benötigt. Um gegenseitige Beeinflussungen der Treiber zu vermeiden, sollten hier alle nicht benötigten Treiber auskommentiert werden.
    2. /etc/sane.d/xyz.conf: Konfiguration für Backend xyz. Hier können je nach Backend verschiedene Optimierungseinstellungen vorgenommen werden
  • ScannererkennungMit dem Befehl sane-find-scanner gibt SANE eine Liste der erkannten Scanner aus. Ist der angeschlossene Scanner enthalten, funktioniert alles weitere. Anderenfalls ist Störungssuche gefordert:
    1. Wird der Scanner überhaupt unterstützt
      (Liste auf der SANE Homepage) ?
    2. Ist der Anschluss korrekt konfiguriert und wird der Scanner hardwareseitig erkannt ?
      • USB: cat /proc/bus/usb/devices
      • SCSI: cat /proc/scsi/scsi
      • Parallelport: Unter /proc/sys/dev/parport finden sich Angaben zu den jeweiligen ParallelportsHinweis:SANE unterstützt nur wenige Parallelport-Scanner. Die Konfiguration eines bidirektionalen Parallelports ist unter Linux u.U. schwierig, ausserdem sind manche Parallelschnittstellen in den Chipsätzen der Rechner fehlerhaft und funktionieren nicht korrekt.
  • Scanner testenEin erster Test kann direkt von der Kommandozeile mit scanimage -d plustek:/dev/usb/scanner0 –format pnm > outfile.pnm

    geschehen, wobei plustek ausgewählte Backend darstellt und /dev/usb/scanner0
    den über sane-find-scanner ermittelten Device. Hier müssen die Angaben zum jeweiligen Modell verwendet werden.

    Die erhaltene Datei outfile.pnm lässt sich mit GIMP direkt betrachten.

  • FrontendsFür alle weiteren Scan-Versuche ist ein Frontend wie xsane die richtige Wahl; es ist im Frontend-Paket zu SANE enthalten.

SANE optimieren

  • FarbbalanceWenn die erhaltenen Scans fehlerhafte Farben aufweisen, ist meist eine Optimierung der Farbbalance in der Backend-Konfiguration erforderlich. Bei umax und plustek geschieht dies über die „gain“ Werte (red-gain, green-gain, blue-gain).Hinweise stehen in den Manual-Pages zu den Backends, die mit
    man sane-xyz einzusehen sind.

Probleme und Lösungen

  • Sane meldet plötzlich nach erfolgreichem Betrieb „Cant’t find scanner“Dieser Fehler tritt gelegentlich bei USB-Scannern auf, wenn ein anderes
    Anwenderprogramm den USB Bus nach Geräten durchsucht und diese benutzen
    will. Ein Beispiel ist der Konquerer von KDE mit der URI devices:/. Meist
    hilft dann nur ein Entladen und Neuladen der usb-uhci Kernelmodule
  • Scans mit Canon Lide 20 weisen einen starken Rotstich auf
    1. Dieser Fehler tritt auch mit dem aktuellen Release von Sane auf. Ein
      Workaround ist über passende „gain“ Werte möglich.

      /etc/sane.d/plustek.conf (Ausschnitt)

      option red_gain 8

      option green_gain 41

      option blue_gain 38

    2. Der Fehler ist im aktuellen Sane Snapshot behoben. Die Farbkalibrierung
      der älteren Versionen wurde zu früh beendet, wodurch der Scanner einen Rotstich bewirkte. Dies ist auch sichtbar während des Scan-Vorgangs: Die Snapshot-Version scannt mit fast weissem Licht, die Release-Version von Sane mit rötlichem Licht.Der verwendete Snapshot (sane-backends-1.0.13-gja-090104.tgz) ist auf der Sane Plustek Backend als Quellcode zu bekommen (Stand 15.04.2004).

Links zum Thema

  • SANE
    Scanner Access Now Easy- die Softwarekollektion für die Scanner-Anbindung mit Linux
  • Sane Plustek Backend
    Ein SANE Backend für Plustek-Scanner, das auch Canon LiDE Scanner versorgt