close menu

Kompletny przewodnik po RTMP: Czym jest i kiedy go używać?

Complete Guide To RTMP

Protokół przesyłania wiadomości w czasie rzeczywistym (RTMP) jest szeroko stosowanym formatem przesyłania strumieniowego. Istnieje od wielu lat i stał się podstawowym narzędziem dla nadawców, operatorów sieci i wielu innych branż. Jednak pewne błędne przekonania na temat RTMP sprawiły, że jest on mniej popularny niż mógłby być.

Ale czym dokładnie jest RTMP? Jak to działa? I czy powinieneś używać go podczas kolejnego streamu na żywo?

Dowiedz się o tym i nie tylko poniżej.

Co to jest RTMP?

RTMP to protokół sieciowy lub system używany do strumieniowego przesyłania treści multimedialnych przez Internet, oparty na technologii Transmission Control Protocol (TCP).

TCP jest jednym ze składników tworzących pakiet protokołów internetowych. Innym ważnym składnikiem jest protokół internetowy, zwany również IP.

RTMP to protokół sieciowy lub system używany do strumieniowego przesyłania treści multimedialnych przez Internet.

Razem, TCP i IP działają jako mosty komunikacyjne pomiędzy warstwą aplikacji i sieci. Pomyśl o tym w ten sposób; warstwa aplikacji obejmuje to, z czym normalnie wchodzisz w interakcję, jak np. przeglądarka Mozilla Firefox lub jakakolwiek inna aplikacja użytkownika.

Aby przeglądarka Firefox mogła załadować stronę internetową, musi wysłać żądanie do serwera strony. Po otrzymaniu żądania serwer wysyła żądany zasób (np. strumień wideo, nagrany wcześniej film na YouTube lub kod Html dla strony internetowej).

Aby zachować efektywną komunikację (tzn. uniknąć porzucenia lub opóźnienia korespondencji), wiadomość musi być rozebrana na mniejsze kawałki zwane pakietami. Odbywa się to po stronie nadawcy, a po odebraniu wiadomości jest ona ponownie składana dla użytkownika.

TCP jest elementem, który zajmuje się rozbijaniem wiadomości na pakiety lub mniejsze kawałki, które mogą być przesyłane skutecznie i efektywnie.

Warstwa IP pełni rolę forwardera, który wyznacza najlepsze trasy przesyłania pakietów przez Internet.

Protokół RTMP jest używany przez wiele popularnych odtwarzaczy multimedialnych, w tym Adobe Flash Player, VLC Media Player, QuickTime Player i Windows Media Player. RTMP jest również obsługiwany przez niektóre przeglądarki internetowe, w tym Google Chrome i Mozilla Firefox.

Podstawowym problemem dla większości użytkowników korzystających z rozwiązania do przesyłania strumieniowego jest sposób dostarczania treści. Jeśli jakość rozdzielczości strumieniowej jest niska, dla większości konsumentów będzie to czynnik decydujący. Podobnie, rozwiązanie do przesyłania strumieniowego z dużymi opóźnieniami i buforami lub ładowaniem przez zbyt długi czas przed odtworzeniem treści nie będzie dobrze oceniane.

To właśnie tutaj RTMP błyszczy. Od momentu powstania, RTMP gwarantuje niskie opóźnienia, minimalne buforowanie i jedną z najlepszych jakości rozdzielczości strumieniowych, pod warunkiem, że połączenie sieciowe jest wystarczająco silne i szybkie.

Kolejnym plusem RTMP jest jego zdolność do obsługi masowego streamingu jednocześnie i bez większych problemów.

Jednak pomimo tego, że RTMP istnieje od wielu lat, w ostatnim czasie stał się przedmiotem wzmożonej kontroli, ponieważ system ten nie jest bezpieczny dla jego użytkowników.

Oto jak dochodzi do powstania luki (luk) w zabezpieczeniach:

Po pierwsze, protokół RTMP nie posiada wbudowanego szyfrowania. Dlatego każda komunikacja lub przesyłanie pakietów podczas używania RTMP jest narażone na podsłuchanie przez nieuprawnione grupy lub ataki typu man-in-the-middle.

