Ten samouczek ma na celu rozwiązanie tego, pokazując, jak skonfigurować osobisty serwer streamingu na żywo, który korzysta z Nginx, potężnego i lekkiego serwera internetowego oraz odwrotnego proxy i protokołu RTMP.
Zanim przejdziemy, upewnij się:
Zacznijmy.
Co to jest nginx
Jak wspomniano powyżej, Nginx jest szybkim i lekkim serwerem internetowym open source i odwrotnym proxy używanym do obsługi prostych statycznych stron internetowych lub masywnych aplikacji. Nginx to wysokowydajny serwer internetowy z niesamowitą szybkością i bezpieczeństwem. Dzięki lekkiej naturze jest to bardzo wydajny wybór usług streamingowych i ruchu z ogromnym ruchem.
Możesz dowiedzieć się więcej o Nginx na podstawie zasobów podanych poniżej:
https: // nginx.org/en/docs/
Co to jest Nginx RTMP
Nginx RTMP to moduł open source i potężny dla serwera WWW Nginx. Włącza protokół RTMP, transmisję na żywo HTTP (HLS) i dynamiczne adaptacyjne strumieniowanie nad HTTP (Dash).
Możesz dowiedzieć się więcej o HLS i Dash ze strony zasobów:
https: // www.Cloudflare.com/edukacja/wideo/co-is-mpeg-dash/
Teraz, gdy wiesz, czym są Nginx i Nginx RTMP, skonfigurujmy serwer:
Skonfiguruj na serwer
Pierwszym krokiem jest uzyskanie dostępu do serwera. Upewnij się, że SSH na serwerze jest włączony i masz dodane klucze, aby ułatwić logowanie.
SSH [email protected]
debian@streaming: ~ $
Po uzyskaniu dostępu do serwera możemy zacząć instalować wymagane pakiety i biblioteki. Po pierwsze, upewnij się, że Twój serwer jest aktualny:
Sudo apt-get Aktualizacja
sudo apt -get aktualiza
Instalowanie wymaganego oprogramowania
Aby skonfigurować serwer streamingowy, będziemy musieli zbudować Nginx ze źródła i włączyć moduł RTMP. W tym celu będziemy używać użytków i innych pakietów. Użyj poniższej komendy APT, aby zainstalować wszystkie zależności.
sudo apt-get instaluj -y kompilacja libpcre3 libpcre3-dev libssl-dev git zlib1g-dev
Następnym krokiem jest skompilowanie i zainstalowanie Nginx z włączonym modułem RTMP. Aby pozostać zorganizowanym, stwórz katalog do procesu.
mkdir ~/Make
CD ~/Make/
Następnie klon moduł Nginx-RTMP:
git klon git: // github.com/arut/nginx-rtmp-moduł.git
Teraz musimy pobrać Nginx.
Udaj się do http: // nginx.org/en/pobierz.HTML i wybierz opcję pobierania.
wget http: // nginx.org/pobierz/nginx-1.19.8.smoła.GZ
TAR XZF Nginx-1.19.8.smoła.GZ
CD Nginx-1.19.8
Ostatnim krokiem w tej sekcji jest skompilowanie Nginx z włączonym modułem RMTP. Użyj poniższych poleceń:
sudo ./Configure--With-Http_SSL_Module --add-Module =… /nginx-rtmp-moduł
Sudo Make
sudo wykonaj instalację
Konfigurowanie transmisji na żywo
Aby włączyć obsługę RTMP, musimy edytować plik konfiguracyjny Nginx i określić blok RTMP.
sudo nano/usr/local/nginx/conf/nginx.conf
Wprowadź blok wsparcia RTMP jako:
RTMP
serwer
Posłuchaj 1935;
ping 30s;
Aplikacja na żywo
Żyj dalej;
przeplatać się;
hls on;
hls_path /tmp /hls;
HLS_Sync 100ms;
hls_fragment 15s;
http
default_type Application/Octet-Stream;
serwer
Posłuchaj 80;
lokalizacja /telewizja
root /tmp /hls;
Typy
Aplikacja/VND.jabłko.MPEGURL M3U8;
wideo/MP2T TS;
tekst/html html;
W powyższej konfiguracji włączamy moduł RTMP i HLS. Rozważ dokumentację, aby dowiedzieć się, jak włączyć Dash.
Po konfiguracji zapisz plik i uruchom usługę Nginx.
sudo/usr/local/nginx/sbin/nginx
Rozpocznij strumieniowanie
Po prawidłowym skonfigurowaniu wszystkie. Możesz także skonfigurować inne narzędzia, takie jak STUTO STUDIO, ale nie omówię tego w tym samouczku.
Użyj polecenia FFMPEG jako:
sudo ffmpeg -re -i próbki mp4.MP4 -C Copy -f hls rtmp: // localhost/na żywo/strumień
Odtwarzaj strumień za pomocą odtwarzacza multimedialnego FFPLAY lub VLC.
ffplay rtmp: // ip/na żywo/strumień
Po uruchomieniu strumienia możesz ujawnić usługę do sieci zewnętrznej.
NOTATKA: Upewnij się, że zabezpieczyłeś serwer, zanim zezwoliłeś publicznemu dostępowi.
Wniosek
Ten samouczek obejmował sposób skonfigurowania serwera strumieniowego za pomocą modułu RTMP Nginx i Nginx. Należy pamiętać, że w konfigurowaniu usługi przesyłania strumieniowego jest wiele biegów i możesz je dostosować zgodnie z Twoimi potrzebami.
Rozważ następujące zasoby, aby zbadać więcej.