Streaming, enkóder, dekóder, ...? Vyznáte sa v tom?

Výrazy to nie sú zďaleka nové, ale za posledné obdobie ich ľudia používajú stále viac a viac. Mnohí, čo ich doteraz poznať nepotrebovali, ich zrazu vyhľadávajú a tí čo o nich aspoň čo to tušili sú vyhľadávanými. V každom prípade doba pokročila. Streamovanie sa stalo popredným strategickým ťahom, keď ide o sledovanosť. Preto je dobré mať v tom jasno.


Čo je streaming, enkóder, dekóder, latencia, …. kodek?

Enkóder je zariadenie alebo softvérová aplikácia, ktorá umožňuje prevod zvukového alebo obrazového obsahu z jeho zdrojového formátu (obraz a zvuk v pôvodnom, neskomprimovanom formáte) do komprimovaného digitálneho formátu vhodného na prenos alebo ukladanie. Enkóder používa rôzne kompresné algoritmy (kodeky) na zmenšenie veľkosti dát, pričom sa snaží udržať požadovanú úroveň kvality. Komprimované dáta môžu byť potom efektívnejšie prenášané alebo ukladané (napríklad na pevný disk). Enkóder je bežným komponentom v multimediálnych aplikáciách, streamingových službách, vysielaní a videoprodukcii na prevod obsahu do vhodného formátu pre distribúciu alebo archiváciu.

Streamer je takisto zariadenie alebo softvérová aplikácia. Umožňuje prenos zvuku alebo obrazu po sieti v reálnom čase. Preberá kódované zvukové alebo obrazové dáta a prenáša ich cez počítačovú sieť, čo umožňuje užívateľom sledovať alebo počúvať obsah v momente jeho príjmu. Streamer môže podporovať rôzne sieťové protokoly, ako napríklad HTTP (Hypertext Transfer Protocol), RTSP (Real-Time Streaming Protocol) alebo HLS (HTTP Live Streaming). Zároveň zabezpečuje sieťovú komunikáciu, vyrovnávanie (buffering) a synchronizáciu pre plynulého prehrávania obsahu pre koncových užívateľov.

Môžeme teda povedať, že úlohou enkódera je kompresia a prevod zvukového alebo obrazového obsahu do vhodného formátu pre prenos alebo ukladanie, zatiaľ čo úlohou streamera je doručenie kódovaného obsahu cez počítačovú sieť ku koncovým užívateľom v reálnom čase.

V praxi je bežné, že enkóder obsahuje aj streamer (či už hardvérový alebo softvérový).

Streaming je teda metóda prenosu obsahu (najmä zvuk a obraz) prostredníctvom počítačovej siete (teda aj prostredníctvom internetu) v reálnom čase bez toho, aby ste si ho museli vopred stiahnuť na svoj počítač a až potom prehrať (napríklad vo VLC alebo Netflix aplikácii).

Obsah sa vo forme dát dostane do vášho počítača vďaka počítačovej sieti (tá prepraví dáta zo zariadenia A do zariadenia B, alebo zo zariadenia A do veľa zariadení B, C ,D…súčasne). Enkóder, streamer alebo dekóder môžu byť vo forme samostatnej hardvérovej jednotky alebo vo forme softvéru, ktorý je možné potom používať na bežnom počítači.


*Obrázok: https://marshall-usa.com/discontinued/IPTV/VS-102-HDSDI.php

Na obrázku je znázornený hardvérový enkóder, do ktorého je zapojená kamera a mikrofón. Enkóder obsahuje aj streamer, ktorý je pripojený do počítačovej siete (lokálna sieť alebo internet). Do počítačovej siete je pripojený aj dekóder, ktorý prevezme dáta odoslané enkóderom a vytvorí z nich obraz a zvuk, vhodný na prehratie na monitore alebo TV. Hardvérový enkóder, streamer  a dekóder môžete nahradiť v tomto obrázku počítačom so softvérovým enkóderom a streamerom na jednej strane a počítačom so softvérovým dekóderom na druhej strane.

