[Guide] Das kleine Streaming ABC

Janchu88

Kapitän zur See , HWLUXX Vize-Superstar
Thread Starter
Mitglied seit
29.11.2005
Beiträge
5.271
Ort
irgendwo im Nirvana...
Servus Forum,

da ich mich in letzter Zeit selbst viel damit auseinandergesetzt habe, wollte ich mal einen kurzen Guide zum Thema Streamen verfassen.

Also... was ist das Ziel der ganzen Geschichte? Eigenständig Material zu einem beliebigen Spiel auf Twitch, Hitbox usw zu streamen!

Das Konto

Zuerst braucht ihr natürlich ein Konto auf der gewünschten Streaming Plattform. Twitch ist hier der Platzhirsch und hat die meisten User. Als 0815 Streamer allerdings hat man bei Twitch ein wenig das nachsehen, denn durch die Größe der Plattform, sind die Serverressourcen für kleine Streamer sehr begrenzt. Das bedeutet ihr benötigt sehr kleine Bitraten (maßgebender Faktor für die Bildqualität), um einen nicht non stop bufferenden Stream zu erhalten. Je nach Tages und Uhrzeit ist Twitch fast nicht zu gebrauchen, da euer video konstant nur im ladebildschirm hängt. Als alternative welche ich mittlerweile nutze möchte ich noch www.Hitbox.tv erwähnen, welches ich mittlerweile im Schwerpunkt nutze. Hitbox ist ein junges Österreichisches Startup mit Schwerpunkt auf den deutschen / europäischen Raum. Vom Funktionsumfang unterscheidet es sich nicht sonderlich von Twitch, aber die Server sind für kleine Streamer wirklich unvergleichlich besser - Fairerweise muss man aber sagen, dass die Community natürlich kleiner ist

Die Streamingsoftware

Um nun auf euer Konto was zu streamen, benötigt ihr eine entsprechende Software. Die meist genutzte ist an dieser Stelle ist wohl die Open Source Software "Open Broadcaster". Den Open Broadcaster könnte ihr hier herunterladen: https://obsproject.com/

Ladet euch die aktuelle Version herunter und ab da gehe ich in diesem Video mal alles wichtige durch! (1080p in kürze Verfügbar, frisch hochgeladen)


Bitrate und Videoqualität

Wie bereits im Video angesprochen ist der primäre Parameter für die Videoqualität die Bitrate. Die Bitrate definiert wieviel Information pro Sekunde der Codierer schreiben darf. Grundsätzlich will man natürlich viel Bitrate für ein glasklares Bild, wie im Video angesprochen geht das aber nicht. Man unterscheidet zwischen zwei verfahren, variabler und konstanter Bitrate. Variable Bitrate ist nett um ein Video so klein wie nötig zu halten allerdings für uns uninteressant. Bei Variabler Bitrate schreibt der Encoder soviel Information, wie er es gerade als nötig erachtet um das Bild sauber darzustellen. Bei konstanter Bitrate hingegegen versucht der Decoder bei einer gegebenen Menge an Bits das Bild so gut wie eben möglich unterzubringen. Um sich einen kleinen Eindruck zu verschaffen, wie das aussieht werft einen Blick hierein


Am ehesten merkt man eine zu niedrige Bitrate bei bewegten Bildern. Ist die Bitrate zu niedrig kommt es zu sogenannter Artefaktbildung (Blöcke etc). Das Bild wird unscharf und ungenießbar. Je nachdem, was man streamed sollte man hier in Erwägung ziehen eine niedrigere Auflösung zu verwenden. Bei kleinerer Auflösung und gleicher Bitrate kann der Encoder natürlich das Bild wesentlich besser zusammenfassen, da ich ja versuche ein kleineres Bild mit gleich vielen Pinselstrichen zu malen. Lieber einen sauberen 720p stream, als einen verblockten 1080p stream, bei dem man spätestens in Bewegung garnichts mehr erkennt. 720p lässt sich bei einer Bitrate von 2700kbit schon ziemlich ansehnlich darstellen, wohingegen 1080p selbst bei 3500kbit immer noch sehr bescheiden aussieht - Spätestens in Bewegung liegen Welten dazwischen

Wen ihr eure Bitrate gefunden gehabt, könnt ihr noch das Preset verändern. Das Preset sagt dem Encoder mit wieviel Aufwand er das Bild abtasten darf etc, ergo ein besseres Preset führt zu einem besseren Bild, aber auch zu erheblich mehr CPU-Last. Und mit erheblich meine ich wirklich ERHEBLICH.

