Poznaj protokół RTMP (Real-Time Messaging Protocol)

By Sebastian Ceglarz5 lutego, 2021
RTMP protocol

This post is also available in: English

Początkowo, gdy technologia strumieniowania wideo była jeszcze w powijakach, protokół RTMP (Real-Time Messaging Protocol) stanowił podstawowy standard przesyłania wideo przez internet (czyli przesyłania strumieniowego). RTMP jest protokołem opartym na TCP i wykorzystywany jest do strumieniowania wideo o małych opóźnieniach. Dowiedz się, czym jest, jak działa protokół RTMP!

Czym jest RTMP?

Protokół RTMP powstał po to, aby umożliwić strumieniowanie wideo na żywo oraz na żądanie w programie Adobe Flash Player. Swego czasu wtyczka ta zasilała 98% przeglądarek internetowych. RTMP w czasach swojej świetności był więc używany wszędzie.

Obecnie protokół RTMP jest obsługiwany przez większość serwerów multimediów i kodeków. RTMP jest również obsługiwany przez Facebooka, YouTube, Twitcha czy Periscope. Jedyny problem ze zgodnością może powstawać podczas próby odtworzenia streamów na popularnych przeglądarkach i urządzeniach.

No dobrze, ale czym jest ten cały protokół RTMP?

Początkowo protokół powstał do strumieniowania dźwięku, obrazu oraz innych danych między dedykowanym serwerem a Adobe Flash Playerem.

Według Adobe:

„Adobe’s Real Time Messaging Protocol (RTMP) provides a bidirectional message multiplex service over a reliable stream transport, such as TCP [RFC0793], intended to carry parallel streams of video, audio, and data messages, with associated timing information, between a pair of communicating peers”.

Adobe

Protokół RTMP obsługuje:

  • Kodeki audio: AAC, AAC-LC, HE-AAC+ v1 & v2, MP3, Speex.
  • Kodeki wideo: H.264, VP8, VP6, Sorenson Spark®, Screen Video v1 i v2.

Obsługa protokołu jest ograniczona do odtwarzaczy Flash Player, Adobe AIR oraz innych zgodnych z tą technologią. RTMP nie jest kompatybilny z systemem iOS, Androidem oraz z większością przeglądarek. Wśród głównych zalet protokołu RTMP należy wymienić małe opóźnienie (2-5 sekund) oraz minimalny poziom buforowania. Z kolei wadą technologii jest brak zoptymalizowania pod kątem jakości obsługi czy skalowalności.

Historia RTMP sięga czasów Adobe Flash Playera

Flash Player oraz RTMP były najpopularniejszymi mechanizmami strumieniowania wideo aż do 2010 roku. Połączenie tych technologii zapewniało możliwość błyskawicznego przesyłania wideo z relatywnie małą latencją (do ok. 5 sekund). Niemniej, wraz z rozwojem protokołu HTML5, technologii ABR oraz powstania nowych standardów użycie RTMP zostało mocno ograniczone. Protokołowi RTMP nie pomogła również śmierć technologii Flash, która miała miejsce w 2020 roku.

Obecnie w branży preferowane są protokoły oparte na HTTP, które używają do transmisji zwykłych serwerów internetowych (nie dedykowanych, jak ma to miejsce w przypadku protokołu RTMP). Oparcie transmisji na protokole HTTP znacząco ułatwia skalowalność oraz zapewnia lepsze wrażenia wizualne. Jednocześnie wideo może być przesyłane przy wykorzystaniu adaptacyjnej transmisji bitów, umożliwiając użytkownikom dostosowywanie jakości wideo do swoich preferencji, możliwości urządzeń czy jakości połączenia sieciowego.

Nie oznacza to jednak, że RTMP jest obecnie niewykorzystywany. Ok. 30% branży strumieniowania nadal korzysta z tego protokołu. Wiele osób decyduje się na przesyłanie wideo na serwer multimedialny za pomocą protokołu RTMP, a następnie na transkodowanie treści, aby móc przekazywać ją użytkownikom końcowym.

Jak działa RTMP?

Protokół RTMP został zaprojektowany do wysokowydajnej transmisji audio i wideo. Zasada działania protokołu opiera się na utrzymywaniu stałego połączenia między klientem a serwerem i na bieżącym strumieniowaniu danych. RTMP stanowi część protokołu kontroli transmisji (TCP).

Inicjator transmisji wysyła prośbę do akceptora (serwer) o rozpoczęcie połączenia. Akceptor odpowiada, a inicjator potwierdza odpowiedź. Po potwierdzeniu odpowiedzi nawiązuje się połączenie między klientem a serwerem, w ramach którego następuje transmisja wideo.

Słowem podsumowania – zalety i wady protokołu RTMP

Jak wspomnieliśmy, mimo śmierci technologii Flash, protokół RTMP nadal jest wykorzystywany – głównie do transmisji sygnału na serwery multimediów, gdzie następnie jest transkodowany i wysyłany do użytkowników końcowych. Dużą zaletą protokołu RTMP są małe opóźnienia, które mogą wynosić nawet 2 sekundy. Niemniej protokół ten nie zapewni łatwej skalowalności czy optymalnej jakości wideo.

RTMP w Storm Streaming Server

Nasze oprogramowanie Storm oferuje w swojej funkcjonalności zarówno obsługę klienckiej, jak i serwerowej wersji protokołu RTMP. Źródło w postaci streamu audio/video może zatem zostać pobrane z zewnetrznego źródła (dowolny inny serwer), ale także „zagnieżdżone” bezpośrednio na serwerze zmniejszając drastycznie generowane opóźnienia.


Tags: ABR, adobe flash player, Facebook, RTMP, Twitch, YouTube