Oprogramowanie  /  Artykuł

Z tej polskiej technologii streamingu korzystają klienci na całym świecie - w tym pewnie i Ty. Rozmawiamy z twórcami Storm Streaming Server

storm streaming

W Polsce od 14 lat współtworzą największe serwisy streamingowe. Za granicą z ich usług korzystają popularne amerykańskie magazyny i azjatyckie telewizje internetowe. Stworzyli Showup.tv, który przed paroma laty przeszedł niemałą transformację i są gotowi na kolejne wdrożenia. Rozmawiamy z Polakami, którzy stworzyli Storm Streaming Server.

Web-Anatomy to polski software house związany z tematem VOD i streamingu wideo już od 14 lat. Lista klientów jest naprawdę imponująca, bo znajdziemy na niej Alzajeerę, Crunchroll, Complex, czy Singtel.

Nowym produktem Web-Anatomy jest Storm Streaming Server, czyli oprogramowanie do dystrybucji streamingu video na żywo, w którym kluczowe są jak najniższe opóźnienia. Aplikacja nawet przy tysiącach widzów zapewnia opóźnienia wynoszące maksymalnie sekundę, a to umożliwia interakcję z osobą strumieniującą wideo.

O tym jak powstawało oprogramowanie i dlaczego taki system transmisji sprawdzi się zarówno u dealera aut, jak i podczas video-korepetycji, rozmawiałem z przedstawicielami software house’u Web-Anatomy.

storm strreaming

Marcin Połowianiuk, Spider’s Web: Czym jest Storm Streaming Server?

Szymon Polok, Web-Anatomy: Jest to technologia skrojona i zaprojektowania do jednego konkretnego zadania – streamingu video w czasie rzeczywistym z najmniejszymi możliwymi opóźnieniami.

Czy można powiedzieć, że Storm Streaming Server to polski projekt?

Niewątpliwie jest to polski pomysł i Polska firma. Nasze biuro mieści się u podnóża Beskidów, w samym sercu historycznej części Bielska-Białej i to tutaj powstają wszystkie nasze projekty. Niemniej w naszej działalności współpracujemy stale z wieloma osobami z praktycznie każdego zakątka świata.

Skąd pomysł, by wykonać własny system streamingu? Co było nie tak z istniejącymi rozwiązaniami?

Najważniejszym powodem była niewątpliwie frustracja. Wraz z porzuceniem przez branżę wtyczki Adobe Flash na rzecz HTML5 pojawiła się dość istotna luka. O ile HTML5 w końcu umożliwiał osadzanie plików video, to przesyłanie czegokolwiek na żywo było poważnym problemem. Większość prób rozwiązania tego problemu (np. technologia HLS, czy MPEG-DASH) generowała olbrzymie opóźnienia rzędu nawet 30 sekund i więcej. Jak w takiej sytuacji wprowadzić interakcję między streamującym a użytkownikami?

No właśnie, jak?

Jest to bardzo trudne. Duże nadzieje pokładaliśmy w WebRTC, które miało być swoistym remedium na nasze bolączki, ale okazało się, że i ta technologia ma mnóstwo problemów związanych choćby z obsługiwanymi zestawami kodeków i zachowaniem w sieciach. Nie każdy ma dostęp do superstabilnego internetu, a my chcieliśmy, żeby nasz system do live video streamingu działał nawet na słabych łączach.

Dlaczego akurat Wasz produkt? Jakie przewagi w kwestii działania przedstawiacie swoim klientom?

Przede wszystkim jeżeli chodzi o live streaming software nasze rozwiązanie jest kompletne – mamy tutaj zarówno aplikację serwerową, jak i zestaw dedykowanych bibliotek dla różnych środowisk (webowego, iOS, Android). Te rzeczy zostały zaprojektowane, by współdziałać ze sobą od początku do końca, dzięki czemu możemy zaoferować opóźnienia rzędu poniżej jednej sekundy, co jest bardzo ważnym wyróżnikiem względem konkurencyjnego oprogramowania typu live streaming server.

storm strreaming

Na jakich urządzeniach można oglądać transmisje przeprowadzane w waszej technologii? Mówicie o PC, Androidzie i iOS, ale co ze smart TV?

Storm jest w pełni obsługiwany przez wszystkie współczesne przeglądarki internetowe, w tym Chrome, Edge, Safari, aż do Firefox’a i całą rodzinę pokrewnych mu forków. Nie inaczej jest w przypadku środowiska mobilnego. Dostarczamy gotowe biblioteki i komponenty zarówno dla iOS-a jak i Androida. W przypadku Smart TV sytuacja wygląda analogicznie, jako że większość tych urządzeń również oparta jest o różne autorskie kompilacje Androida czy Linuxa.

