Jak skonfigurować serwer strumieniowania wideo za pomocą Nginx-RTMP na Ubuntu 22.04

Photo of author

By maciekx

W obecnych czasach przekaz wideo online zyskał ogromną popularność. Niezależnie od tego, czy chodzi o transmisje na żywo, czy nagrania na żądanie, serwery przesyłające wideo są kluczowe dla wielu podmiotów – od firm po osoby prywatne. Nginx-RTMP to zaawansowane narzędzie, które umożliwia stworzenie własnego serwera transmisji wideo z wykorzystaniem Nginx, cenionego serwera internetowego, znanego ze swojej efektywności i niezawodności.

Ten poradnik krok po kroku przeprowadzi Cię przez proces ustawiania serwera strumieniowania wideo Nginx-RTMP na systemie Ubuntu 22.04. Wyjaśnimy, jak zainstalować niezbędne komponenty, skonfigurować Nginx-RTMP oraz rozpocząć przesyłanie wideo na żywo lub na żądanie.

Czym jest Nginx-RTMP?

Nginx-RTMP to dodatek do serwera Nginx, który poszerza jego możliwości o obsługę strumieniowania materiałów wideo i audio z użyciem protokołu RTMP (Real-Time Messaging Protocol). RTMP to standardowy protokół służący do przesyłania strumieniowego treści multimedialnych w czasie rzeczywistym. Nginx-RTMP oferuje następujące korzyści:

* Minimalne opóźnienia: Nginx-RTMP redukuje opóźnienia podczas transmisji, co jest niezwykle ważne w przypadku przekazów na żywo.
* Wysoka skalowalność: Nginx-RTMP jest w stanie obsłużyć dużą liczbę odbiorców jednocześnie, co czyni go doskonałym wyborem dla popularnych transmisji.
* Rozbudowane funkcje: Nginx-RTMP oferuje szereg zaawansowanych opcji, takich jak rejestrowanie strumienia, archiwizacja, zarządzanie dostępem i wiele innych.

Wymagane oprogramowanie

Aby ustawić serwer przesyłania wideo Nginx-RTMP na Ubuntu 22.04, będziesz potrzebować następujących elementów:

* Ubuntu 22.04: System operacyjny, na którym zostanie zainstalowany serwer.
* Nginx: Serwer WWW, który będzie obsługiwał strumieniowanie RTMP.
* Nginx-RTMP: Moduł Nginx, który umożliwia obsługę protokołu RTMP.
* FFmpeg: Narzędzie do transkodowania i konwersji multimediów.
* Odtwarzacz multimedialny VLC: Program do weryfikacji poprawności strumienia (opcjonalny).

Instalacja Nginx-RTMP

Krok 1: Instalacja pakietów Nginx i Nginx-RTMP

Zacznij od odświeżenia listy pakietów i zainstalowania Nginx:


sudo apt update
sudo apt install nginx

Następnie dodaj repozytorium Nginx-RTMP:


sudo add-apt-repository ppa:ondrej/nginx
sudo apt update

Teraz zainstaluj Nginx-RTMP:


sudo apt install nginx-rtmp

Krok 2: Konfiguracja Nginx-RTMP

Skonfiguruj Nginx-RTMP, edytując plik ustawień nginx.conf:


sudo nano /etc/nginx/nginx.conf

W sekcji http dodaj blok rtmp:


rtmp {
server {
listen 1935;
application live {
live on;
record off;
allow publish 192.168.0.0/16;
allow play all;
}
}
}

W powyższym fragmencie kodu:

* listen 1935: Określa port, na którym będzie działał serwer RTMP (standardowy port to 1935).
* application live: Tworzy aplikację o nazwie live, która będzie używana do publikacji i odtwarzania strumieni.
* live on: Aktywuje przesyłanie na żywo.
* record off: Wyłącza rejestrowanie strumienia.
* allow publish 192.168.0.0/16: Pozwala na publikowanie strumienia z określonego zakresu adresów IP.
* allow play all: Umożliwia odtwarzanie strumienia wszystkim użytkownikom.

Krok 3: Uruchomienie i weryfikacja Nginx

Zrestartuj usługę Nginx:


sudo systemctl restart nginx

Upewnij się, że Nginx działa bez zarzutu:


sudo systemctl status nginx

Krok 4: Instalacja FFmpeg

FFmpeg jest potrzebny do transformacji i adaptacji plików multimedialnych, które chcesz przesyłać. Zainstaluj FFmpeg:


sudo apt install ffmpeg

Tworzenie i testowanie strumienia

Krok 1: Stworzenie strumienia testowego

Wygeneruj strumień testowy przy pomocy FFmpeg:


