Hoho!
Für alle LinVDR-Nutzer eines PVR350-Systems (Ausgabe per pvr350-plugin) habe ich für die Weihnachstage etwas zum Basteln
Nachteil eines PVR350-Systems war bislang, dass Videodateien gar nicht bzw. nur sehr umständlich (X11 mit xine) abgespielt werden konnten.
Zwar gibt es seit längerer Zeit einen ivtv-Ausgabetreiber für mplayer (-vo ivtv bis ivtv-Treiberversion 0.10; -vo v4l2 für ivtv-Treiber 1.x.x), der (ähnlich mpegpes für die DVB-Karten) beliebige Formate in mpg wandelt und an die PVR350 schickt. Jedoch hat dieser Ausgabetreiber noch einige Unzulänglichkeiten:
- die Audioausgabe über ivtv (-ao ivtv) funktioniert nach meinen Experimenten nicht richtig. Meistens bleibt es stumm.
- Wenn das Video im mpeg-Format vorliegt, kann man die Tonausgabe per PVR350 (-ao v4l2) mittels "-ac hwmpa" erzwingen. Das klappt aber nicht bei allen mpeg`s, mitunter schrabbelt der Ton. Bei mpg`s mit ac3-Ton geht es ohnehin nicht.
- Pause und Spulen klappt bei Verwendung von "-ac hwmpa" nur mit ca. 5s Zeitverzögerung.
- gibt man den Ton mit "-ao alsa" über die Soundkarte aus, treten erhebliche Asynchronitäten auf.
- die CPU-Last erreicht selbst auf 1 GHz-System bis zu ca. 85% bei voller Auflösung. Lediglich bei mpeg2-Videos in Verbindung mit "-ac hwmpa" profitiert man wirklich vom Hardwaredekoder.
Kurzum: Das ist bislang m.E. nicht wirklich praxistauglich. Ein Grund, weshalb es nicht genausogut wie bei DVB-Karten und deren Ausgabetreiber mpegpes funktioniert, könnte in einer Hardwarebeschränkung begründet sein: Die PVR350 kann nur einen gemultiplexten PES-Stream (Video + Audio) wiedergeben. Man kann mpeg-Bild und mepg-Ton nicht getrennt an die Karte geben.
Soviel zur Vorgeschichte. Im Mai gab es dann einen Hoffnungsschimmer.
Lutz Koschorreck veröffentlichte in der ivtv-devel ML einen vidix-Ausgabetreiber für ivtv, der ohne X11 auskommt. Ursprünglich für fbxine gedacht, gibt es inzwischen einen ivtv-cvidix-Ausgabetreiber im mplayer-SVN. Nach einigen Experimenten mit den mplayer-Scripten kann ich nun ein Paket für LinVDR anbieten. Damit ist es möglich, nahezu beliebige Videoformate über den TV-Ausgang der PVR350 auszugeben, wobei jedoch der Hardwaredekoder außen vor bleibt. Es läuft also alles über die CPU. Ich rate Euch dringend, Eure CPU-Temperatur im Auge zu behalten, denn hier wird die CPU im Gegensatz zum reinen vdr-Betrieb richtig gefordet. Möglicherweise müsst Ihr euer Kühlkonzept überdenken.
Der Ton muss zudem über die Soundkarte ausgegeben werden. Daher sind zunächst einige Anpassungen erforderlich, die ich hier beschrieben habe.
Wenn Ihr das alles erfolgreich eingerichtet habt (Meilenstein: die Wiedergabe von mp3-Dateien mittels mp3oss funktioniert) , kann es nun an das mplayer-Paket gehen.
edit 12.01.2008: Ehe Ihr wie nachstehend das mplayer-Paket installiert, updatet bitte auf Kernel 2.6.23.9 (siehe Link in meiner Signatur) + Toxic-Tonic vdr-Paket ext40 + (als letztes) meine aktualisierten pvr-Plugins (siehe 1. Beitrag im 2.6.23.9-Thread). Das mplayer-Paket und die neuen libs sind z.T. mit gcc 3.3 kompiliert und benötigen libs, die nur in meinem Kernelpaket drin sind.
http://drseltsam.device.name/vdr/mplayer_pvr350.tgz runterladen und installieren:
Die Schnitzeljagd geht weiter :-). Jetzt müsst Ihr wie hier beschrieben die codecs installieren, die zur Wiedergabe von wmv, Divx etc. benötigt werden. (Ihr könnt dabei gleich mit "cd /usr/lib/codecs" in den Ordner gehen, da dieser beim Auspacken des mplayer_pvr350-Paketes bereits angelegt wurde.)
Damit Ihr nicht in Versuchung geratet, zum Testen irgendwelche zweifelhaften FSK18-Gymnastikvideos runterzuladen, könnt Ihr http://trailers.divx.com/indie/Eikesdalen.divx zum Testen nehmen.
Ihr könnt nun das mplayer-Plugin aufrufen und (ggf. über Datenträger - Lokale Platte) in den Ordner /pub/mplayer wechseln und Euer Video auswählen. Es sollten sämtliche Auflösungen bildschirmfüllend und formatrichtig abgespielt werden. Der Ton ist lippensynchron, Pause/resume funktioniert perfekt und auch Sprünge in kleinen Schritten (Pfeiltasten links/rechts) bzw. größeren Schritten (gelbe/grüne Taste) sind möglich.
Ich habe etliche Videos im Vergleich sowohl auf meinem FF-VDR laufen lassen als auch auf dem PVR350-System. Die CPU-Last ist je nach Auflösung des Videos z.T. sogar auf dem PVR350-System geringer. Hier entfällt ja die Umwandlung in mpeg, da die PVR350 über den cvidix-Treiber wie eine Grafikkarte angesprochen wird. Auch die Bildqualität ist daher über die PVR350 in der Regel besser. Vorteil der DVB-Karte ist hingegen, dass hier der Dekoder auch kleinere Auflösungen bildschirmfüllend abspielen kann, so dass durch die Umwandlung höher aufgelöster Videos in mpegs mit kleinerer Auflösung eine Reduzierung der CPU-Last möglich ist.
Noch ein Hinweis: Über den Punkt "Datenträger" lässt sich auch
"DVD or VCD /etc/vdr/plugins/DVD-VCD" auswählen. Auf diese Weise können mit mplayer auch DVDs abgespielt werden (ohne Menüunterstützung). Das sollte allerdings nur ein Notbehelf sein, denn inzwischen funktioniert ja auch das dvd-Plugin, so dass man DVDs mit voller Unterstützung des mpeg2-Hardwaredekoders CPU-entlastend abspielen kann.
Zum Abschluß noch ein paar Infos für die technisch Interessierten:
wie wurde mplayer übersetzt?
.
/configure --prefix=/usr --disable-x11 --disable-xinerama --disable-fbdev --disable-vesa --disable-tga --disable-jpeg --disable-ftp --disable-network --enable-runtime-cpudetection --disable-mencoder --enable-largefiles --disable-png --disable-smb --disable-gif --with-vidix-drivers=ivtv --enable-v4l2 --enable-ivtv
welcher gcc wurde verwendet?
gcc-3.3. Die dafür auf dem Zielsystem benötigten libs sind Bestandteil meines Kernelpaketes
was hat es mit /usr/bin/mplayer-multi in dem Paket auf sich?
siehe http://www.js-home.org/vdr/mplayer-multi/index.php
Das mplayer_pvr350-Paket enthält ferner einige aktualisierte Bibliotheken.
PS: Ich bin voraussichtlich erst wieder morgen online! Frohe Weihnachten, lasst Euch reich beschenken