Software vs Hardware Encoder

Wie im Video angesprochen, könnt ihr die Videokodierung auch auf die Grafikkarte auslagern. Streamed und spielt ihr auf ein und demselben Rechner, ist das nutzen eines Hardware encoders wohl so ziemlich die einzige Möglichkeit moderate FPS im Game zu erhalten unf genügend Ressourcen für das Kodieren zu haben. Die Bildqualität ist bei diesen Lösungen immer ein Stück schlechter, als ein Softwareencoder bei gleicher Bitrate, daher immer im Hinterkopf behalten das dies nur einen Kompromiss darstellt.

Encoding auf zweiten PC auslagern

Da Encoding in 720p und viel mehr noch in 1080p eine extrem ressurcenfressende angelegenheit ist und die Hardware encoder nur einen Kompromiss darstellen besteht auch die Möglichkeit das Encoding auf einen zweiten Rechner auszulagern. Hierzu nur ganz grob folgendes, wollt ihr mehr dazu wissen schreibt es hier rein und ich kann es weiter ausführen.

Wie kriege ich das Bild von Rechner A zu Rechner B? Dazu nutzt man eine Gamecapture Card. Eine Gamecapture Card wird zwischen Rechner und Monitor geklemmt und greift das HDMI Signal ab und gibt es via USB aus. Mit einer Gamecapture card kann man auch konsolen etc abgreifen und das Bild auf den PC bringen. Der Ton via HDMI wird hierbei selbstverständlich mit abgegriffen. Um am Gaming PC den Ton bspw am Headet auszugeben und gleichzeitig via HDMI zu senden (ergo 2 Soundkarten gleichzeitig nutzen) kann Software wie bspw Voicemeeter (virtueller Mixxer) zum Einsatz kommen. Besteht interesse, mache ich auch ein kurzes Video Tutorial zu Voicemeeter.

Hinweis: Die Elgato HD Gamecapturecard bspw hat ein Delay von ca 1400ms, wollt ihr zusätzlich Kommentar einspeisen im OBS besteht die Möglichkeit euer Mikrofon mit dem selben Delay zu versehen, ebenso wie Webcam und Co.

Der große Vorteil von so einem 2 Rechner Setup ist, dass am Zweitrechner die komplette CPU-Leistung fürs Encoding genutzt werden kann, ergo kann die qualitativ bessere Softwarecodierung verwendet werden. Nach viel testen in den letzten Tagen komme ich zu folgendem Schluss, will man 720p in guter Qualität codieren (Preset besser als Veryfast), sollte mindestens ein i5 zum Einsatz kommen. Will man 1080p streamen mindestens ein i7. Klingt viel, ist es auch. Gerade 1080p Echtzeit Codierung ist die Königsklasse und bringt auch einen i7 problemlos an die Kotzgrenze.

Als Beispiel, aktuell nutze ich einen i7 3770k @ 4,2ghz fürs codieren. in 720p kann ich damit immerhin das preset "medium" - "slow" fahren oder bei langsameren Spielen 1080p mit Preset "faster". Durch die begrenze Bitrate (ich nutze 3500kbit auf hitbox, auch wenn dort mehr ginge) benutze ich bei schnellen Spielen trotzdem lieber 720p mit Lanczos Downscale, einfach weil viel weniger Artefakte entstehen und das Bild auch in der Bewegung scharf bleibt. So sieht bspw 720p 30fps Medium Preset aus: http://www.hitbox.tv/video/444163

Warum man keine astronomischen Bitraten nutzt? A: weil Dienste wie Twitch garnicht soviel erlauben und B: Selbst wenn mein Upload und die Server der Plattform das mitmachen, auch der Zuschauer eine mindestens so schnelle Leitung haben muss. Streame ich beispielsweise mit 3500 kbit, peaked die Bitrate auch mal in Richtung 4000kbit. Hat der Zuschauer nun eine DSL 6000er Leitung, was ja durchaus nicht unüblich ist, muss er schon knapp 70% seiner Leitung darauf verwenden den Stream ohne buffering schauen zu können. Für einen Nutzer mit 2000er Leitung ist selbst 3500kbit scho zuviel um es überhaupt schauen zu können.

Ja, soviel erstmal der warmen Worte, bei Fragen, Anregungen, Bemerkungen, etc einfach melden ;)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh