beTV Ergebnisbericht
MrGoil präsentiert den beTV Prototyp bei den Linuxwochen in Linz am 28.6.2008. In diesem Bericht beschreibt er die Herausforderungen für den Betrieb einer Plug'n'Play Video Streaming Box und macht Vorschläge für weitere Entwicklungen.
Probleme:
* freej
- ist nicht "einfach", keine GUI
- Audio Unterstützung mangelhaft.
- aufwändige Installation, aktuelle Versionen nur als Quelltext
erhältlich
* billige Web Cams
- keine technischen Dokumentiationen und
- keine Linux Unterstützung von den Herstellern
* Linux Treiber
- die meisten Linuxtreiber sind per 'reverse Enineering' entstanden:
stark CPU lastig, nicht optimiert
- meistens nicht im offiziellen Linux Kernel enthalten, Installation
und Pflege aufwändig.
- Hersteller benutzen Baukasten Software von dritten. Das geht zwar
schnell und kostengünstig aber das Endergebnis ist aber portabel
(läuft nur auf einem Betriebssystem), erlaubt nur proprietäre 'closed
source' Lizenzen: nicht vereinbar mit der GPL.
* Prototyp PC
- mit 'nur' 1GHZ: encoding (Aufnahme) ist rechenintensiver als
decoding (Wiedergabe)
- der eingebaute analoge Video-in Anschluß lässt sich derzeit nicht
unter Linux nutzen
- Alternative Firewire ist ebenfalls rechenintensiv, normalerweise
liefern digitale Videokameras mpeg an, welches vor dem mischen erst
decodiert werden muss.
Verbesserungspotential:
* freej
- firewire Unterstützung rudimentär vorhanden via ffmpeg. Diese
library ist vorrangig der Videoplayer und bietet keine
Gerätesteuerung.
- Eine GUI kann auch innerhalb freej mittels ImageLayer() und
GeoLayer() realisiert werden. Die Funktionalität muss noch weiter
ausgebaut werden.
- Installation
Die sog. Paketierung wurde verbessert. Aktuell
beteiligen sich 2 offizielle Debian Package Maintainer. Im sog.
unstable "sid" repository ist die aktuelle freej version 0.9.10
verfügbar. Die Installaton auf Debian basierenden Systemen ist nun
sehr leicht! Das beTV Programm kann dann direkt mit installiert
werden.
- GUI: Wir haben angefangen, mit opengl zu experimentieren.
Nebeneffekt: das dazugehörige GUI-toolkit libglut ist unser Favorit!
Pablo Martin, vom Blender Institut in Amsterdam, hat in freej eine
experimentelle opengl Unterstützung eingebaut.
- Audio wurde verbessert: jack Unterstützung. Für das "Jack Audio
Connection Kit" existieren schon zahlreiche Audio Mischer, EQ und
Effektplugins. Allerdings macht es die Bedienung wieder
komplizierter: es muss jackd, ein Daemon laufen. Das ist bei keinem
Linux Desktop PC voreingestellt. Ein internes Abmischen des Ton
innerhalb freej ist nach wie vor wünschenswert.
* billige Web Cams:
- Lobbyarbeit bei den Herstellern
- Testberichte und Kaufempfehlungen, passende Kameras mitliefern?!
* Linux Treiber
- v4l1 / v4l2: der CamLayer() in freej kann nur die alte v4l1 API. Die
meisten selbstgehackten Camera Treiber können meistens auch nur
v4l1. Diese Version der Video API ist aber schon seit Jahren
veraltet, und in den offiziellen Kernel werden nur Treiber mit der
v4l2 API aufgenommen. Leider habe ich bis heute keine "WebCam" mit
v4l2 Treibern in die Finger bekommen.
* PC:
- bessere Nutzung der Hardware: der via- grafik chipsatz kann opengl.
Die Leistung ist sicher nicht 'Spieletauglich'. Im Prinzip kann aber
der Grafikchipsatz der CPU das mischen und skalieren der Videos
abnehmen.
- Analoge Video Eingänge: VIA hat technische Unterlagen und sogar Code
frei veröffentlicht. VGA, analog Video out und sogar opengl wurden
auch schon in Linux übernommen. Die analogen video Eingänge liegen
aber weiterhin brach. Ich habe den Code von VIA ausprobiert, und es
funktioniert nicht. <<<<<<< Es existiert sogar Code von VIA dafür,
funkioniert aber leider nicht. Ich denke, es ist mangelndes
Interesse in der Linux Gemeinde. --<<<< 3d geht <<<< Die meisten
Kameras haben sowieso digitale Ausgänge.