ffmpeg -re -f dshow -i video="camera name" -c:v libx264 -preset ultrafast -tune zerolatency -b:v 1000k -c:a aac -b:a 128k -f flv rtmp://localhost:1935/live/stream

* Zastąp video="camera name" nazwą podłączonego źródła wideo.
* rtmp://localhost:1935/live/stream: Wskazuje adres serwera RTMP oraz nazwę strumienia.

Krok 2: Testowanie strumienia

Do odtworzenia strumienia możesz skorzystać z odtwarzacza multimedialnego VLC. Uruchom VLC i wklej adres URL strumienia:


rtmp://localhost:1935/live/stream

Jeśli wszystko przebiegło pomyślnie, VLC powinien zacząć odtwarzać strumień wideo na żywo.

Dodatkowe funkcje Nginx-RTMP

Nginx-RTMP oferuje szereg dodatkowych funkcji, które można skonfigurować w pliku nginx.conf:

* Rejestrowanie strumienia: Pozwala na zapisywanie strumienia wideo na dysku.
* Archiwizacja: Automatyczne tworzenie kopii strumieni.
* Zarządzanie dostępem: Ograniczenie dostępu do strumienia dla wybranych użytkowników lub grup.
* Transkodowanie: Dostosowywanie strumienia do różnych formatów i rozdzielczości.
* Wtyczki: Możliwość rozszerzenia funkcjonalności Nginx-RTMP za pomocą dodatkowych wtyczek.

Podsumowanie

Konfiguracja serwera przesyłania wideo za pomocą Nginx-RTMP na Ubuntu 22.04 jest stosunkowo nieskomplikowana. Po zainstalowaniu wymaganych komponentów i ustawieniu Nginx-RTMP, możesz utworzyć swój własny serwer transmisji wideo, który pozwoli Ci na publikowanie i odtwarzanie strumieni na żywo lub na żądanie. Nginx-RTMP jest potężnym narzędziem, które oferuje szereg funkcji i opcji, co sprawia, że jest idealne dla każdego, kto chce uruchomić profesjonalny serwer strumieniowania wideo.

Najczęściej zadawane pytania (FAQ)

1. Czy Nginx-RTMP jest darmowy? Tak, Nginx-RTMP jest oprogramowaniem open source i jest dostępny bez opłat.
2. Jakie są minimalne wymagania sprzętowe do uruchomienia serwera Nginx-RTMP? Zaleca się procesor z co najmniej 2 rdzeniami, 4 GB pamięci RAM i dysk SSD.
3. Jak zabezpieczyć serwer strumieniowania wideo przed nieuprawnionym dostępem? Można zastosować uwierzytelnianie HTTP, kontrolę dostępu do aplikacji RTMP lub inne mechanizmy zabezpieczeń.
4. Jakie są zalety Nginx-RTMP w porównaniu z innymi rozwiązaniami do strumieniowania wideo? Nginx-RTMP jest znany ze swojej wydajności, skalowalności i prostoty konfiguracji.
5. Czy Nginx-RTMP może być używany do przesyłania dźwięku? Tak, Nginx-RTMP obsługuje zarówno strumieniowanie wideo, jak i dźwięku.
6. Jak zintegrować Nginx-RTMP z platformą CMS? Można użyć wtyczek lub API, aby połączyć Nginx-RTMP z popularnymi platformami CMS, takimi jak WordPress czy Drupal.
7. Czy można przesyłać wideo na YouTube za pomocą Nginx-RTMP? Nie, Nginx-RTMP nie jest przeznaczony do przesyłania wideo na YouTube. YouTube używa swojego własnego protokołu strumieniowania.
8. Gdzie znaleźć więcej informacji i dokumentacji na temat Nginx-RTMP? Dokumentacja Nginx-RTMP jest dostępna na: https://nginx.org/en/docs/rtmp/.
9. Czy istnieją graficzne interfejsy użytkownika (GUI) do zarządzania Nginx-RTMP? Istnieją różne narzędzia GUI przeznaczone dla Nginx, ale nie ma dedykowanego GUI dla Nginx-RTMP.
10. Jak skonfigurować transkodowanie w Nginx-RTMP? Transkodowanie można ustawić za pomocą modułu ngx_rtmp_module w pliku nginx.conf.

Słowa kluczowe: Nginx-RTMP, serwer strumieniowania wideo, Ubuntu 22.04, RTMP, FFmpeg, VLC Media Player, transmisja na żywo, strumieniowanie wideo, konwersja wideo, transkodowanie, nagrywanie strumienia, archiwizacja, kontrola dostępu, bezpieczeństwo, integracja CMS, wtyczki, narzędzia GUI


newsblog.pl