Kolejnym czynnikiem, który przyczynił się do powstania luki w bezpieczeństwie RTMP jest fakt, że jego kod źródłowy przez długi czas był zastrzeżony. Oprogramowanie własnościowe (tzn. takie, którego prawa własności i kontroli są ograniczone do podmiotu, który je stworzył lub kupił) zazwyczaj otrzymuje poprawki bezpieczeństwa, które pojawiają się regularnie, ale to nie wystarczy.

Nowe luki pojawiają się często, a społeczność zbudowana wokół oprogramowania open-source gwarantuje stosunkowo częstsze i lepsze poprawki bezpieczeństwa. To jest to, co RTMP stracił, aby zwiększyć swoje bezpieczeństwo.

Wypróbuj Wave.video Live Streaming

Solidna i łatwa w obsłudze platforma multistreamingowa dla streamerów o dowolnym poziomie zaawansowaniaSpróbuj teraz

Wariacje RTMP

Do wariantów RTMP należą:

  • Real-Time Messaging Protocol Server (RTMPS) - jest podobny do RTMP, z tą różnicą, że ma włączone szyfrowanie, tzn. bezpieczną warstwę gniazdek (SSL) i Transport Layer Security (TLS) oraz obsługuje wszystkie odtwarzacze z włączonym odtwarzaczem Flash. Jest używany w scenariuszach, w których istotne jest zapobieganie manipulowaniu lub nieautoryzowanemu dostępowi do danych w tranzycie.
  • Encrypted Real-Time Messaging Protocol (RTMPE) - jest to bardzo wszechstronny protokół strumieniowy, który do przesyłania danych wykorzystuje zarówno Transport Control Protocol (TCP), jak i User Datagram Protocol (UDP). Protokół RTMPE szyfruje również wszystkie transmisje danych przy użyciu zastrzeżonego przez firmę Adobe szyfrowania w celu uniknięcia nieautoryzowanego dostępu i manipulacji.
  • Real-Time Messaging Protocol Tunnel (RTMPT) - RTMPT wykorzystuje mechanizm tunelowania w celu obejścia zapór ogniowych , które zazwyczaj blokują cały ruch RTMP. W praktyce RTMPT wymaga, aby klient wysłał zmodyfikowane żądanie HTTP do serwera, który odpowiada niemal podobną transmisją HTTP. Klient i serwer używają identyfikatora sesji; po nawiązaniu połączenia można rozpocząć transmisję danych między nimi.
  • Real-Time Media Flow Protocol (RTMFP) - RTMFP jest ulepszoną wersją RTMP, ponieważ wykorzystuje inny format kodowania UDP w celu osiągnięcia wysokiej wydajności strumieniowania mediów.

Historia strumieniowania RTMP

Real-Time Messaging Protocol (RTMP) był początkowo zastrzeżonym protokołem opracowanym przez firmę Macromedia do przesyłania strumieniowego audio, wideo i danych przez Internet pomiędzy odtwarzaczem Flash a serwerem.

RTMP jest obecnie wykorzystywany przez wiele popularnych usług internetowych, takich jak Facebook, Twitch i Twitter do strumieniowego przesyłania wideo na żywo.

Pierwsze publiczne wydanie RTMP miało miejsce w 2002 roku. W 2009 roku firma Adobe wydała wersję RTMP o otwartej specyfikacji, znaną jako OpenRTMP. Główna różnica między RTMP a OpenRTMP polega na tym, że w przypadku OpenRTMP można użyć dowolnego serwera mediów, a nie tylko Flash Media Server (FMS).

Otwarta specyfikacja RTMP zapewnia również większą elastyczność w zakresie sposobów zabezpieczania i konfigurowania funkcji peer-to-peer. Ma to na celu zachęcenie do innowacji i współpracy poprzez konkurencję i otwarty dostęp dla programistów w celu opracowania idealnego rozwiązania RTMP.

Główna zasada

RTMP wykorzystuje technikę zwaną "streamingiem" do dostarczania treści. Oznacza to, że dane są przesyłane w małych fragmentach zwanych "kawałkami". Kawałki są ponownie składane na drugim końcu, więc użytkownik może oglądać lub słuchać treści bez czekania na jej całkowite pobranie.

Istnieją dwie części działania RTMP: Dostawa pierwszej i ostatniej mili.

