Jak si na Twitchi udržet transcoding u vysílání?

Dlouhodobě jsem se pokoušel přijít na kloub magii, ke které dochází během vysílání streamu na Twitch. Již od počátku se potýkám se skutečností, že je moje vysílání jedním velkým kompromisem. Nedisponuji v současné chvíli ničím jiným než jedním PC, kterým se snažím splnit dvě disciplíny najednou. Hraní a Streaming. Vzhledem k tomu, že je moje PC dlouhodobě pouhou skládačkou obyčejného nadšence, s jen povrchní povědomím, co a jak funguje, se dá říci, že není ani zdaleka tak dokonalé ani pro jednu ze zmíněných disciplín, spíše naopak, pouze okrajově olizuje minimální požadavky.

Snadno se tak dostávám do situace, kdy bych úplně klidně mohl hrát hru na plné detaily s třeba jen ubranými stíny, kdy bych PC vytěžil na maximum, ale přidám-li k tomu stream, rázem jsem donucen srazit kvalitu na střední, u novějších titulů mnohdy na absolutně minimální detaily a jen děkuji křemíkovému bohu, že nemusím hrát v nižším rozlišení než FHD, i když by mi to teoreticky také vcelku výrazně pomohlo.

Z počátku jsem neřešil nic kolem a svoje nastavení výhradně uzpůsoboval pouze potřebě mít to vyvážené, tedy rozjet nějak rozumně hru a udržet nějak rozumně stream, aby to nelagovalo, nedocházelo k prodlevám mezi obrazem a zvukem, atd., atd. Chvilku to i bylo v pohodě. V době, kdy jsem využíval služby Restream.io, která umožňuje vysílat současně na nespočet různých služeb, jako Twitch, Youtube, Mixer, Facebook, Steam, atd. Velký problém však nastal v době, kdy jsem si uvědomil, že jsem se hned z kraje až příliš rozmáchl a měl bych se soustředit a dělat dobře jen v jedné věci. Každá síť má svá specifika a mě komunita a lidé kolem Twitche nějak sedli nejvíce, tedy jsem se rozhodl zaměřit hlavně tímto směrem. Odřízl jsem Restream a tedy i všechny ostatní sítě a začal intenzivně, pravidelně, vysílat pouze na Twitch, postupně s doplňováním všeho co k tomu patří, hlavně pak s prohloubením práce s komunitou lidí, kteří se postupně začali na moje streamy vracet.

A tady začali potíže.

Stejně jako já nemám ultra mega hustodémonsky krutopřísný PC a vůbec vybavení, najdou se i lidé, kteří naopak nemají hustodémonsky krutopřísný internetové připojení. Buď a nebo mě sledují na mobilu, tedy většinou přes slabší, defaultně nastavený Wi-Fi, který mnohdy sdílejí i s ostatními členy rodiny. Když si to vezmu, je to svým způsobem fantastické, protože už tak vysílám v docela špatné kvalitě a tihle se mnohdy vracejí a ve snaze udržet stream plynulý, aby mě mohli sledovat, mě sledují v ještě horší kvalitě. Tedy, pokud jim to můj kanál umožní. Ukázalo se totiž, že ve většině případů ne a já o tyhle dobré duše kolikrát přišel jen proto, že se nemohli koukat plynule.

Wtf is Transcoding?

Velmi stručně. Já v současné době vysílám v 720p 60 Fps, při 5000 Kbps za sekundu, což je nastavení, které výrazně nezatěžuje moji sestavu a kvalita se drží na aspoň trochu koukatelné úrovni, bez brutálních fragmentů v obraze (pooooookud nehraju nějaké FPS, pak mě v současné chvíli nic nezachrání). Co odešlu, se předpokládá, že na druhé straně dotyčný bude schopen stáhnout, ale to by mu internet musel běžet stabilně.

Transcoding je úprava videa v reálném čase, která ve většině případů u těchto služeb umožňuje divákům ponížit kvalitu videa na úroveň, kterou dlouhodobě dokáží stahovat bez větších propadů, tedy bez lagů. Takový YT, transcoding poskytuje defakto každému kdykoliv, ale u Twitche už to tak úplně neplatí. Existují na to různé teorie, jako že Twitch poskytuje pravidelný transcoding jen partnerům nebo, že jej pouští jen určitému počtu v současné chvíli vysílajících streamerů, kdy partneři mají místo jisté a zbytek dorovnávají náhodou vybrané kanály.

Zkušenost z praxe

Chvilku jsem se smiřoval s tím, že jsem v háji, ale čím více jsem se na Twitchi pohyboval a kromě vlastního streamování i sledoval jiné kanály, všiml jsem si, že většinou transcoding k dispozici mají. Nebyly ověření partneři Twitche, také vysílali nule nebo pár lidem jako já a šlo u nich přepínat kvality. Když jsem se jich zeptal, jak to ovlivnili, tak většinou nevěděli, ale shodovali se v tom, že to tak většinou mají, i když občas ne. To by nahrávalo tvrzení o náhodném uvolňování transcodingu, jen určitému počtu streamerů. Jenže jsem se pak začal pídit po tom, co bych ještě mohl v nastavení vylepšit a trochu prozřel díky stránce Twitch video Encoding/Bitrates/And Stuff, kde je pěkně, přehledně, shrnuté doporučené nastavení pro různé typy kvalit.

Ukázalo se, že jsem v mnohém úplně mimo a tak jsem nastavení v OBS upravil podle tohoto. Nejen, že jsem ušetřil něco málo na síti, něco málo výkonu procesoru, ještě trochu vylepšil kvalitu obrazu, ale především jsem najednou vcelku pravidelně měl na svém kanálu pro své diváky k dispozici nastavení různých kvalit. Najednou mi na kanálu běžel Transcoding. Běžel den, dva, čtyři, týden. Byl tu stále a vše se zdálo být růžové.

To mě přivedlo k přesvědčení, že to není o nějakém náhodném uspořádání a protěžování Partnerů ze strany Twitche, ale že je to o správném nastavení u vysílajícího. Dává i to i vcelku smysl. Zatím co YT si může dovolit neřešit bordel a hrubou silou převést všechno, Twitch zjevně transcoduje signál, který je mu předán v dobrém stavu, neklade mu odpor a tedy nezvyšuje nároky na provoz. Je to pro něj pak udržitelné i ekonomicky.

Nastavení OBS

Interpretace toho, co vidíte na stránce Twitch video Encoding/Bitrates/And Stuff, HD High Framerate, 720p 60fps, vypadá pak v nastavení OBS následovně:

Nejvíce mě asi potrápila položka level, protože mi hned z kraje nebylo právě jasné, jak tuhle hodnotu v nastavení zapsat.

Je to však stabilní nastavení?

Ano, ale! Stále tomu úplně přesně nerozumím a někdo pracující s videem, kdo má tohle trochu více pod palcem by to asi byl schopný vysvětlit, ale stabilní je to, jak na obrázku vidíte, jen v případě, že hraji FPS hry, jako třeba aktuálně vysílaný Alien: Isolation. Pokud jedu celý týden jen Aliena, nemám problém a do nastavení nesahám.

Jenže o víkendech hraji RTS (realtimové strategie) u kterých jsem vypozoroval, že jsem nucen nastavení změnit. Chvilku mě to trvalo, ale postupným vylučováním jsem došel k tomu, že přepínám v nastavení jen hodnotu u položky Profil a to mezi main/high. Hele fakt netuším proč tomu tak je. Domnívám se, že to bude mít něco společného s dynamikou obrazu. Během hraní FPS se všechno přirozeně pohybuje rychleji než v RTS, kde je to trochu statičtější, ale na to by to zase chtělo nějakého experta (hele pokud mi to vysvětlíš na Discordu nebo tady v komentáři, budeš boží!). Ale zase na druhou stranu nepotřebuji být nejchytřejší na světě, potřebuji, aby moje streamy sledovali všichni a tedy abych při startu vysílání měl k dispozici přepínání kvalit! A to při výše zmíněném nastavení na obrázku a přepínání hodnot u profilu mám už měsíc.

Je to takový postřeh o který jsem měl potřebu se vykecat a budu jedině rád, pokud mi to někdo vyvrátí a napíše, že jsem retard a úplně mimo. Ještě radši však budu, když výše popsané skutečnosti pomohou jiným na jejich cestě. Ono je ke streamingu všude strašně moc informací a zaručených videí, článků, jak vydělávat miliony při každém živém vstupu, ale takovouhle kravinu jsem řešil, hledal, přes trilion diskuzí, načítání informací o tom co je main a high, čemuž stejně i teď hovno rozumím. Pokud jsi dočetl až sem, díky a doufám, že ti to pomohlo. Čus.