VDR auf Beagleboard

  • Moin!


    Bisher war ich hier nur lesend dabei, weil mein "Haupt-VDR" mit seiner speziellen Hardware eher hier behandelt wird. Nun habe ich mir aber auch ein Beagleboard zugelegt und auch darauf einen VDR aufgesetzt (Basis: Angström). Ich denke, das könnte auch für andere Leute interessant sein. Meine Vorgehensweise habe ich hier etwas genauer beschrieben.


    Leider klappt noch nicht alles. Ich nutze einen USB-DVB-T-Stick (also eine Budget-Lösung), was angesichts der Hardware des Beagleboards eigentlich kein Problem ist - nur: Der VDR weiß natürlich nichts von dieser Hardware. Dummerweise ist es mir noch nicht gelungen, das Softdevice-Plugin auf dem Beagleboard zu kompilieren. So experimentiere ich derzeit mit dem Streamdev-Server-Plugin bzw. dem FFNetDev-Plugin, um dann lokal mit MPlayer oder VLC auf diese Streams zuzugreifen, wobei MPlayer wegen spezieller Anpassungen an die Hardware des Beagleboards performanter ist. Noch besser wäre es vermutlich, den Stream mit GStreamer abzugreifen, weil sich die Entwicklung rund um den Beagleboard-DSP auf GStreamer konzentriert - man muss das Rad ja nicht neu erfinden.
    Alle diese Lösungen haben einen Schönheitsfehler: Man hat keinen (direkten) Zugriff auf das OSD und auch um eine Fernbedienung zu nutzen, muss man zumindest Verrenkungen anstellen.


    Falls jemand Interesse an einem Gedanken- und Erfahrungsaustausch zum VDR auf dem Beagleboard oder anderen OMAP-Plattformen hat - nur zu, ich bin ganz Ohr.


    Gruß und schönen Sonntag noch,


    Thomas

  • Hi,


    ich finde das Thema interessant. Wor allem wenn das Board wirklich mit 1,5 Watt Leistungsaufnahme hinkommt. Wäre interessant was so ein System mit einer USB 2,5" Platte, 2x DVB und USB-LAN-Adapter für eine gesamt Leistungsaufnahme hat.


    Zur eigentlichen Arbeit kann ich leider nichts zubringen, da ich beruflich sehr eingebunden bin.


    Viel Erfolg weiterhin, habe das Forum als Lesezeichen abgespeichert und werde unauffällig beobachten. ;)


    Gruß


    Snowyrain

    Mainboard: ASUS N7V8X Chipsatz: Nvidia Nforce Sound: Realtek (ungenutzt) CPU: Duron 1000 RAM: 2x512MB SD-DDR Eingabegerät: Technisat Skystar 2.6d, Irgendwas mit SAA-7146 Chip DVB-S, TT 1200 DVB-T Ausgabegerät: Xineliboutput Laufwerk: DVD Festplatte: 160GB IDE Grafik: Geforce 5200 128MB mit TV-Out AGP Lan: 3COM


    Software: Easyvdr 1.6 mit VDR-1.6.0

  • Kling wirklich sehr interessant.
    Was man so alles mit einem ARM anstellen kann...


    Sind denn die Treiber für den DSP und den Grafikkern OpenSource?

    VDR-Server: AMD Athlon X2 5200+ ,ASUS M3N78 (Geforce8200), 2x 2GB RAM, 2xTT DVB-C 1501, 3x WD AV-GP 2000GB in RAID5, yaVDR 0.5
    Client 1: Desktop PC, Win7

  • So auf die Schnelle und aus dem Kopf:
    Nein, Open Source sind die Treiber leider nicht. Allerdings kooperiert Texas Instruments als relevanter Hersteller bislang wohl recht gut mit der Community, aber um eine Registrierung für den Download des SDKs kommt man (soweit ich weiß) nicht herum. Hier solltest Du mehr herausfinden können.
    In den Angström-Feeds für das Beagleboard gibt (gab?) es allerdings ein Paket mit den fertigen Modulen und Codecs für GStreamer, die man auch ohne SDK (und Registrierung) nutzen kann. (siehe http://groups.google.com/group…/thread/0a88dccbb7acc06c#)
    Da meine "Programmier"-Kenntnisse leider bei Scripten aufhören, habe ich alleine keine Chance, dem VDR selbst die Bildausgabe (per Softdevice oder wie auch immer) beizubringen. Daher bastle ich derzeit an Lösungen, die zwar weniger elegant, aber für mich umsetzbar sind.
    Was schon recht ordentlich geht:
    *VLC als Frontend für einen VDR mit ffnetdev-Plugin. Damit kommt man auch an das OSD. Allerdings gibt es für den Beagleboard-VLC keine optimierte Videoausgabe und Xv ist in diesem Szenario tendenziell zu lahm.
    *Mplayer als Frontend für einen VDR mit ffnetdev (Streamdev-Server geht auch). Der Beagleboard-Mplayer ist hinsichtlich der NEON-Erweiterungen für ARM und bei der Videoausgabe für das Beagleboard angepasst worden und ist VLC in der Performance auf dieser Plattform klar überlegen. Für diese Lösung kupfere ich ganz massiv von der Geexbox ab. Das hat den Vorteil, dass ich relativ schnell zu Ergebnissen komme - man kann mal eben nach Feierabend ein Menü ergänzen. Das sind dann aber natürlich MPlayer-Menüs. Um den VDR zu bedienen (und nicht nur fern zu sehen) bedarf es daher weiterer Scripte (machbar, aber leider eine Fleißarbeit). Alternativ dazu kann man das VDR-OSD in diesem Szenario in einem zweiten Fenster mit tightvncviewer ankucken (und bedienen), aber ein Extra-Fenster für das OSD ist natürlich unelegant. Auch diese Lösung verzichtet auf den DSP.


    Um den DSP zu nutzen, bleibt bei meinem Kompetenzgrad also vorerst nur die dritte Option: Streamausgabe vom VDR (s.o.) und dann per gst-launch und dem entsprechenden src-Plugin für GStreamer eine Pipeline bauen. Eventuell könnte GStreamer nicht nur auf den Videostream, sondern auch auf das OSD zugreifen, aber wie ich das in eine Pipeline kriegen soll, ist mir derzeit noch schleierhaft. Diese Lösung habe ich bislang nur in Ansätzen getestet, allerdings steht das recht weit oben auf der Liste. Wenn ich mehr weiß, melde ich mich wieder.


    Gruß,


    Thomas

  • Hallo,
    letztens hatte auch schon jemand VDR auf einem NAS installiert (siehe Hier)
    Da gab es auch irgendwie Probleme beim Übersetzen der Ausgabe-Plugins.


    Zitat

    Eventuell könnte GStreamer nicht nur auf den Videostream, sondern auch auf das OSD zugreifen, aber wie ich das in eine Pipeline kriegen soll, ist mir derzeit noch schleierhaft.

    Eine Beschleunigung ist beim OSD wohl eher nicht notwendig.
    Vielleicht ist es ja irgendwie machbar das Fenster des tightvncviewers mit einem transparenten Hintergrund auszustatten und vor das Videofenster zu legen?

    Gruss
    SHF


    2 Mal editiert, zuletzt von SHF ()

  • So, nach ein paar weiteren Experimentierstunden habe ich nun ein Setup, das einem normalen VDR vom Look & Feel schon relativ nahe kommt. Die Bedienung ist zwar etwas lahm, aber da werde ich noch feintunen.
    Frontend ist nach wie vor MPlayer und zur Anzeige des OSD verwende ich tightvncviewer im Vollbildmodus. Da ich nun zwei Fenster habe, die zu bedienen sind, verarbeitet ich sämtliche Fernbedienungssignale per ~/.lircrc mit irexec.
    Grobe Vorgehensweise:
    VDR und irexec werden per Script gestartet. Wird auf der Fernbedienung die Powertaste gedrückt, startet Mplayer als Frontend im Vollbildmodus und zeigt das TV-Signal - der nächste Druck auf Power schließt dann das Frontend wieder. Beim Druck auf "Menü" startet tightvncviewer und zeigt das OSD. irexec leitet die meisten FB-Signale einfach an den VDR weiter, so dass die OSD-Bedienung absolut herkömmlich ist. Nur das Schließen des OSDs hinterlässt ein leeres, schwarzes Vollbildfenster, das dann mit einer Extra-Taste geschlossen wird (bei den üblichen Tasten wurde es mir zu unübersichtlich, da je nach Kontext unterschiedliche Tasten(folgen) zum Schließen des OSDs führen können).
    Mit transset ließe sich wohl auch eine Transparenz dieses Fensters erreichen, doch das liegt weder als Paket für Angström noch als Source in OpenEmbedded vor; nativ ließ es sich wegen einiger fehlender dev-Pakete nicht kompilieren und beim manuellen Auflösen der Abhängigkeiten in der OpenEmbedded-Cross-Compiler-Umgebung bin ich bislang leider schmählich gescheitert... :(
    MPlayer wird, wie bei der Geexbox, über einen Fifo gesteuert. Auch wenn die ganze MPlayer-Geschichte eher eine Notlösung ist, so hat sie doch den Vorteil, dass man mit sehr geringem Aufwand so ziemlich alles an Inhalten, die MPlayer darstellen kann, auf den Bildschirm bekommt. Ob man die Ansteuerung nun über die commands.conf, die reccmds.conf oder aber ein nach wie vor verfügbares MPlayer-Menü realisiert, hängt vom eigenen Geschmack und sicher auch von der konkreten Aufgabe ab.
    Die Now&Next-Anzeige beim Umschalten sowie sonstige OSD-Messages fehlen mir noch, was ich aber a) halbwegs verschmerzbar finde und b) ggf. mit SVDRP-Abfragen und dem MPlayer-OSD nachbauen kann (zumindest Now& Next sollte nicht so schwer sein).


    Ich werde noch ein paar Ungereimtheiten beseitigen und dann, sofern hier irgendjemand Interesse daran hat, die relevanten Scripte posten.


    Soweit erstmal,


    Thomas

  • Ich schon wieder mit einem weiteren Link für Interessierte:
    http://focus.ti.com/general/do…ntent.tsp?contentId=49963
    Texas Instruments behauptet dort:

    Zitat

    This site aims to help open source developers find the resources needed to use TI’s platforms. TI supports open source initiatives to drive innovation and enable our customers to create market-leading devices.


    Wie gesagt, ich bin komplett untauglich, um den VDR und den DSP des Beagleboards programmiertechnisch zusammenzubringen. Ich könnte allenfalls anstatt von MPlayer eine gst-launch-Pipeline erstellen, die die Videoausgabe mittels DSP bewerkstelligen könnte. Das werde ich auch in Angriff nehmen, sobald ich die derzeitige Lösung auf einem Stand habe, den ich dann einfach in die virtuelle Schublade legen kann, um ihn im Falle des Scheiterns beim Plan B mit gst-launch gleich wieder reaktivieren zu können. Wenn ich jetzt bei einem nur beinahe befriedigenden Stand aufhöre, wird hinterher die Fehlersuche nur um so nerviger - alles hübsch der Reihe nach.


    Gruß,


    Thomas

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!