Dostarczanie na pierwszej mili polega zazwyczaj na przesyłaniu mediów z kodera do serwera przy użyciu RTMP. Dostawa ostatniej mili odnosi się do przesyłania mediów z serwera do urządzenia użytkownika. W tej drugiej części używany jest odtwarzacz Flash lub inne narzędzie o podobnych możliwościach. Istnieją doniesienia, że firma Adobe zaprzestaje wspierania Flasha; w konsekwencji oznacza to koniec dostarczania ostatniej mili.

W odpowiedzi branża przyjęła Hypertext Transfer Protocol (HTTP), bardziej wydajne rozwiązanie do przesyłania strumieniowego.

Warianty RTMP, takie jak RTMPT, wykorzystują obecnie protokół HTTP do enkapsulacji i przesyłania mediów.

Jak działa RTMP Ingest

Jest to prawdopodobnie jedna z zalet RTMP, która pozwoliła mu przetrwać tak długo. Gdy świat odszedł od oglądania mediów na komputerach w kierunku oglądania ich na urządzeniach przenośnych, RTMP stanął przed wyzwaniem.

Po pierwsze, RTMP opierał się na odtwarzaczu Adobe Flash, aby zapewnić płynną transmisję strumieniową, ale był pewien problem. Urządzenia mobilne nie obsługiwały odtwarzacza Adobe Flash; zasadniczo, RTMP stał się bezużyteczny dla użytkowników, którzy chcieli korzystać z tych samych usług strumieniowych na swoich urządzeniach mobilnych.

W odpowiedzi Apple opracował protokół HLS, aby wspierać funkcje strumieniowania na urządzeniach mobilnych.

Można się było spodziewać, że RTMP stanie się przestarzały. Na szczęście doczekał się RTMP ingest, tworząc swoją niszę jako idealny protokół do transportu mediów z kodera do serwera.

RTMP ingest priorytetowo traktuje funkcjonowanie tanich koderów i generalnie oferuje użytkownikom streaming o niskich opóźnieniach.

Obejmuje on trzy główne elementy:

1. Uścisk dłoni

Kiedy klient chce się połączyć z serwerem RTMP, musi najpierw nawiązać kontakt. Proces ten rozpoczyna się od wysłania przez klienta do serwera żądania "connect", które zawiera informacje o kliencie i rodzaju połączenia, które próbuje nawiązać.

Następnie serwer odpowiada komunikatem "connected", który zawiera informacje o serwerze i rodzaju nawiązanego połączenia.

Na koniec klient i serwer wymieniają się wiadomościami, aby potwierdzić, że oba są nadal połączone i wynegocjować wszelkie parametry potrzebne do połączenia.

2. Połączenie

Podstawowym celem połączenia RTMP ingest jest zapewnienie środków do strumieniowego przesyłania treści multimedialnych ze źródła do miejsca przeznaczenia.

Źródłem mediów może być obraz z kamery na żywo, nagrane wcześniej wideo, dźwięk lub inne media. Miejscem docelowym jest zazwyczaj serwer mediów strumieniowych, który dystrybuuje zawartość do widzów.

Połączenie RTMP ingest składa się z trzech elementów:

  • Koder przekształca sygnał wideo i audio na format cyfrowy, który może być transportowany przez internet.
  • Transport: Jest to medium, przez które zakodowany sygnał jest przesyłany z kodera do serwera; typowo odbywa się to za pomocą protokołu UDP lub TCP.
  • Serwer odbiera zakodowany sygnał i udostępnia go widzom (zwykle poprzez opakowanie go w format taki jak Flash).

3. Strumieniowanie

Gdy użytkownik przesyła treść do serwera multimediów, serwer musi najpierw zakodować przychodzący sygnał wideo i audio przed wysłaniem go do wszystkich podłączonych klientów.

Proces kodowania i przeformatowania obrazu i dźwięku do standardowego formatu pliku nazywany jest transkodowaniem. Polega on na przekształceniu sygnału wejściowego do postaci, która może być odtwarzana na różnych urządzeniach.

Więcej o streamingu Istnieją dwa rodzaje streamingu: na żywo i na żądanie. Strumieniowanie na żywo odnosi się do nadawania w czasie rzeczywistym, podczas gdy strumieniowanie na żądanie jest wtedy, gdy użytkownicy mogą wygodnie oglądać treści.

Strumieniowanie na żywo wymaga stałego połączenia między klientem a serwerem, natomiast strumieniowanie na żądanie nie.

