Problem: Ich recorde meinen Bildschirm mit OBS. Aber irgendwie sieht alles bereits im Video-Editor viel schlechter aus als noch live auf dem Bildschirm. (Im Beispiel und Screenshot: ProjectM Music Visualizer)
Lösung: Ich schalte möglichst alle Umwandlungen ab, d.h. ich konfiguriere OBS auf die Auflösung meines Bildschirms, auf die Bildwiederholrate meines Bildschirms, auf keine Farbunterabtastung (Chroma-Subsampling) und wähle obendrein eine exorbitant hohe Bitrate beim Video-Encoding.
Nun zum Hintergrundwissen:
Im digitalen Video gibt es diverse Bildqualitätskiller: Am bekanntesten dürfte eine niedrige Bitrate bei Video-Codecs wie h264 oder h265 (für viele Synonym mit: MP4-Video) sein. Das Bild wird grob, Block-Artefakte und Color-Banding sind zu sehen. Weniger bekannt ist das Chroma-Subsampling, was fährlässig vereinfachend ausgedrückt bedeutet, dass nicht alle Farben die gleiche Auflösung bekommen – das fällt besonders auf bei Screen-Recording, weniger in natürlichen Bildern von Kameras – so wird zum Beispiel eine leuchtend rote Schrift in der Videodatei auf einmal unscharf, die vorher im Video-Editor noch scharf war. Ein ziemlicher Killer ist auch eine schlechte Konvertierung der Bildwiederholrate, insbesondere von 60 auf 50 Bildern pro Sekunde, oder von 30 auf 25 – und jeweils umgekehrt. Von 60 auf 30 sowie 50 auf 25 und umgekehrt ist es nicht weiter tragisch, hier kann jedes zweite Bild genommen oder ein Bild jeweils verdoppelt werden. Das Errechnen von Zwischenbildern jedoch führt meistens zu Gruseligkeit. Ein den meisten Leuten völlig unbekannter Killer ist das lausige Detail, dass ursprünglich im Fernsehen nicht die volle Dynamik des Signals genutzt werden konnte, weswegen Dateiformate wie ProRes nicht die Helligkeitswerte 0-1023 (10bit) verwenden, sondern nur ca. 85% davon, nämlich nur die Werte 64-940 – viele Videosoftware, inklusive YouTube, bläst den reduzierten Dynamikbereich aber nicht automatisch wieder voll auf, und beim Konvertieren auf die an den Betrachter ausgelieferten 0-255 (8bit) reduziert sich die Dynamikauflösung dann in spürbar grobe Abstufungen.
Was kann man nun also beim Screen-Recording in OBS tun?
Zunächst mal: In den erweiterten Optionen das Farbformat auf i444 8bit 4:4:4 umstellen – das steht für volle Auflösung für alle 3 Farbkanäle, also eben kein Chroma-Subsampling – und ebendort den Farbbereich (Dynamikbereich) von Begrenzt auf Voll stellen – die meisten Leute verwenden nur 8bit Dynamikauflösung auf dem Bildschirm, das passt dann damit:
Unter Video dann die Auflösungen und die Bildwiederholrate genau so einstellen, wie der Bildschirm eingestellt ist, bei FullHD sind das meistens 60Hz/FPS und eben 1920×1080. Sollte die Bildwiederholrate in einem Film dann doch 50 oder oder 25 FPS sein müssen, so ist zu hoffen, dass mein Video-Editor beim Export des geschnittenen Films nur die allerfeinsten Konvertierungs-Algorithmen darauf anwendet.
Dann in den Einstellungen für die Aufnahme eine lächerlich hohe Bitrate wählen (z.B. hier 150mbps) – je höher die Bitrate, desto irrelevanter ist die spezifische Encoder-Implementierung für die Videoqualität. Hier kann auch die in der Regel schlechtere Implementierung des GPU-Encoders genutzt werden anstatt libx264 auf der CPU. Allerdings klappt das hier nur, wenn die Grafikkarte eben auch 4:4:4 h264 encodieren kann. Das Keyframe-Intevall sollte auf den niedrigsten Wert eingestellt werden, also eine Sekunde. All-Intra, also nur Keyframes, kann OBS leider nicht. Mittels ffmpeg können auf der CPU auch andere Formate getestet werden, die Vorteile von zum Beispiel GoPro Cineform gegenüber h264 mit sehr hoher Bitrate sind bei 8bit Farbtiefe aber nicht spürbar.
Der Pferdefuß und die Datenbombe:
Zwar wollen alle immer Video wie im Kino machen, aber am Ende ist die Realität: YouTube. Oder, wie im Video in diesem Beispiel, wenigstens PeerTube. Auf das Video-Encoding von YouTube hat der Nutzer aber keinen Einfluss. Es wird immer auf 4:2:2 oder gar auf 4:2:0 Chroma-Subsampling rauslaufen. Das Einzige, was man tun kann: Sein Video als maximal hochwertige Datenbombe exportieren, zum Beispiel 10bit CineForm 444 (RGB) mit hoher Bitrate und diese dann bei YouTube droppen, aufdass dieses die am wenigsten schlimme Version zur Auslieferung daraus generiert.



