Blog

Dez122010

... und sie kann es doch!

Hallo, liebe Linux-Gemeinde!
Gestern ist mir mein PC verreckt, so dass ich meinen sieben Jahre alten Rechner wieder aufgebaut habe.
Nachteil: SLOOOOW ...
Vorteil: hier ist Linux nativ drauf und ich hab eine WinTV DVB-C Karte drinne.

Und jetzt kommt's: diese alte Karte, die ich bereits in meinem AMD-K6-3 400 MHz Rechner drinne hatte, die ich im Jahre 2001 noch unter Windows 98 betrieben hatte, die lange vor der Einführung von DVB-S2 hergestellt wurde, ist HDTV-fähig!

Doch nach und nach, erst einmal will ich die Karte unter Linux einrichten.
Als Erstes werde ich mir mal einige DVB-Programme installieren. Für GNOME kommt mir als erstes Me-TV in den Sinn.
Derzeit zwar nicht so sehr für das Fernsehen auf meinem alten PC geeignet, aber es installiert gleich alle nötigen Tools mit, die wir später noch brauchen werden.
Doch einige Hürden haben müssen noch genommen werden.
Eigentlich wird die Karte direkt vom Kernel unterstützt, aber es fehlt die Firmware für dieses Modell. Ubuntu Linux verfügt über einige Pakete, mit denen sich die Firmware für diverse Karten nachinstallieren lässt. Leider ist die Firmware für meine Karte nicht dabei.
Also muss ich mich selbst auf die Suche nach einer geeigneten Firmware machen. Früher, so erinnere ich mich, hatte ich die Firmware aus dem installieren Windows-Treiber kopiert - dies ist zu meinem Erstaunen nicht mehr nötig. Laut http://wiki.ubuntuusers.de/DVB-Karten#Karten benötige ich die Firmware dvb-ttpci-01-f12623-patched.fw aus dem LinuxVDR-Projekt.
Diese entpacke ich und kopiere sie nach /lib/firmware:
sudo cp dvb-ttpci-01-patched.fw /lib/firmware/
Nach einem Neustart des Rechners (oder irgendwelchen Befehlen, die ich nicht kenne) funktionieren alle Anwendungen mit meiner DVB-C-Karte - nur ein Kanal-Scan ist unter Linux so ein Problem ...
Nachdem ich mir den Inhalt einiger vorgefertigter Tabellen angeschau habe, die unter /usr/share/dvb/dvb-c/ zu finden sind, hab ich mir für Guben mit Hilfe der Informationen unseres Kabelnetzbetreibers meine eigene Kanaltabelle zusammengestellt. Diese will ich auch gleich zum Download anbieten ... de-Guben.tar.gz ... nach /usr/share/dvb/dvb-c/ entpacken! (möglicherweise stimmen einige Parameter von Sky und ARD-Radio nicht richtig)
Nachtrag: unter Ubuntu muss zwingend auch das Paket linux-firmware-nonfree installiert sein, wie ich nach einer Neuinstallation von Linux auf einem neuen PC festgestellt habe.

Nun kann Me-TV gestartet und ein Kanalscan für Deutschland, Guben durchgeführt werden. Da Me-TV noch nicht wirklich für's Fernsehen geeignet ist, muss was anderes her.
Von meinen früheren Bemühungen, die Karte zum Laufen zu bringen, weiß ich noch, dass mplayer sehr gut für DVB geeignet ist. Jedoch braucht es hier Kommandozeilen-Eingaben, bisher ist mir noch kein grafisches Frontend bekannt, welches all das macht, was ich jetzt vorhabe.
Mplayer DVB benutzt die channels.conf, die mit dem Scan-Befehl erstellt werden kann:
scan /usr/share/dvb/dvb-c/de-Guben > channels.conf
Die channels.conf nach in's Mplayer-Verzeichnis kopieren:
sudo cp channels.conf /etc/mplayer/ und fertig. Den Rest macht Mplayer automatisch oder von selbst ... wie auch immer.
Um mit dem Mplayer nun Digitalfernsehen zu gucken, gibt man folgendes ein:
mplayer "dvb://Das Erste" -vo gl_nosw
und schon schaltet der Mplayer auf das Erste, benutzt OpenGL-No-Software zur Video-Ausgabe (man, ist das schnell) und man kann das Programm genießen.

