Nowy streaming live
SimpleStorage oferuje od kilku dni nowe, autorskie rozwiązanie przesyłania obrazu w transmisjach na żywo. Klienci tak jak obecnie, nadają sygnał korzystając z protokołu RTMP do serwera zgodnego z Flash Media Server, obraz do klientów dystrybuowany jest jednak za pomocą protokołu HTTP w postaci plików FLV.
Dzięki takiemu posunięciu zwiększona została skalowalność systemu (oprogramowanie transkodujące RTMP do HTTP/FLV zużywa bardzo mało zasobów sprzętowych i może być zainstalowane na dowolnej liczbie tanich serwerów) ale nie tylko.
“Dla użytkowników końcowych o wolnych łączach takie rozwiązanie daje możliwość zapauzowania strumienia – wtedy jest on buforowany po stronie klienta i może być odtworzony z lekkim przesunięciem czasowym, ale bez przerywania – w sposób analogiczny jaki znamy z serwisu YouTube i innych” – dodaje Piotr Karwatka, dyrektor technologii.
Oprogramowanie zawiera zintegrowany serwer HTTP, a jego rola polega na transkodowaniu w czasie rzeczywistym sygnału wideo emitowanego w postaci pakietów RTMP z kodekiem VP6 lub h264 do plików FLV, strumieniownych bezpośrednio do użytkowników końcowych. W kolejnych wersjach planowana jest rozbudowa o obsługę formatów innych niż FLV – m.in. MPEG-TS pozwalającego na streaming do urządzeń typu iPhone/iPad oraz SmoothStreaming.
Oprogramowanie zostało testowo wdrożone u dwóch klientów komercyjnych (m.in. można przetestować je na http://obradysejmu.pl) na 6 węzłach sieci SimpleStorage. Wcześniej przeszło bardzo rygorystyczne, trwające 2.5 miesiąca, testy obciążeniowe i funkcjonalne podczas których aplikacja była poddawana obciążeniu 500-1000 zapytań o wideo na sekundę do 3000 jednoczesnych oglądających / serwer.
“W przypadku transmisji na żywo i oprogramowania serwerowego je obsługujące stabilność i wydajność to kluczowe czynniki, nie mogliśmy sobie pozwolić na jakiekolwiek błędy w oprogramowaniu” – dodaje Marcin Engelmann odpowiedzialny za utrzymanie infrastruktury SimpleStorage.
Aplikacja jest napisana w języku C i działa pod systemem Unix (testy przeprowadzano na GNU Linux i NetBSD). Rozważane jest wypuszczenie oprogramowania w postaci otwartego kodu źródłowego.