RTMP wykorzystuje TCP do utrzymywania stałego połączenia między klientem a serwerem, co pozwala na przesyłanie strumieniowe z małymi opóźnieniami. Jednak RTMP nie jest dobrze przystosowany do przesyłania strumieniowego na żądanie.

Alternatywy RTMP dla pobierania danych

SRT i WebRTC to główni pretendenci, którzy mogą dorównać lub przewyższyć możliwości RTMP. Oto krótki podgląd na te dwie alternatywy:

Bezpieczny niezawodny transport (SRT)

SRT wypełnia luki, z którymi nie poradził sobie RTMP, takie jak utrzymanie niskiej latencji strumienia nawet wtedy, gdy użytkownik jest podłączony do stosunkowo zawodnej sieci. To sprawia, że jest to doskonały wybór zarówno dla transmisji na żywo, jak i na żądanie.

Ponieważ jest to open source, granice jego możliwości są nieskończone i nie ma obaw o wycofanie wsparcia dla rozwoju.

Web Real-Time Communications (WebRTC)

WebRTC wygrywa dzięki możliwości publikowania w przeglądarce. WebRTC HTTP Ingest Protocol (WHIP) jest również w przygotowaniu, a to co oznacza dla użytkowników to fakt, że będą mogli streamować tylko za pomocą przeglądarki internetowej, zamiast męczyć się z koderami jak w przypadku RTMP.

RTMP Alternatywy dla wyjścia

Na szczycie listy alternatywnych rozwiązań RTMP egress znajdują się HTTP Live Streaming (HLS), MPEG-DASH i WebRTC.

Oto krótka zapowiedź alternatywnych rozwiązań:

HLS i MPEG-DASH

Te dwa elementy są praktycznie takie same, tyle że HLS jest własnościowy, natomiast MPEG-DASH jest open-source.

Najlepszą rzeczą w tych dwóch urządzeniach jest to, że zostały zaprojektowane tak, aby zapewnić niskie opóźnienia, optymalną jakość mediów, a nawet pracować z zawodnymi połączeniami sieciowymi.

WebRTC to także godna uwagi alternatywa dla rozwiązań typu RTMP egress.

Czy RTMP i Flash umierają?

Krótka odpowiedź brzmi: prawdopodobnie nie. Długa odpowiedź jest nieco bardziej skomplikowana.

Stały wzrost popularności HTML5 i rozprzestrzenianie się zdolnych alternatyw dla Flasha może sprawiać wrażenie, że RTMP i Flash umierają. Ale tak nie jest.

Flash już od jakiegoś czasu jest na wyczerpaniu, tracąc w ostatnich latach znaczny udział w rynku na rzecz HTML5, a jego niegdyś dominująca pozycja w świecie wideo jest teraz konsekwentnie zagrożona.

Mimo to, nadal jest on znacząco obecny w sieci i wykorzystywany przez wiele popularnych serwisów, w tym YouTube i Facebook.

Jeśli chodzi o RTMP, jest on nadal szeroko stosowany do przesyłania strumieniowego treści audio i wideo. Jednak jego przyszłość jest mniej pewna niż Flasha.

Adobe ogłosiło, że przestanie wspierać RTMP w 2020 roku, co może oznaczać koniec tego protokołu. Niemniej jednak istnieje mnóstwo alternatyw opartych na RTMP, więc prawdopodobnie będzie on nadal używany w takiej czy innej formie przez kolejne lata.

Czy powinieneś więc strumieniować używając RTMP?

To zależy. Spójrz na niektóre z zalet i wad używania RTMP.

Pros

  • Jest bardzo stabilny. W porównaniu z innymi alternatywami na rynku, jest bardzo mało prawdopodobne, aby doświadczyć jakichkolwiek zakłóceń lub przestojów podczas korzystania z usługi obsługującej RTMP.
  • Niskie opóźnienia i minimalne buforowanie. RTMP jest pod tym względem wyjątkowy, co oznacza, że użytkownicy mogą oglądać filmy w lepszej rozdzielczości, a ładowanie mediów zajmie znacznie mniej czasu.
  • Kompatybilność. Solidny i niezawodny charakter RTMPS zachęcił większą liczbę producentów do zaprojektowania swoich produktów w taki sposób, aby łatwo integrowały się z RTMP.

