Im letzten Post war ich noch sehr begeistert von meinem neuen Streaming-Setup, aber es hat sich einiges getan und eigentlich bin ich mittlerweile verdammt sauer, weil WTF.
Meine Software benutze ich immer noch, aber fast alles andere hat sich geändert.
Alles fing damit an, dass einen anderen cables.gl-Patch benuzten wollte, nämlich Motion Graphics von action. Die Browserquelle in OBS zeigte hierbei jedoch nur ’n schwarzen Bildschirm! Was war da los?
Eine kurze Debugsession später war klar: die Browserquelle in der macOS-Version von OBS nutzt nicht die GPU, sondern Googles Softwarerenderer „SwiftShader“. Aber das ist ja Quatsch, ich hab ja ’ne GPU, und im echten Browser geht das auch total gut! Abhilfe konnte hier aber durch Kommandozeilenparameter geschaffen werden. Slightly nervig, aber damit würde ich wohl klar kommen!
Darauf basierend hab ich dann also mein OBS-Setup angepasst, und die Performance war eher so mittelmäßig und nicht wirklich zufriedenstellend, aber der neue Patch sah schon unglaublich gut aus, da konnte man nicht meckern, und auch auf Twitch kam der neue Hintergrund sehr gut an!
Irgendwann wurde allerdings bemängelt, dass der Hintergrund leider doch arg ruckelt. Das ging so weit, dass ich die Größe des Hintergrundes auf ein Viertel reduziert habe, damit er schneller und flüssiger gerendert werden kann, und damit war es dann wieder einigermaßen angenehm zu gucken.
Ich habe also für’s Streamen 720p30 genutzt, und der neue Hintergrund wurde in 640×360 gerendert, wie 1993, denn mit mehr war das MacBook anscheinend überfordert. Ist das nicht dezent lächerlich?
Lösungen dafür fielen mir ein paar ein, aber keine war so richtig befriedigend: Hardware-Lösungen kosten Geld und haben Lieferzeit, und andere Software würde unweigerlich Abstriche beim Setup erforderlich machen. Trotzdem habe ich erstmal probiert, eine andere Software zu benutzen. Aufgrund meines Engagements bei SceneSat habe ich Zugriff auf eine Lizenz für Wirecast, welches angeblich genau so gut wie OBS funktionieren soll… aber was heißt das schon?
Das in Wirecast mit Abstrichen nachgebaute OBS-Setup wies allerdings fast schon erwartungsgemäß die gleichen Schwächen auf: gerenderte Webseiten waren langsam wie Arsch.
Okay, langsam wird’s Zeit für die nukleare Option: Windows. Aber auf welchem Rechner? Ich habe doch nur MacBooks?
(Kurze Pause zum Einwirkenlassen.)
Dank des von Apple seit Ewigkeiten mitgelieferten Boot Camp Assistants ist es ein Kinderspiel, eine Partition für Windows 10 anzulegen und selbiges darauf zu installieren. Auch der ganze andere Kram ist kein Problem, OBS läuft, die gammeligen 5-Euro-Webcams werden auch erkannt und… ach, mein Overlay. Ach ja, erstmal Linux installieren. Auffm Windows. Auffm MacBook. Verrückt!
Aktuelle Version des Overlays von Github geholt, gestart, cables-Patch runtergeladen, alles in OBS eingebunden: 720p30, flüssig, quasi keine CPU-Last. Okay, das ist schon mal besser. Als ich die Auflösung jedoch auf 1080p60 hoch drehte, wurde ich so langsam sauer: Immer noch butterweich. Was zur Hölle?
Das Rendern war also überhaupt kein Problem, aber was ist mit dem Encoden? OBS bot mir nur den x264-Software-Encoder an, und ein kurzer Test zeigte 97% gedroppte Frames aufgrund von Encodinglag… also vielleicht lieber nicht Software. Aber wo war der Hardware-Encoder hin? Der funktionierte immerhin unter macOS…
Etwas Recherche brachte dann zutage, dass MacBooks beim Booten knallhart die integrierte Intel-GPU abschalten, wenn etwas anderes als macOS gebootet wird. Himmelarschundzwirn, wer denkt sich denn sowas aus? An dieser Stelle fiel viel Frust an, da EFI eine Technologie ist, die erst so richtig in’s Rollen kam, als ich schon über 30 war, und dementsprechend war mir das alles zu neu und sowieso völlig unverständlich. Wat is mit rEFIt? apple_set_os.efi? gpu-switch? Was heißt jetzt „für Windows“? Läuft das unter Windows, oder ist das für wenn Windows die GPU benutzen können soll? Unklarheit, Verwirrung, Wut, Tränen, das volle Programm.
Und wie so oft hilft eine Nacht Schlaf! Am nächsten Morgen wusste ich zwar immer noch nicht, wo rechts und oben ist, aber ein erneuter Blick in die exzellente Dokumentation von rEFInd offenbarte, dass dort tatsächlich alle Informationen enthalten waren, die ich brauchte! Wie albern von mir… ausgerüstet mit den neuen Information war die Installation schnell erledigt, und schon war es möglich, die Treiber von Intel zu installieren, und auch OBS war der Meinung, jetzt mit dem Hardware-Encoder umgehen zu können.
Ein erneuter Test ergab, dass das auch korrekt ist. 1080p60, absolut flüssig, und CPU und GPU haben anscheinend derbe Langeweile dabei!
Das bedeutet, dass ich für’s Erste das Streamen mit Windows machen werde, und ich bin mir momentan sehr unsicher über die Zukunft der macOS-Partition auf dem Rechner. Dank TimeMachine wäre es kein Problem, die einfach zu plätten und bei Bedarf wieder zu restaurieren, aber so ein kompletter Schnitt ist mir vorerst zu drastisch. Prinzipiell mag ich macOS ja auch sehr gerne, aber die Performance beim Streamen ist so unterirdisch, dass ich das nicht aushalte. Im Gegenzug dazu ist Windows zwar für’s Streamen anscheinend sehr geeignet, aber ansonsten bin ich halt nicht wirklich ein Freund davon, und wie sich das auf die Softwareentwicklung auswirkt, muss ich auch erstmal sehen…
Ich bin auf jeden Fall mal mächtig stinkig, dass es für macOS ein Riesenproblem ist, zwei Webseiten in 720p30 zu rendern, aber Windows auf der exakt gleichen Hardware ohne Probleme 1080p60 schafft.