Czym jest streaming SRT? SRT czy RTMP — wyjaśniamy
SRT to protokół transportu wideo stworzony, by radzić sobie w zawodnych sieciach. Zobacz, jak odzyskuje utracone pakiety, co robi ustawienie opóźnienia (latency), jak wypada w porównaniu z RTMP i dlaczego większość platform wciąż wymaga RTMP.
Na tej stronie
SRT (Secure Reliable Transport) to protokół open source do przesyłania wideo na żywo przez nieprzewidywalne sieci, takie jak publiczny internet. Działa na UDP, ponownie żąda pakietów, które zaginęły, pozwala wybrać, ile opóźnienia oddajesz w zamian za niezawodność, i może szyfrować stream. Nadawcy używają go do przesyłania wysokiej jakości sygnałów między lokalizacjami.
Nie zastępuje RTMP wszędzie, ale bardzo dobrze rozwiązuje konkretne problemy. Oto jak działa i kiedy warto z niego korzystać.
Najważniejsze informacje
- SRT korzysta z UDP i odzyskuje utracone pakiety w ramach ustawionego przez ciebie okna opóźnienia.
- Sprawdza się na długich lub stratnych łączach, na przykład z odległych obiektów i przy sygnałach kontrybucyjnych.
- Większość platform dla twórców wciąż dokumentuje ingest przez RTMP lub RTMPS.
- Szyfrowanie AES ze wspólnym hasłem chroni sygnały SRT w trakcie przesyłania.
Skąd wzięło się SRT i jaki problem rozwiązuje
SRT zostało opracowane przez firmę wideo Haivision i udostępnione jako open source w 2017 roku. Obecnie obsługuje je szeroka gama enkoderów, dekoderów, serwerów multimediów i oprogramowania, w tym OBS i FFmpeg.
Problem, w który celuje, łatwo opisać: publiczny internet gubi pakiety i zmienia ich kolejność, zwłaszcza na dużych odległościach, w przeciążonym Wi-Fi czy na łączach komórkowych. Tradycyjne łącza nadawcze omijały to dzięki dedykowanym obwodom lub przepustowości satelitarnej. SRT ma zamiast tego zapewniać niezawodność klasy telewizyjnej na zwykłych łączach internetowych.
Robi to, nie przejmując się specjalnie tym, co jest w środku streamu. SRT to transport, a nie format wideo, i najczęściej przenosi strumień transportowy MPEG zawierający wideo H.264 lub HEVC z audio AAC. Ta elastyczność pomogła profesjonalnym procesom produkcyjnym szybko go przyjąć.
Jak działa odzyskiwanie pakietów i bufor opóźnienia
RTMP działa na TCP, który retransmituje utracone dane, ale spowalnia całe połączenie za każdym razem, gdy wykryje stratę. Na stratnych, długich łączach objawia się to przycięciami i buforowaniem.
SRT korzysta z UDP i samo zajmuje się odzyskiwaniem. Odbiornik trzyma pakiety w krótkim buforze. Gdy zauważy lukę w sekwencji, prosi nadawcę o ponowne wysłanie tylko brakującego pakietu. Jeśli zastępczy pakiet dotrze, zanim ten fragment wideo opuści bufor, nikt dalej w łańcuchu tego nie zauważy.
Rozmiar bufora to ustawienie latency (opóźnienia). Większe wartości tolerują gorsze sieci kosztem opóźnienia; mniejsze utrzymują niskie opóźnienie, ale odrzucają pakiety, które przychodzą za późno. Typowym punktem wyjścia jest kilkukrotność czasu podróży w obie strony (RTT) między nadawcą a odbiorcą, zwiększana przy niestabilnych łączach. Narzędzia wyrażają opóźnienie w różnych jednostkach, więc sprawdź dokumentację.
Szyfrowanie, identyfikatory streamu i tryby połączenia
SRT ma funkcje, których samo RTMP nie oferuje:
- Szyfrowanie. AES z hasłem wspólnym dla obu stron, z kluczami 128-, 192- lub 256-bitowymi. RTMP potrzebuje osobnego wariantu RTMPS, żeby być szyfrowane.
- Stream ID. Opcjonalny identyfikator, który pozwala jednemu portowi odbiornika przyjmować kilka sygnałów i poprawnie kierować każdy z nich, trochę jak klucz transmisji.
- Tryby połączenia. Jedna strona nasłuchuje na porcie (listener), a druga się z nią łączy (caller). Trzeci tryb, rendezvous, polega na jednoczesnym łączeniu się obu stron, co może pomóc, gdy obie znajdują się za zaporami.
Ponieważ SRT korzysta z UDP, port UDP strony nasłuchującej musi być otwarty na każdej zaporze po drodze, w przeciwieństwie do wychodzących połączeń TCP w RTMP. O stronie RTMP przeczytasz w tekstach jak działa RTMP oraz RTMP czy RTMPS.
SRT czy RTMP: gdzie każdy z nich wygrywa
Żaden z protokołów nie jest po prostu lepszy; są dobre w różnych zadaniach.
- SRT wygrywa w kontrybucji. Przesyłanie sygnału z odległego obiektu, od ekipy w terenie lub przez łącze komórkowe do centrum produkcji to sytuacje, w których odzyskiwanie pakietów się opłaca, podobnie jak łańcuchy nadawcze zasilające systemy emisyjne, dekodery i serwery multimediów.
- SRT lepiej radzi sobie z odległością. Na łączach międzykontynentalnych ze stratami i jitterem dobrze dostrojony bufor opóźnienia zwykle daje stabilniejsze wyniki niż oparte na TCP RTMP.
- RTMP wygrywa kompatybilnością. Obsługuje go niemal każdy enkoder, usługa i platforma, a konfiguracja to tylko adres URL plus klucz.
- RTMP jest prostsze we wdrożeniu. Nie trzeba koordynować portów UDP, strojenia opóźnienia ani haseł.
Praktyczna zasada: używaj SRT między systemami, które kontrolujesz ty lub twój partner, a RTMP lub RTMPS na ostatnim odcinku do publicznych platform.
Dlaczego YouTube, Twitch i większość platform wciąż wymagają RTMP
Skoro SRT jest tak odporne, dlaczego główne platformy dla twórców wciąż dokumentują ingest przez RTMP i RTMPS?
Po pierwsze kompatybilność: platformy chcą, żeby mógł się połączyć każdy streamer, od aplikacji na telefon po starsze enkodery sprzętowe, a RTMP to protokół, którym posługują się wszystkie. Po drugie większość twórców nadaje z domu do pobliskiego serwera ingest, gdzie TCP działa wystarczająco dobrze. Po trzecie platformy przez lata zbudowały wokół RTMP uwierzytelnianie, zarządzanie kluczami i monitoring.
Ten obraz się zmienia. Niektóre platformy i wiele profesjonalnych usług wideo przyjmuje SRT lub inne nowsze protokoły ingest. W chwili pisania tego tekstu popularna platforma społecznościowa lub gamingowa zwykle poda ci jednak adres URL RTMP lub RTMPS. Jak działają takie cele, wyjaśnia przewodnik po własnym RTMP.
Wysyłanie RTMP i SRT z tego samego streamu w chmurze
Wiele konfiguracji potrzebuje obu protokołów jednocześnie: RTMP dla publicznych platform i SRT dla studia, serwera emisyjnego lub odbiornika partnera. Z domowego enkodera oznacza to dwa wyjścia i podwójny upload.
StreamHouse obsługuje to w chmurze. Dodaj do tego samego streamu YouTube, Twitcha lub Kick przez RTMP lub RTMPS oraz własne wyjście SRT skierowane na twój odbiornik. Jedna transmisja dociera do wszystkich, a dodatkowe cele nie zużywają dodatkowych slotów streamów.
W przypadku nagranych wcześniej programów wgraj swoje filmy, które są z wyprzedzeniem przygotowywane do jednego spójnego profilu kodowania, a potem zbuduj playlistę i uruchom ją lub zaplanuj start. Stream zapętla się 24/7, automatycznie łączy się ponownie po zakłóceniach sieci i działa dalej przy wyłączonym komputerze.
Najczęściej zadawane pytania
Czy SRT jest lepsze od RTMP do streamingu?
Na długich lub zawodnych trasach sieciowych zwykle tak, bo SRT odzyskuje utracone pakiety bez zatrzymywania całego połączenia. Popularne platformy często oferują jednak tylko RTMP lub RTMPS, więc właściwy wybór zależy od tego, dokąd trafia twój sygnał.
Czy SRT ma mniejsze opóźnienie niż RTMP?
Może mieć. Opóźnienie transportu w SRT to mniej więcej ustawiony przez ciebie bufor opóźnienia, który w dobrych sieciach może być mały. Całkowite opóźnienie po stronie widzów zależy jednak także od przetwarzania i odtwarzania na platformie, więc zmiana protokołu nie zawsze będzie odczuwalnie szybsza.
Czy OBS może streamować przez SRT?
Tak. Wpisz w OBS adres srt:// jako niestandardowy serwer, z parametrami takimi jak tryb, opóźnienie i hasło zawartymi w adresie URL. Serwer lub usługa odbierająca musi obsługiwać SRT i być skonfigurowana tak, by przyjąć połączenie.
Czy SRT jest domyślnie szyfrowane?
Tylko wtedy, gdy ustawisz hasło. Przy tym samym haśle po obu stronach SRT szyfruje sygnał za pomocą AES z kluczami 128-, 192- lub 256-bitowymi. Bez hasła sygnał jest przesyłany bez szyfrowania, więc ustaw je dla sygnałów przechodzących przez publiczny internet.