Jacy są Wasi najwięksi klienci? Są to serwisy tylko z Polski, czy z również z innych rynków?

Do największych naszych klientów możemy zaliczyć platformy telewizji internetowej z m.in. Singtel i Starhub GO, które obsługują setki tysięcy widzów na terenie Azji. Ostatnio do tej listy dołączył też DigiTurk, który jest największym dostawcą płatnych kanałów w Turcji. Od bardzo wielu lat współpracujemy także z amerykańskim magazynem Complex oraz Dazn.com. W Polsce z kolei naszym najbardziej znanym dziełem jest Showup.tv, który od pewnego czasu również zasilany jest naszą technologią.

storm strreaming

W przypadku Showup.tv pojedynczy stream może oglądać kilka lub kilka tysięcy osób. Jak wasze rozwiązanie sobie z tym radzi?

Bardzo ważną cechą naszego oprogramowania jest jego skalowalność, czyli zdolność dzielenia się pracą i obciążeniem kilku instancji serwera pomiędzy sobą. Jeżeli jeden serwer padnie, reszta po prostu przejmuje jego obowiązki i usługa działa dalej. Jest to komponent, nad którym pracowaliśmy bodaj najdłużej, ale bez którego nikt poważny by naszego rozwiązania nie zdecydował się zaadoptować.

Jak to wygląda w praktyce? Kiedy np. w trakcie meczu piłki nożnej robi się gorąco, liczba widzów może bardzo szybko wzrosnąć. Ile widzów jednocześnie może obsłużyć serwer?

Pojedyncza instancja serwera bez trudu potrafi strumieniować ponad 10 Gb/s, co odpowiada nawet ok. 3 tysiącom widzów przy rozdzielczości 720p. Gdy sytuacja robi się gorąca, w ciągu kilku minut można skonfigurować kolejną instancję (o ile tylko sprzęt jest dostępny) i zdublować ten wynik. Oczywiście nasi klienci, jak np. dazn.com mają w rezerwie dziesiątki serwerów i są przygotowany na takie sytuacje, ale sama rozbudowa może następować bardzo szybko.

Mówisz o pojedynczym serwerze, ale ile może być ich w praktyce?

Wszystko zależy od infrastruktury klienta. Nasze rozwiązanie zostało zaprojektowane tak, by poszczególne instancje naszej aplikacji serwerowej komunikowały się ze sobą, powiadamiały o swoim obciążeniu, a w przypadku awarii przerzucały ruch gdzieś indziej. Ten system działa świetnie, gdy mamy np. dwa serwery, ale też, gdy mamy ich dwieście.

A co, jeśli chcielibyśmy obsłużyć dwustronną komunikację wideo? Załóżmy, że mamy lekarza i pacjenta – to czy możemy sprawić, że mogą się ze sobą komunikować?

Takie rozwiązanie jest możliwe, ale wymaga obsługi dwóch strumieni wideo jednocześnie. Od strony technologii Storm Streaming Server jak najbardziej pozwala na takie zastosowanie.

Czy Storm Streaming Server może też posłużyć do obsługi nowoczesnych usług gamingu w chmurze? Mam tu na myśli serwisy pokroju Google Stadia, GeForce Now czy Xbox Cloud.

Takie usługi wykorzystują do komunikacji protokół UDP, który przy odpowiednich warunkach może zaoferować opóźnienia na poziomie ok. 50-60 ms, ale warunkiem jest stabilne łącze, najlepiej światłowodowe. Z kolei nasze oprogramowanie do live streamingu zostało zaprojektowane pod kątem stabilności nawet w bardzo słabych sieciach, tak by podróżując autobusem czy pociągiem wciąż móc cieszyć się ulubioną audycją, czy streamem.

Załóżmy, że jestem klientem, który chce wykorzystać Storm Streaming Server w swojej usłudze. Jak wygląda wdrożenie? Zajmuje się tym Wasz zespół, czy instalacja leży po mojej stronie?

Relatywnie rzecz biorąc, proces jest dość prosty, o ile coś w IT może być proste bez niespodzianek. Po pierwsze konieczna jest instalacja oprogramowania na architekturze serwerowej i jej odpowiednia konfiguracja. Przy większych klientach zazwyczaj jesteśmy proszeni o pomoc w tym procesie, czasami robimy to nawet sami. Drugi etap to kwestia integracji samego serwisu (strony WWW, aplikacji mobilnej) z naszym rozwiązaniem. Spełniamy tutaj rolę doradczą, współpracując z osobami, które zajmują się tym u klienta na co dzień.

Czy jest jakiś obszar użycia waszej technologii, który nie został jeszcze wdrożony, a który szczególnie chcielibyście zobaczyć w działaniu? Mam na myśli np. obsługę dużych imprez sportowych takich jak Euro 2020, IO 2020, czy np. imprez muzycznych.

