Ten samouczek ma na celu rozwiązanie tego problemu, pokazując, jak skonfigurować osobisty serwer przesyłania strumieniowego na żywo, który wykorzystuje Nginx, potężny i lekki serwer WWW oraz odwrotny serwer proxy i protokół RTMP.
Zanim przejdziemy dalej, upewnij się, że:
- Używasz serwera Ubuntu lub Debian
- Uzyskaj dostęp do swojego serwera przez SSH
- Uprawnienia użytkownika root lub sudo
Zacznijmy.
Co to jest Nginx
Jak wspomniano powyżej, Nginx to szybki i lekki serwer internetowy typu open source i odwrotny serwer proxy używany do obsługi prostych, statycznych witryn internetowych lub ogromnych aplikacji. Nginx to wysokowydajny serwer WWW o niesamowitej szybkości i bezpieczeństwie. Dzięki swojej lekkości jest to bardzo wydajny wybór dla usług przesyłania strumieniowego i ruchu o dużym natężeniu ruchu.
Możesz dowiedzieć się więcej o Nginx z poniższego zasobu:
https://nginx.org/pl/dokumenty/
Co to jest Nginx RTMP
Nginx RTMP to otwarty i potężny moduł dla serwera WWW Nginx. Umożliwia korzystanie z protokołu RTMP, HTTP Live Streaming (HLS) i Dynamic Adaptive Streaming over HTTP (DASH).
Więcej informacji na temat HLS i DASH można znaleźć na stronie zasobów:
https://www.rozbłysk chmur.pl/nauka/wideo/co-to-meg-dash/
Teraz, gdy wiesz, czym są Nginx i Nginx RTMP, skonfigurujmy serwer:
Skonfiguruj do serwera
Pierwszym krokiem jest uzyskanie dostępu do serwera. Upewnij się, że SSH na twoim serwerze jest włączone i masz dodane klucze, aby ułatwić logowanie.
ssh [email protected][ochrona poczty e-mail]:~$
Gdy mamy już dostęp do serwera, możemy przystąpić do instalacji wymaganych pakietów i bibliotek. Najpierw upewnij się, że Twój serwer jest aktualny:
aktualizacja sudo apt-getsudo apt-get upgrade -y
Instalowanie wymaganego oprogramowania
Aby skonfigurować serwer strumieniowy, musimy zbudować Nginx ze źródła i włączyć moduł RTMP. W tym celu użyjemy build-essentials i innych pakietów. Użyj poniższego polecenia apt, aby zainstalować wszystkie zależności depend.
sudo apt-get install -y build-essential libpcre3 libpcre3-dev libssl-dev git zlib1g-devNastępnym krokiem jest kompilacja i instalacja Nginx z włączonym modułem RTMP. Aby zachować porządek, utwórz katalog dla procesu.
mkdir ~/Makecd ~/Make/
Następnie sklonuj moduł nginx-RTMP:
git klon git://github.com/arut/nginx-rtmp-module.gitTeraz musimy pobrać nginx.
Udaj się na http://nginx.org/pl/pobierz.html i wybierz opcję pobierania.
wget http://nginx.org/pobierz/nginx-1.19.8.smoła.gzsmoła 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-modulesudo zrobić
sudo dokonać instalacji
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.konfWprowadź blok obsługi RTMP jako:
rtmpserwer
posłuchaj 1935;
ping 30s;
aplikacja na żywo
Żyj dalej;
przeplatać;
hls włączone;
ścieżka_hls /tmp/hls;
hls_sync 100ms;
hls_fragment 15s;
http
default_type application/octet-stream;
serwer
posłuchaj 80;
lokalizacja /telewizor
katalog główny /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. Zapoznaj się z dokumentacją, aby dowiedzieć się, jak włączyć DASH.
Po skonfigurowaniu zapisz plik i uruchom usługę Nginx.
sudo /usr/local/nginx/sbin/nginxRozpocznij transmisję
Po prawidłowym skonfigurowaniu wszystkiego możesz rozpocząć przesyłanie strumieniowe za pomocą FFmpeg-to najłatwiejsze. Możesz także skonfigurować inne narzędzia, takie jak OBS studio, ale nie omówię tego w tym samouczku.
Użyj polecenia FFmpeg jako:
sudo ffmpeg -re -i przykładowy plik mp4.mp4 -c copy -f hls rtmp://localhost/live/streamOdtwórz strumień za pomocą FFplay lub VLC Media player w zasobie.
ffplay rtmp://IP/na żywo/strumieńPo uruchomieniu strumienia możesz udostępnić usługę w sieci zewnętrznej.
UWAGA: Upewnij się, że zabezpieczyłeś swój serwer przed zezwoleniem na publiczny dostęp.
Wniosek
W tym samouczku omówiono, jak skonfigurować serwer strumieniowy za pomocą Nginx i modułu Nginx RTMP. Pamiętaj, że w konfigurowanie usługi przesyłania strumieniowego jest zaangażowanych wiele narzędzi, które możesz dostosować do swoich potrzeb.
Rozważ następujące zasoby, aby dowiedzieć się więcej.
- https://ffmpeg.org/ffmpeg.html
- https://ffmpeg.org/ffplay.html
- https://ffmpeg.org/ffmpeg-formaty.html
- https://obsprojekt.pl/dokumenty/
- https://wiki.wideolan.org/dokumentacja: Streaming_HowTo