Cons

  • RTMP wymaga stałego połączenia między klientem a serwerem, co może być problematyczne w przypadku zakłóceń w sieci
  • Jako oprogramowanie własnościowe, jest mało elastyczne dla użytkowników zaawansowanych.

FAQS

Jak używać Wave.video do przesyłania strumieniowego przez RTMP?

Jeśli szukasz strumienia wideo przez RTMP, Wave.video jest świetną opcją. Oto jak z niej korzystać:

  1. Załóż konto na Wave.video i zaloguj się, jeśli jeszcze tego nie zrobiłeś.
  2. Wybierz film, który chcesz przesyłać strumieniowo.
  3. Przejdź do strony "Miejsca docelowe" na Wave.video i kliknij "Custom RTMP" RTMP Wave.video
  4. Następnie musisz znaleźć adres URL serwera i klucz strumienia dla zawartości, którą próbujesz przesłać. Aby to zrobić, przejdź do witryny ze strumieniem, który chcesz wyświetlić.
  5. Możesz użyć aplikacji innej firmy lub rozszerzenia, aby wyodrębnić adres URL i klucz, jeśli nie wiesz, jak się za to zabrać.
  6. Skopiuj adres URL serwera i klucz strumienia.
  7. Wklej adres URL serwera i klucz strumienia do Wave.video.RTMP name, key, url
  8. Utwórz lub zaplanuj swój strumień.
  9. Otwórz studio na żywo i rozpocznij streaming.

To wszystko, szybko i łatwo!

Które kodery obsługują RTMP?

Istnieje wiele urządzeń i oprogramowania koderów, które obsługują RTMP. Niektóre z nich obejmują:

  • Adobe Media Encoder
  • Studio OBS
  • Serwer żywiołów
  • TriCaster
  • Wirecast
  • vMix
  • TeraDek
  • Wowza Streaming Engine
  • Niagara Video

RTMP vs RTSP - co jest lepsze?

RTMP i RTSP to protokoły do przesyłania strumieniowego audio, wideo i danych przez Internet. Są one podobne pod wieloma względami, ale pewne kluczowe różnice sprawiają, że są idealne dla różnych sytuacji lub preferencji.

Oto krótki opis kluczowych różnic między nimi:

  • RTMP jest lepszy do przesyłania strumieniowego na żywo, natomiast RTSP jest lepszy do przesyłania strumieniowego na żądanie.
  • RTMP ma mniejsze opóźnienia, natomiast RTSP może zapewnić wyższą jakość wideo.
  • RTMP wymaga serwera Flash Media Server, natomiast RTSP może współpracować z dowolnym serwerem mediów.

Więc, który protokół jest lepszy? Wszystko zależy od Twoich konkretnych potrzeb.

RTMP to dobry wybór, jeśli potrzebujesz niskiego opóźnienia i nie masz nic przeciwko używaniu Flasha. RTSP może być idealny, jeśli potrzebujesz wysokiej jakości wideo lub chcesz użyć serwera mediów innego niż Flash.

Co to jest Action Message Format (AMF)?

AMF to binarny format kodowania i przesyłania danych przez Internet, często używany w połączeniu z RTMP.

AMF pozwala na przesyłanie danych niekompatybilnych z RTMP, takich jak obiekty ActionScript. Umożliwia także sprawną wymianę danych między aplikacjami Flasha a serwerami.

Co to jest URL RTMP i jak go uzyskać z Facebooka lub YouTube?

Adres URL RTMP to unikalny identyfikator używany do strumieniowania treści wideo na żywo do różnych platform.

Zazwyczaj zawiera on adres IP, nazwę domeny i numer portu.

Musisz utworzyć wydarzenie live-streaming na obu platformach, aby uzyskać je z YouTube lub Facebooka. Gdy już to zrobisz, będziesz mógł znaleźć adres URL RTMP w ustawieniach wydarzenia.

Myśli końcowe

RTMP niewątpliwie odcisnął swoje piętno na świecie. Czy jest na dobrej drodze? Jako rozwiązanie egress być może, ingest wcale nie!

Nawet jeśli pojawią się inne równie lub bardziej wydajne alternatywy, RTMP pozostanie istotny w przesyłaniu i strumieniowaniu mediów.

Będziemy Cię informować na bieżąco!

Dołącz do 5 000 marketerów, którzy czytają nasze artykuły jako pierwsi