Jak już wspomniałem, grono naszych klientów to platformy telewizji internetowej, więc Euro mamy już niejako zaliczone. Widzimy natomiast ogromny potencjał tej technologii jeszcze w innych zastosowaniach np. e-learningu, co niejako wymusiła pandemia Covid-19. Storm świetnie mógłby sprawdzać się w sprzedaży. Rozmawiamy aktualnie z pewną siecią dealerską nad wykorzystaniem go do prezentacji samochodów, ale równie dobrze mogłoby to być coś innego, np. mieszkania czy działki.

Załóżmy, że jestem dealerem Mercedesa. Dlaczego miałbym wdrożyć wasz system do kontaktu z pojedynczym klientem? Czy nie mogę użyć do rozmowy chociaż Zoomu, na którym właśnie rozmawiamy? Było za darmo i do tego stabilnie.

Owszem, ale tak naprawdę nie ma nic za darmo. Jeżeli strona, lub serwis oferuje nam coś za przysłowiowe friko, to tak naprawdę tym towarem jesteśmy my sami, a dokładniej nasze dane. Wiele osób zapewne zauważyło, że wspominając na danym komunikatorze np. o zakupie nowego roweru, nagle bez przyczyny jesteśmy atakowani setkami ofert wszelakich jednośladów. Druga nie mniej ważna kwestia to „imersja”. Inaczej wygląda sytuacja, gdy zapraszamy kogoś na Skype’a/Zoom’a, a inaczej, gdy wszystko jest ciągiem doświadczeń danego brandu.

Jakie są wymagania w kwestii szybkości łącza, by Storm Streaming Server zapewnił stabilną transmisję? Jakie łącze musi mieć nadający, a jakie odbiorca? Czy po obu stronach wystarczy do tego łączność LTE, która umożliwiłaby streaming z każdego miejsca?

Same parametry zależą bezpośrednio od jakości obrazu, jaką chcemy uzyskać, czyli kombinacji rozdzielczości i bitrate’u, oraz oczywiście samego kodeku obrazu. Jeżeli chcemy oglądać obraz w rozdzielczości 720p musimy dysponować łączem na poziomie 3,5 – 5 Mb/s. W przypadku, gdy na ekranie dzieje się niewiele, to zużycie będzie dużo mniejsze, a kiedy włączymy film akcji, zbliżać będziemy się do górnej wartości.

storm streaming

Czy Storm pozwala cofnąć transmisję? Dajmy na to, że spóźniłem się na mecz, a chcę zobaczyć jego początek. Co w takiej sytuacji?

Jak najbardziej – ta funkcja nazywa się nDVR, czyli Network Digital Recorder i pozwala zapamiętywać określoną liczbę minut danego streamu (sama liczba zależy od ustawień i możliwości fizycznych serwera – głównie wielkości pamięci RAM). Storm w przeciwieństwie do większości aplikacji typu live streaming software posiada wbudowaną obsługę tzw. cue-pointów, czyli znaczników czasu pokazujące, kiedy np. padł gol. Użytkownik może szybko włączyć ten moment transmisji, np. by przypomnieć sobie bramkę w czasie przerwy.

A co z obsługą treści nagranych wcześniej, czyli VOD? Czy Storm Streaming Server pozwala obsłużyć takie materiały?

W przypadku naszego oprogramowania nie chcieliśmy tworzyć kombajnu multimedialnego, tylko dedykowane narzędzie do tego konkretnego zastosowania, czyli strumieniowania na żywo z bardzo małym opóźnieniem. Mamy jednak inne rozwiązania w naszym portfolio, które wspierają systemy VOD.

Najbardziej ambitny plan na przyszłość to?

Długofalowy rozwój Storm Streaming będzie obejmował stworzenie marketplace’u. Będzie to swoisty rynek mocy przerobowej serwerów. Nasi klienci korzystają z serwerów, które rzadko są wykorzystywane w pełni, a przez większość czasu nie są w pełni używane. Markeplace pozwalałby na bieżąco sprzedawać i kupować moc potrzebną do obsłużenia nagłych wzrostów transmisji. Klienci korzystający ze Storm Streaming Server mogliby handlować swoją mocą obliczeniową w ramach naszej usługi.

A czy myśleliście o własnych serwerach, na których moglibyście obsługiwać ruch klientów?

Aktualnie jesteśmy na etapie przygotowywania wersji naszego oprogramowania w chmurze. Pilotowo już kilku naszych klientów z Europy i USA testuje to rozwiązanie. Rozmawiamy także z kilkoma serwerowniami w Azji, ponieważ chcemy tam zbudować bardzo silny przyczółek. 

Dzięki za rozmowę i powodzenia w realizacji planów!