Skip to content

Élő internetes videó kiszolgálás típusok

Egy korábbi weblaboros cikkben szó volt a tárolt videó fájlok kiszolgálásáról. Ehhez képest az élő internetes videó kiszolgálás nehezebb és bonyolultabb feladat. A média folyamba, azaz stream-be (élő internetes videó angol megfelelője) menet közben kell bekapcsolódni. A broadcast és komolyabb rögzítési eljárásokhoz képest a mozgókép tömörítésénél alapvető és szükséges, hogy az egyes képkockák közötti különbségeket rögzítjük ahelyett, hogy minden egyes képet külön-külön tömörítenénk.

Élő internetes videó kódolás
Komoly technológia rejtőzik amögött, hogy internetes élő videót nézhess

Az eljárásban egy-egy frame-et ettől függetlenül ki kell jelölni viszonyítási alapként, tehát tartalma elegedhetetlen a valósidejű kép kiszámításához. Ezeket hívjuk kulcs képkockáknak (ld. H264). Egy élő internetes közvetítés stream-je esetén azonban kockázatos erre alapozni, tehát vagy csak kulcs kockákat használunk amivel a tömörítési eljárás elengedhetetlen eszközét veszítjük el vagy szükség van önálló egységekre, melyek egymástól függetlenül kezelhetők.

Ezek az egységek a fragmentek (töredékek). Egy fragment mindig kulcsképkockával kezdődik (ez egy önmagában dekódolható állókép azaz nem tartalmaz hivatkozást megelőző kockára). Az internetes élő videó adatfolyamban ezt követő képkockák úgy vannak „programozva”, hogy számítanak arra, hogy az előttük érkező kockák tartalmának birtokában vagyunk, tehát használható a differenciális tömörítés. A gyakorlatban amikor valós időben közvetítünk szerencsére alapesetben nem szükséges bitrátákkal kalkulálnunk, hiszen a feltöltés pont azzal a bitrátával történik amivel az encoder működik, így ahogy a tartalom elérhetővé válik, a nézők azonnal el is érik azt. A statikus fájllal ellentétben, ahol célszerű ha ütemezzük a kiszolgálás sebességét az élő internetes közvetítésnél a sávszélességet és a streaming szervert kell méreteztnünk.

Főleg, ha smooth streaming vagy multi bitrate megoldás, de erről majd később. A bökkenő az, hogy a WebM (vagyis a Matroska) nem tartalmaz strukturális elemet (metaadatot) a töredékek jelzésére, azaz nekünk kell felismertetni a kulcs képkockákat, és ezek ismeretében képezni a töredékeket vivő darabokat.