Ako sa dostane obraz z kamery a zvuk z mikrofónu do počítačovej siete alebo internetu a potom na displej vášho počítača?

Kamera na svojom výstupe (HDMI, SDI, Ethernet, USB) poskytuje obraz (príp. aj zvuk), ktorý sníma, vo forme dát. Tento výstup je pripojený do vstupu enkódera/streamera, ktorý dáta upraví do formy, ktorá je vhodná na prenos pomocou počítačovej sieti. Jednotky a nuly v počítačovej sieti nepobehujú chaoticky sem a tam - používajú sa pravidlá (protokoly) podľa ktorých sa všetko v sieti riadi.
Jedným z takých protokolov je napríklad TCP (https://sk.wikipedia.org/wiki/Protokol_riadenia_prenosu).

Dáta sa po počítačovej sieti prenášajú iným spôsobom, než napríklad cez HDMI alebo SDI kábel. Hlavný rozdiel je v tom, že prenos cez počítačovú sieť býva spravidla oveľa pomalší než cez HDMI alebo SDI kábel a dáta sa prenášajú v samostatných “balíkoch”, ktoré nemusia prísť do cieľa v rovnakom poradí, v akom sa odoslali.

Aby bolo možné dáta preniesť aj po pomalšej sieti, enkóder ich upraví a skomprimuje. Použije na to špeciálny algoritmus: kodek. Kodek je návod ako upraviť obrazové a zvukové dáta tak, aby spĺňali naše požiadavky na rýchlosť a kvalitu. Najbežnejšie sa dnes používajú kodeky H.265(HEVC) a H.264(AVC). V prípade HD obrazu dokáže enkóder s kodekom H.264 zmenšiť dáta 20 až 30 násobne a s kodekom H.265 30 až 50 násobne. Dekóder potom dokáže z týchto “zmenšených” dát vytvoriť pôvodný obraz alebo zvuk. Dôležité je, že pri obidvoch týchto kodekoch hovoríme o stratovej kompresii. Znamená to, že po dekódovaní nedostaneme rovnaké dáta ako tie, ktoré enkóder komprimoval. Dôjde teda k strate časti dát, čo môže viesť k zhoršeniu kvality obrazu alebo zvuku (najmä pri veľkej kompresii). Našťastie sú tieto moderné kodeky navrhnuté tak, že aj pri relatívne veľkej kompresii je strata kvality 

zanedbateľná. Po tomto kroku prevezme dáta streamer, ktorý z dát urobí balíčky s časovými značkami (packets) a v predpísanom prenosovom formáte pošle tomu, kto o ne požiada. Ako prenosový formát sa dnes najbežnejšie používa HTTPS alebo RTSP protokol. Prvý sa používa najmä pri on-demand streamingu (teda, stream sa poskytne druhej strane na vyžiadanie a z pripravených dát) a druhý sa používa na live streaming (dáta v streame sú dostupné v reálnom čase).

Balíčky s dátami (packets) sa môžu po odoslaní zo streamera pohybovať po sieti rôznymi cestami a prechádzajú rôznymi zariadeniami, ktoré tvoria počítačovú sieť. Môže sa teda stať, že balíčky nedorazia do cieľa v tom poradí v akom boli odoslané. Po prijatí sa musia zoradiť do správneho poradia  a zoradené ich spracuje dekóder, ktorý z nich vytvorí obrazové a zvukové dáta vhodné pre váš displej alebo slúchadlá. Celý tento proces môže chvíľu trvať (ms až sekundy). V tomto prípade hovoríme o oneskorení (latencii) na strane dekódera. Na strane enkódera tiež vzniká latencia, ktorá je rovná času, ktorý potrebuje enkóder aby obraz a zvuk v pôvodnej kvalite (na vstupe do enkódera) zanalyzoval, zakódoval a zabalil tak, aby výsledné dáta boli čo najmenšie a s čo najlepšou kvalitou. Enkóder tieto kúzla robi presne podľa toho, čo je napísané v kodeku, s ktorým pracuje.

Ak je kodek vymyslený a napísaný tak, že môže bežať aj na bežnom počítači, tak softvér, ktorý ho používa napríklad pre streamovanie nazývame softvérový enkóder. Ak je navrhnutý pre špeciálny procesor (CPU, FPGA, a pod.) a beží na špeciálnom hardvéri (teda nie na bežnom počítači, mobile, tablete, TV), hovoríme o hardvérovom enkóderi. To isté platí aj pre dekóder. Pre bežne používané kodeky je ale podstatne náročnejšie “zakódovať” obraz a zvuk, ako ho “dekódovať”, preto je z hľadiska rozdielov dôležitejšie porovnanie medzi softvérovým a hardvérovým enkóderom ako dekóderom.

Hardvérový enkóder alebo streamer

Enkódovanie alebo streamovanie pomocou hardvéru má niekoľko výhod oproti softvérovej verzii. 

  1. Výkon: Hardvérové riešenia na streamovanie majú špeciálne navrhnutý hardvér, ktorý je optimalizovaný pre spracovanie obrazu a zvuku a pre vytvorenie streamu. Takýto hardvér dokáže rýchlo a efektívne spracovávať vstupné dáta a výsledkom môže byť kvalitnejší obraz a zvuk a menšia latencia. V porovnaní s bežným softvérovým riešením, ktoré musí spoliehať na výkon počítača, na ktorom je softvér nainštalovaný, je hardvér omnoho efektívnejší.
  2. Malé oneskorenie (latencia): Hardvérový enkóder a dekóder sú navrhnuté tak, aby minimalizovali oneskorenie medzi vstupom dát do zariadenia a ich výstupom. Toto je obzvlášť dôležité pri živom streamovaní, kde je nízka latencia kritická pre interakciu s divákmi.
  3. Flexibilita: Hardvérové riešenia často podporujú väčšie možnosti streamovať obsah na viacero platforiem a zariadení súčasne. Tieto zariadenia majú často rozšíriteľné porty a funkcie, ktoré umožňujú pripojenie a spracovanie viacerých vstupných signálov súčasne.
  4. Stabilita: Hardvérové riešenia sú navrhnuté tak, aby ponúkali stabilné a spoľahlivé enkódovanie a streamovanie bez výrazných výpadkov alebo preťažení. Majú vstavané ochranné mechanizmy a optimalizácie, ktoré minimalizujú riziko výpadkov alebo zníženie  kvality streamu.
  5. Jednoduchosť použitia: Pre mnoho užívateľov je hardvérové riešenia jednoduchšie a pohodlnejšie ako softvérové. Hardvér často poskytujú jednoduché užívateľské rozhranie a intuitívne ovládanie, čo zjednodušuje proces nastavenia a správy streamov. Zapnete a fungujete.

Hlavnou nevýhodou hardvérového riešenia môže byť cena oproti softvérovému riešeniu. 

Všetko, čo je napísané vyššie platí aj pre dekóder, ale dekódovanie je spravidla oveľa jednoduchší proces ako enkódovanie a streamovanie a preto aj väčšina dekóderov zvláda všetko ako má.

Možností výberu vhodného enkódera, streamera alebo dekódera sú v súčasnosti veľmi široké. Nájdete softvérové riešenia, ktoré sú zadarmo:

  • OBS Studio je asi najpoužívanejší bezplatný open-source streamovací softvér. Podporuje rôzne platformy, vrátane Windows, Mac a Linux a poskytuje výkonné funkcie a nástroje pre živé streamovanie a záznam. Je uprednostňovaný pre svoje moderné a intuitívne rozhranie, ktoré je prístupné pre profesionálov aj začiatočníkov. 
  • Streamyard je web riešenie pre živé streamovanie. Umožňuje používateľom jednoducho vytvárať živé vysielanie pomocou internetového prehliadača bez potreby ďalšieho softvéru alebo hardvéru.
  • Restream je cloudové softvérové riešenie na streaming videa. Ponúka služby na streamovanie videí súčasne na viac ako 30 rôznych platformách, ako sú Twitch, Facebook, YouTube a ďalšie. Restream poskytuje aj možnosť priamej integrácie s inými streamovacími softvérami ako Elgato, Xsplit, OBS Studio a ďalšími. Hlavnou výhodou Restreamu je možnosť v reálnom čase prepínať medzi platformami a kanálmi.

Softvér, za ktorý sa platí:

  • vMix je profesionálne streamovacie riešenie, ktoré ponúka široké možnosti pre produkciu živého obsahu. Okrem streamovania umožňuje vMix spracovávať a miešať viacero zdrojových kanálov, pridávať efekty, overlay grafiku, titulky, prechody a ďalšie prvky produkcie. 
  • XSplit Broadcaster je komerčné streamovacie riešenie, ktoré poskytuje jednoduché rozhranie a rôzne vylepšenia pre streamovanie. S XSplit Broadcaster môžete pridávať zdroje, spracovávať rôzne scény, pridávať overlay grafiku, používať úpravy obrazu a zvuku a streamovať na rôzne platformy. Poskytuje tiež možnosť záznamu a správy streamov.
  • Wirecast je vhodný pre profesionálnych streamerov, televízne stanice, online vysielanie udalostí a ďalšie aplikácie, ktoré vyžadujú vysokú úroveň produkcie živého obsahu. Wirecast obsahuje pokročilé funkcie spracovania živého videa, ako je zrkadlenie, priblíženie, farba, nasýtenie, korekcia farieb a ďalšie. Poskytuje tiež nástroje na synchronizáciu zvuku a videa pre optimálne vysielanie.
  • Streamlabs OBS je modifikácia OBS Studia, ktorá ponúka jednoduchšie a intuitívnejšie rozhranie s možnosťou pridávania overlay grafiky, alertov, widgetov a ďalších prvkov. Streamlabs OBS je špeciálne navrhnutý pre streamovanie hier a obsahu na platformách ako Twitch alebo YouTube.

Z hardvérových streamovacích riešení odporúčame:

  • Magewell Ultrastream -Jednoduchý 1-kanálový streamovací enkodér (3G-SDI alebo HDMI verzia) s podporou streamingu až na 50 platforiem bez potreby počítača.
  • RGBLink TAO 1 Mini - Univerzálny enkóder a dekóder (vo Full HD alebo 4K verzii) s podporou pre všetky aktuálne NDI kodeky. O NDI a celej TAO sérii produkov si môžete prečítať v blogu - Mať, či nemať HDMI?
  • M-Game Solo a RGB Dual - USB streaming mixpulty a audio rozhrania s LED podsvietením, hlasovými efektami, samplerom a priloženým softvérom špeciálne navrhnuté pre live streaming videohier.
  • Blackmagic Design ATEM Mini séria - Kompaktné switchre a video streaming hardvér pre malé a stredné produkcie živého obsahu, podcasty, malé relácie, prezentácie a ďalšie.

Na technológii, ktorá obsahuje enkóder, streamer a dekóder je v súčasnosti postavené televízne vysielanie po celom svete. Všetky televízie dodávajú svoj obsah v nejakej pôvodnej, nekomprimovanej forme distribučnej firme (UPC, Telekom, Orange, Towercom, Skylink, Antik, atď.), ktorá ich nejakým spôsobom spracuje a ďalej distribuuje do internetu alebo vzduchom, na satelit, z ktorého ho môžete prijať, tam kde nie je dostupný internet. Ale o tom si povieme inokedy.