Pereiti prie turinio
Pagrindinis » IT ir technologijos » Kaip veikia gyvo vaizdo srautai

Kaip veikia gyvo vaizdo srautai

Kai paspaudžiate „play” – kas vyksta už ekrano?

Prisimenu, kaip prieš kokius dešimt metų norėdamas pažiūrėti filmą turėdavau jį visą parsisiųsti į kompiuterį. Dabar tiesiog atidarau Netflix, YouTube ar bet kurią kitą platformą ir tuoj pat galiu žiūrėti. Tačiau kaip tai iš tikrųjų veikia? Kaip vaizdo įrašas, kuris yra kažkur serveryje už tūkstančių kilometrų, pasirodo jūsų ekrane beveik akimirksniu?

Gyvo vaizdo srautai (angl. streaming) – tai technologija, kuri leidžia žiūrėti ar klausytis turinio internetu be poreikio jį visą iš karto parsisiųsti. Skamba paprasta, bet už šios paprastos idėjos slypi sudėtinga technologijų simfonija, apimanti duomenų glaudinimą, tinklo protokolus, serverių infrastruktūrą ir daug kitų dalykų.

Nuo didelių failų iki mažų gabaliukų

Pirmiausia reikia suprasti, kad vaizdo failai yra milžiniški. Vienos valandos nekompresijuotas HD vaizdo įrašas gali užimti šimtus gigabaitų. Net su geru interneto ryšiu tokio failo perdavimas užtruktų amžinybę. Todėl pirmasis žingsnis – suspausti šį vaizdo įrašą į kažką valdomo.

Čia į žaidimą įsijungia vaizdo kodekai – algoritmai, kurie supranta, kaip sumažinti vaizdo failo dydį neprarandant per daug kokybės. Populiariausi kodekai šiandien yra H.264, H.265 (HEVC) ir naujesnis AV1. Jie veikia išnaudodami tai, kad daugelyje vaizdo kadrų daug kas kartojasi. Pavyzdžiui, jei filmo scenoje žmogus kalba fone esant sienai, ta siena daugumoje kadrų lieka ta pati. Kodekui nereikia kiekvieną kartą saugoti visos sienos informacijos – užtenka išsaugoti tik tai, kas pasikeičia.

Bet tai dar ne viskas. Suspaustas vaizdo įrašas dabar padalijamas į mažus gabalėlius – segmentus, kurie paprastai trunka nuo 2 iki 10 sekundžių. Būtent šie segmentai ir keliauja per internetą į jūsų įrenginį. Jūsų grotuvas parsisiunčia vieną segmentą, pradeda jį groti, tuo pačiu metu jau kraudamas kitą. Tai panašu į konvejerį – kol jūs žiūrite vieną dalį, kita jau keliauja link jūsų.

Adaptyvus bitų srautas – technologija, kuri prisitaiko prie jūsų interneto

Dabar pereikime prie vienos įdomiausių dalių. Turbūt pastebėjote, kad kartais vaizdo kokybė tampa prastesnė, o po kelių sekundžių vėl pagerėja? Tai nėra atsitiktinumas ar gedimas – tai veikia adaptyvaus bitų srauto technologija.

Kai įkeliate vaizdo įrašą į streaming platformą, jis ne tik suspaudžiamas, bet ir sukuriamos kelios skirtingos jo versijos – skirtingų kokybių ir skirtingų failų dydžių. Pavyzdžiui, gali būti 4K versija, Full HD, 720p, 480p ir net žemesnės kokybės variantai. Kiekviena iš šių versijų padalijama į tuos pačius segmentus.

Jūsų grotuvas nuolat stebi, kaip greitai jis gali parsisiųsti segmentus. Jei interneto ryšys geras, jis prašo serverio siųsti aukštos kokybės segmentus. Jei ryšys pablogėja, grotuvas automatiškai pereina prie žemesnės kokybės versijos. Visa tai vyksta sklandžiai, dažnai net nepastebite perėjimo momento.

Šis mechanizmas naudoja protokolus kaip HLS (HTTP Live Streaming) arba DASH (Dynamic Adaptive Streaming over HTTP). Jie iš esmės yra instrukcijos, kaip grotuvas turėtų bendrauti su serveriu, kokius segmentus prašyti ir kaip prisitaikyti prie kintančių sąlygų.

Serverių armija ir turinio pristatymo tinklai

Dabar pagalvokite: milijonai žmonių vienu metu žiūri YouTube ar Netflix. Jei visi jie bandytų parsisiųsti vaizdo įrašus iš vieno serverio, tas serveris tiesiog sugriūtų. Todėl streaming platformos naudoja tai, kas vadinama CDN – Content Delivery Network, arba turinio pristatymo tinklais.

CDN – tai serverių tinklas, išdėstytas po visą pasaulį. Kai įkeliate vaizdo įrašą, jis nukopijuojamas į šimtus ar net tūkstančius serverių skirtingose geografinėse vietose. Kai jūs norite žiūrėti tą vaizdo įrašą, sistema automatiškai nukreipia jus į artimiausią serverį. Jei esate Vilniuje, greičiausiai gaunate duomenis iš serverio kažkur Europoje, o ne iš Kalifornijos.

Tai ne tik pagreitina duomenų perdavimą, bet ir sumažina apkrovą bet kuriam vienam serveriui. Be to, populiarūs vaizdo įrašai dažnai saugomi talpykloje (cache) dar arčiau jūsų – kartais net jūsų interneto paslaugų teikėjo serveriuose. Štai kodėl populiarūs vaizdo įrašai dažnai kraunasi greičiau nei retai žiūrimi.

Buferizacija – kodėl kartais tenka palaukti?

Visi esame matę tą besisukantį ratą ekrane, kuris reiškia, kad vaizdo įrašas kraunasi. Tai vadinama buferizacija, ir ji atsiranda, kai jūsų grotuvas negali pakankamai greitai gauti naujų duomenų.

Grotuvas visada bando turėti tam tikrą duomenų atsargą – buferį. Pavyzdžiui, jis gali turėti parsisiuntęs 30 sekundžių vaizdo įrašo į priekį. Jei jūsų interneto ryšys trumpam sulėtėja, grotuvas gali toliau rodyti vaizdo įrašą iš buferio, kol ryšys vėl pagerėja. Bet jei ryšys per ilgai yra prastas, buferis išsenka ir tenka laukti, kol bus parsisiųsta daugiau duomenų.

Moderniuose grotuvuose yra sudėtingi algoritmai, kurie bando nuspėti, kiek duomenų reikėtų turėti buferyje. Per mažas buferis reiškia dažną buferizaciją, per didelis – ilgesnį laukimą prieš pradedant žiūrėti ir didesnes problemas, jei norite peršokti į kitą vaizdo įrašo vietą.

Gyvų transliacijų ypatybės

Gyvos transliacijos – tai visai kitas žvėris. Kai žiūrite įrašytą vaizdo įrašą, visas turinys jau egzistuoja serveryje. Bet kai žiūrite gyvą futbolo rungtynes ar kokį nors renginį, turinys kuriamas realiu laiku.

Gyvų transliacijų atveju vaizdas iš kameros pirmiausia patenka į kodavimo serverį (encoder), kuris jį suspaudžia ir padalija į segmentus realiu laiku. Šie segmentai tuoj pat išsiunčiami į CDN serverius, o iš ten – žiūrovams. Visas šis procesas užtrunka paprastai nuo 10 iki 30 sekundžių, todėl tai, ką matote ekrane, iš tikrųjų įvyko prieš keliolika sekundžių.

Kai kurios platformos, kaip Twitch ar YouTube Gaming, bando sumažinti šį vėlavimą iki kelių sekundžių, naudodamos specialius protokolus kaip WebRTC. Tai ypač svarbu interaktyvioms transliacijoms, kur žiūrovai bendrauja su transliuotoju komentarais.

Apsauga nuo piratavimo ir DRM

Streaming platformos, ypač tos, kurios rodo mokamą turinį, turi rūpintis, kad niekas negalėtų lengvai parsisiųsti ir platinti jų vaizdo įrašų. Tam naudojamos DRM (Digital Rights Management) technologijos.

DRM veikia šifruodama vaizdo segmentus. Kai jūsų grotuvas prašo segmento, jis kartu gauna ir raktą, kuris leidžia tą segmentą iššifruoti ir parodyti. Šie raktai yra laikini ir susieti su jūsų paskyra bei įrenginiu. Net jei kažkas perimtų šifruotus duomenis, jie negalėtų jų atkurti be rakto.

Populiariausios DRM sistemos yra Widevine (Google), FairPlay (Apple) ir PlayReady (Microsoft). Jos integruotos į naršykles ir įrenginius, todėl viskas veikia sklandžiai paprastam vartotojui. Tačiau ši apsauga kartais sukelia problemų – pavyzdžiui, kai kurios platformos riboja vaizdo kokybę tam tikrose naršyklėse ar operacinėse sistemose dėl DRM apribojimų.

Ką ateitis žada streaming technologijoms

Streaming technologijos nuolat tobulėja. Naujesni kodekai kaip AV1 žada dar geresnį suspaudimą – tai reiškia aukštesnę kokybę esant tam pačiam interneto greičiui. Kai kurios platformos jau eksperimentuoja su 8K vaizdu, nors realiai daugelis žmonių dar neturi net 4K ekranų.

Dirbtinis intelektas taip pat pradeda vaidinti vaidmenį. AI algoritmai gali pagerinti vaizdo kokybę realiu laiku, pridėti trūkstamus kadrus, kad judėjimas būtų sklandesnis, arba net pašalinti triukšmą iš senų vaizdo įrašų. Kai kurios platformos naudoja AI, kad optimizuotų, kuriuos vaizdo įrašus saugoti kuriuose serveriuose, remdamosi žiūrėjimo įpročiais.

5G tinklai ir gerėjanti interneto infrastruktūra reiškia, kad streaming taps dar patikimesnis ir prieinamesnis. Galbūt netrukus galėsime žiūrėti aukštos kokybės vaizdo įrašus net keliaujant traukiniu ar autobusu be jokių problemų.

Taip pat matome judėjimą link interaktyvaus turinio. Netflix jau eksperimentavo su interaktyviais filmais, kur žiūrovai gali rinktis, kaip vystysis siužetas. Tai reikalauja dar sudėtingesnės streaming infrastruktūros, kuri gali dinamiškai keisti turinį priklausomai nuo vartotojo pasirinkimų.

Streaming technologija padarė tai, kas dar prieš dešimtmetį atrodė kaip fantastika – galimybę beveik akimirksniu pasiekti beveik bet kokį vaizdo turinį iš bet kurios pasaulio vietos. Ir nors mes paprastai tiesiog spaudžiame „play” ir mėgaujamės turiniu, už to slypi neįtikėtinai sudėtinga technologijų ekosistema, kuri veikia harmoningai, kad mūsų patirtis būtų kuo sklandesnė. Kaskart, kai vaizdo įrašas kraunasi per kelias sekundes, verta prisiminti, kad tą akimirką dirba tūkstančiai serverių, protokolų ir algoritmų, kurie daro tai įmanoma.