Doch nun zum Thema HD: scan bzw. auch vorher Me-TV haben auch die Programme "Das Erste HD", "ZDF HD" ... gefunden. Also ist es doch nicht abwägig, dass die Hardware fähig ist, den Stream zu empfangen. Klar, das Bild wird nicht MPEG2 kodiert gesendet, sondern in H.264, doch Mplayer spielt alles ab (abgesehen davon laufen die Sender bereits in Me-TV - jedoch sehr stockend).
Tunen wir doch mal den Mplayer auf einen HD-Sender:
mplayer "dvb://ZDF HD" -vo gl_nosw
und sehen, was passiert.
Es passiert nichts! Die Lösung: ein anderer Demuxer muss verwendet werden ... k.A., wieso, aber das steht hier so.
Ausprobiert:
mplayer "dvb://Das Erste HD" -demuxer lavf -cache 18000 -vo gl_nosw
und siehe da, ich kann Das Erste in HD sehen. Nur leider ist mein alter PC zu langsam, um das Signal flüssig darzustellen. Die Option mplayer -framedrop brachte leider nicht den gewünschten Erfolg. Jedoch weiß ich nun, dass die Hauppauge WinTV DVB-C (oder auch Nexus-C) HD-fähig ist und ich spiele mit dem Gedanken, die alte Karte auch in meinen nächsten Rechner wieder einzubauen um sie unter Linux zu benutzen.

Nachtrag:
Da ich ungern aufgebe, habe ich noch ein bisschen in der Mplayer FAQ gestöbert, wie ich die Ausgabe noch etwas beschleunigen kann. Ich bin glücklicherweise hier auch fündig geworden und möchte nun die Kommandozeile präsentieren, die es mir erlaubt, HDTV auf dem alten Rechner flüssig zu schauen:
mplayer -demuxer lavf -lavdopts skipframe=nonref:skiploopfilter=all -cache 18000 -vo gl_nosw dvb://"Einsfestival HD"
Die Schalter -lavdopts skipframe=nonref:skiploopfilter=all lassen zwar einige Frames unter den Tisch fallen, aber dafür werden 50% CPU-Power gespart.
-vo gl_nosw:yuv=2 soll wohl die Ausgabe noch ein klein wenig beschleunigen und -fs startet die Ausgabe sofort im Vollbild.

Nachtrag 2 (Fedora):
Ein Blick in die Boot-Messages (dmesg | less) zeigt, um die Karte unter Fedora zum Laufen zu bringen, ist die Firmware dvb-ttpci-01.fw nötig.
Diese kann hier heruntergeladen werden (einfach die neueste Version auswählen) und mit cp dvb-ttpci-01.fw* /lib/firmware/dvb-ttpci-01.fw installiert werden. Nach einem Neustart funktioniert die Karte dann auch unter Fedora.

Zum Schluss noch etwas, was dem Hersteller zu denken geben sollte!
Unter Windows XP, dem letzten unterstützten Betriebssystems für diese sau-teuere DVB-C-Karte-Premium mit Hardware-Dekoder, ist es eine Qual, Sender zu finden. Weder das mitgelieferte Hauppauge WinTV DVB-C, noch das Programm ProgDVB finden Sender auf Anhieb. Oft sind mehrere Duzend Suchläufe und Neustarts nötig, um Sender zu finden (gefundene Sender laufen dann mit 100% Signalstärke und 90+% Signalqualität). Dabei werden auch unter Windows vorgefertigte Kanaltabellen zum Scan benutzt (es wird also kein Blindscan durchgeführt).
Unter Linux jedoch werden ALLE verfügbaren Sender inklusive HD-Kanäen und der oft problematischen QUAM256-Sender gefunden - beim ersten Anlauf und auf allen Frequenzen! Selbst das Umschalten auf einen bereits gefundenen Sender ist unter Windows mit dem Herstellertreiber(!) ein Glücksspiel. Unter Linux funktioniert das Umschalten auf egal welchen Sender ohne Probleme und zuverlässig beim ersten Versuch.
Die Unzuverlässigkeit des Windows-Treibers stösst bei mir somit auf völliges Unverständnis! Die Karte ist zu so viel mehr fähig, jedoch wird das Produkt durch fehlerhafte und fehlende Software künstlich zum Altmetall degradiert!

Tags: