Ein schlanker Live-Monitor für HDMI-Grabber unter Linux
Wer einen günstigen HDMI-Grabber mit OBS Studio nutzt, kennt das Problem: OBS ist super zum Aufnehmen und Streamen, aber für ein reines “ich will nur mal kurz draufschauen” ist es überdimensioniert. Genau diese Lücke schließt HDMI Viewer – ein schlankes Qt6/C++-Tool für Arch Linux, das ein HDMI-Signal per V4L2 anzeigt und den zugehörigen Ton per ALSA wiedergibt, ganz ohne Aufnahme-Overhead.
Ab sofort ist Version 1.0 fertig, und das Projekt ist bereit für die Allgemeinheit.
Was HDMI Viewer kann
Im Kern ist die App bewusst simpel gehalten: Gerät auswählen, anzeigen, fertig. Unter der Haube steckt aber einiges an Arbeit, damit das Bild eines günstigen HDMI-Grabbers auch tatsächlich gut aussieht:
- Bildglättung: Ein GPU-Shader trennt Luma und Chroma und behandelt beide getrennt. Das Farbsignal wird stärker weichgezeichnet, was Dot-Crawl und Farbrauschen von billigen Composite-zu-HDMI-Scalern spürbar reduziert, während die Helligkeitsinformation nur leicht geglättet und dezent gegengeschärft wird.
- Studio-/Full-Range-Korrektur: Viele Grabber liefern ihr Bild in einem gestauchten Kontrastumfang statt im vollen 0–255-Bereich. HDMI Viewer streckt das direkt im Shader wieder auf, damit das Bild nicht dumpf und kontrastarm wirkt.
- Hardware-Regler für Helligkeit, Kontrast und Sättigung: Der wohl wichtigste Unterschied zu einer reinen Software-Nachbearbeitung. Diese Regler greifen direkt auf die V4L2-Controls des Grabber-Chips zu, wirken also schon vor der JPEG-Kompression. Das Ergebnis ist ein saubereres Bild, statt in einem bereits komprimierten Bild nachträglich Details hochzuziehen. Der Ausgangszustand des Chips wird beim Programmstart ausgelesen und beim Beenden exakt wiederhergestellt – andere Programme merken also nichts davon.
- Retro-Optik: Für alle, die es nostalgisch mögen, gibt es einen Röhrenfernseher-Look mit Scanlines, Phosphor-Maske und leichter Bildwölbung, der sich mit der Bildglättung kombinieren lässt.
- Diagnose-Werkzeuge: Ein Roh-Modus zeigt das Bild komplett unbearbeitet, ein Vergleichsmodus stellt Original und bearbeitetes Bild nebeneinander dar, und einzelne Frames lassen sich als Screenshot oder als rohes MJPEG-Frame zur Fehlersuche speichern.
Alle Einstellungen – von den gewählten Geräten bis zu den Hardware-Reglern – werden gespeichert und beim nächsten Start automatisch wiederhergestellt.
Technischer Unterbau
HDMI Viewer ist in modernem C++17 mit Qt6 geschrieben. Die Bildverarbeitung läuft komplett über OpenGL-Shader auf der GPU, sodass auch auf schwächerer Hardware kein Ruckeln entsteht. Video und Audio laufen in eigenen Threads, damit die Oberfläche jederzeit reaktionsfähig bleibt.
Installation
Auf Arch Linux ist die Installation über das AUR der einfachste Weg:
yay -S hdmi-viewer
Wer lieber selbst baut, findet den Quellcode unter:
git clone https://git.projekt-hirnfrei.de/diabolus/hdmiviewer.git
Alle weiteren Details zu Abhängigkeiten, Tastenkürzeln und der Konfiguration stehen in der README im Projekt-Repository.
Fazit
HDMI Viewer richtet sich an alle, die ein HDMI-Signal einfach nur anständig auf dem Bildschirm sehen wollen, ohne dafür eine komplette Streaming-Software hochzufahren. Mit den Hardware-Reglern für Helligkeit, Kontrast und Sättigung sowie der Studio-Range-Korrektur bekommt gerade Bildmaterial von günstigen Grabbern spürbar mehr Qualität, ohne dass man dafür tief in V4L2-Kommandozeilentools einsteigen muss.
Feedback, Bug-Reports und Pull Requests sind im Repository jederzeit willkommen.