Otravný robotický zvuk
Na chvíli ti spadne bitrate. Obraz se sám srovná, ale zvuk občas ne - a zůstane ti to robotické sekání, dokud to nespravíš.
Media Source je totiž napsaný na přehrávání video souborů, ne pro IRL streamery v pohybu. Tak jsme napsali zdroj, který na to stavěný je.
Co Media Source neumí
Udržet zvuk pohromadě při poklesu bitrate. Media Source nemá žádnou rezervu na výpadky sítě - když data dorazí pozdě, uslyšíš to. Náš zdroj si drží rezervu zvuku a přenese se přes to, dohání to zrychlením nebo zpomalením o zlomky procenta.
Menší delay o vteřinu. Media Source si nabufferuje, kolik uzná za vhodné. Náš zdroj jede na pevném bufferu, který si nastavíš - při testování a měření na stejném streamu jsme dosáhli až k vteřinovému rozdílu.
Odhazuje zbytečné snímky. Po výpadku ti Media Source ukáže, co má zrovna po ruce, což bývá pár vteřin rozkostičkované kaše. Náš zdroj počká na kompletní snímek.
Nastavení
Pokud používáš náš CloudOBS, máš ho už předinstalovaný. Pokud ne, je to opravdu jednoduché - kompletní návod najdeš na release stránce.
Nainstaluj plugin (stáhnout)
Vytvoř nový zdroj - Bohemka IRL Source
Vyplň Input URL (Billing → Connection → SRT)
Hotovo.
Na konec adresy nic dopisovat nemusíš. Do SRT se normálně píše nastavení latence a špatně nastavená je přesně to, co způsobuje rozbitý obraz - plugin si ji doplní sám.
Horší připojení? V nastavení zdroje dej SRT latency na 800 ms a cushion na 400 ms. Trochu víc zpoždění, výrazně větší stabilita.
Pro zvědavé
Proč ten robotický zvuk vzniká. Stream nechodí plynule - chodí ve skupinách a mezi nimi jsou mezery. Přehrávač potřebuje malou rezervu zvuku, aby je pokryl. Háček je v tom, podle čeho ji nastavit: když se díváš na průměrné množství zvuku, vypadá to v pohodě, přestože rezerva mezi skupinama padá na nulu. A pokaždé, když se vyprázdní, dostaneš kousek ticha nebo zopakovaný úsek — a to je ten robotický zvuk.
Náš zdroj místo toho sleduje nejhlubší propad za posledních deset vteřin a rezervu nastaví tak, aby ho pokryla. Když pak potřebuje dohnat zpoždění, mění rychlost přehrávání o zlomky procenta.
Nastavení SRT. SRT si umí ztracené pakety vyžádat znovu, ale jen v časovém okně, které se nastavuje v adrese. Výchozí je 120 ms, což je na spoustě mobilních připojení míň než jedna cesta tam a zpět — opakovaný paket tak nedorazí včas a je prostě ztracený. Na jednom našem relay jsme při výchozím nastavení napočítali 84 ztracených paketů za minutu a obraz zvládal 3,6 fps. S oknem 800 ms na tom samém streamu: nula ztracených paketů a plných 30 fps. Přesně tuhle hodnotu teď plugin doplňuje sám.
Zvuk nikdy nečeká na obraz. Dekódování videa běží ve vlastním vlákně, takže i když je počítač vytížený nebo je obraz náročný, zvuk teče dál. Obojí jede podle stejných hodin, takže zůstávají synchronizované. A po reconnectu se obraz drží zpátky, dokud nedorazí čistý keyframe.
Funguje s OBS Studio 31 a 32 na Windows.