Příští týden mne čekají hned tři live streamy (v pondělí a úterý o pamětech v Arduinu a ve čtvrtek budeme pokračovat s přepisem AskMe do DotVVM) a proto jsem se rozhodl poněkud upgradovat svou streamovací sestavu, dosud používanou převážně na dálková školení. Vyrobil jsem také hardwarovou konzoli (rig) na ovládání OBS Studia.
Hardware
Ke streamování používám svou hlavní pracovní stanici. Je to klasický desktop a procesorem AMD Ryzen 5, 32 GB RAM, hromadou disků a připojenými čtyřmi monitory. K tomu mám Microsoft LifeCam Studio, což je velmi kvalitní USB webkamera s Full HD rozlišením a slušnou optikou.
Mám ještě několik dalších HD kamer, které chci natáhnout na další místa, až budu zase něco pájet nebo dělat s hardwarem, ale s tím jsem zatím ještě nic zásadního nedělal.
Software a nastavení
Ke streamování používám program OBS Studio. Ten umí pracovat s několika různými zdroji obrazu a zvuku (obrazovka, kamera, video soubor, framegrabber atd.) a různě je mixovat přes sebe a podobně. Výsledný signál umí lokálně nahrávat a přes RTSP posílat na různé video servery, které ho posílají dál do světa. Já mám zkušenosti s YouTube a Facebook Live, Tomáš Herceg zase používá Twitch.
V OBS Studiu lze definovat "Scény", které obsahují obraz z různých zdrojů a mezi kterými se lze jednoduše přepínat:
Ovládací panel
OBS se samozřejmě dá ovládat pomocí myši, klávesových zkratek nebo dotykové obrazovky. Pro rychlou práci ale není nic lepšího, než klasická hardwarová tlačítka.
Vyrobil jsem si tedy ovládací panel, který používá velká barevná tlačítka z hracích automatů:
Pět barevných tlačítek dole přepíná scény. Červené hranaté tlačítko spouští a zastavuje záznam, zelené hranaté tlačítko pak streamování. Obě hrataná tlačítka jsou podsvícená a pokud běží záznam nebo stream, svítí. Komunikace mezi ovládacím panelem a OBS je ale jednosměrná, panel neví zda se skutečně nahrává nebo ne, ví jenom kolikrát bylo stisknuto příslušné tlačítko. Předpokládá se, že po zapojení panelu nebude OBS Studio ovládáno jinak.
Celý panel je postaven na desce Arduino Pro Micro, která obsahuje procesor ATmega32u4. Ten umí mimo jiné emulovat USB klávesnici. Panel nedělá nic jiného, než že posílá do počítače klávesové zkratky Ctrl+Alt+Shift+F1 až Ctrl+Alt+Shift+F7. Ty jsem v nastavení OBS namapoval na přepínání výše uvedených scén a start/stop záznamu a streamu.
Fyzicky je panel vyrobený kombinací několika technologií:
- Hlavní skříňka je vytištěna na 3D tiskárně.
- Na ní je položený potištěný papír vyřezaný na řezacím plotteru, který obsahuje popisky scén.
- Papír je přikrytý 2 mm silným plexisklem, které ho chrání proti ušpinění a jinému poškození.
Myšlenka je, že papír by mělo být možné snadno vyměnit, podle toho jaký bude význam tlačítek.
Tato konstrukce se v praxi neosvědčila. Takhle velký model se na 3D tiskárně tiskne dlouho a nikdy se mi nepodařilo ho vytisknout úplně dokonale. Je přijatelný, ale není zcela přesný. Proto jsem se rozhodl vytvořit novější model, který bude mít skříňku vyřezanou na laseru z překližky a trochu jinak udělaný kryt z plexi.
Pokud vás zajímají podklady pro výrobu a zdrojové kódy, najdete je na mém GitHubu.