Stwórz własny serwer strumieniowego przesyłania wideo na żywo za pomocą systemu Linux

Większość narzędzi i witryn do transmisji na żywo jest publicznie dostępna, ale często wymagają one utworzenia konta, podając informacje, których możesz nie chcieć pojawiać się w Internecie. Mogą trzymać niektóre treści za reklamami i zawierać mylące Warunki korzystania z usługi , których (Service)mogą(can ) nawet nie trzymać się siebie. 

Są tacy, którzy lubią transmitować na żywo, ale nie potrzebują, aby ich filmy były dostępne dla mas. Zamiast tego wolą mieć większą kontrolę nad swoim strumieniem i treścią, którą tworzą. Oprogramowanie typu open source(Open-source) , takie jak Linux , jest najlepszą odpowiedzią na tę przeszkodę.

Patrzeć w przyszłość(Thinking Ahead)

Zanim zaczniesz konfigurować swój osobisty serwer streamingowy, powinieneś zadać sobie kilka pytań. Po pierwsze(First) , jakiej jakości strumienia szukasz? Następnie(Next) , ilu widzów spodziewasz się przyciągnąć? Gdzie będziesz przechowywać wszystkie swoje treści przesyłane strumieniowo? Kto będzie miał dostęp do tych treści?

Problemem mogą być również wymagania systemowe. Jednak nie ma ustalonych zasad dotyczących dokładnie tego, czego będziesz potrzebować w tym zakresie, więc zrób sobie przysługę i poeksperymentuj, aby zobaczyć, co działa najlepiej dla twoich celów.

Musisz dowiedzieć się, który protokół obsłuży część audio i wideo transmisji strumieniowej. Protokół RTMP(RTMP) ( Real-Time Messaging Protocol ) to świetny wybór, ale są też inne, takie jak WebRTC , które mogą być lepsze w Twojej sytuacji. RTMP ma szerokie wsparcie, więc skupimy się na tym w tym artykule.

Kolejną rzeczą, o którą należy się martwić, są prawdopodobnie opóźnienia w transmisji „na żywo”. To, że wchodzisz na żywo, nie oznacza, że ​​wszystko będzie się układać idealnie. Strumienie wideo(Video) muszą być kodowane, przesyłane, buforowane i wyświetlane, więc spodziewaj się potrzeby drobnych poprawek w atrybutach strumienia.

Konfiguracja serwera Linux(Linux Server Setup)

Ubuntu Linux to mój osobisty faworyt, więc będzie to wersja z wyboru. Dla tych, którzy wolą opcję GUI , dostępny jest (GUI)Ubuntu Desktop

  • Uruchom instalator (Fire)Ubuntu i wybierz ustawienia , które najlepiej odpowiadają Twoim potrzebom. Prawdopodobnie będziesz chciał ustawić statyczne ustawienia sieciowe, ponieważ będzie to używane jako serwer.
  • Uruchom ponownie(Reboot) system po instalacji, jeśli nie zrobi tego automatycznie. Po uruchomieniu systemu Ubuntu zainstaluj wszystkie dostępne aktualizacje:
sudo apt update
sudo apt upgrade

Będziemy używać serwera WWW Nginx(Nginx web server) dla tego serwera strumieniowego. Zainstaluj to:

sudo apt install nginx

Kup moduł RTMP , aby (RTMP)Nginx mógł obsługiwać strumień multimediów:

sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp

Dostosuj konfigurację Nginx, aby mógł akceptować i dostarczać strumień multimediów.

sudo nano /etc/nginx/nginx.conf

Dodaj następujący kod na dole pliku konfiguracyjnego:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}

Zapisz plik konfiguracyjny, ponieważ użyjemy go później do utworzenia działającego serwera strumieniowego.

Zrestartuj Nginx(Restart Nginx) z nową konfiguracją:

sudo systemctl restart nginx

Konfiguracja oprogramowania do przesyłania strumieniowego(Streaming Software Setup)

Serwer jest gotowy, więc teraz nadszedł czas na skonfigurowanie oprogramowania do przesyłania strumieniowego. Użyjmy Open Broadcaster Software (OBS) w tym przeglądzie. 

  • Wejdź na stronę i wybierz kompilację dla Linuksa(Linux) . Po uruchomieniu oprogramowania skonfiguruj OBS z ustawieniami, które najlepiej pasują do Twojego sprzętu.
  • Dodaj źródło strumieniowe, klikając + tuż pod źródłem(Source) .

  • Na potrzeby testów wybierz opcję Display Capture i wprowadź nazwę źródła.
  • Kliknij przycisk OK , a OBS będzie odzwierciedlać Twój pulpit.
  • Następnie kliknij kartę Plik(File) i wybierz Ustawienia(Settings)

W sekcji Strumień wybierz ustawienie Typ strumienia na Niestandardowy…(set Stream Type to Custom…) i wprowadź następujący adres URL(URL) w polu Serwer(Server) :

rtmp://IPaddress/live 

W miejsce IPaddress wprowadź adres IP serwera przesyłania strumieniowego.

Teraz utwórz własny klucz strumienia(Stream Key) i wprowadź go w polu Klucz strumienia(Stream) . Uczyń to czymś, co zapamiętasz i zapisz to. Aby zwiększyć bezpieczeństwo, zaznacz pole Użyj uwierzytelniania(Use authentication ) i dodaj preferowane dane uwierzytelniające.

Zakończ za pomocą Zastosuj(Apply) , a następnie przycisku OK .

Wszystko powinno być teraz skonfigurowane do przesyłania strumieniowego. Aby rozpocząć swoją pierwszą transmisję, naciśnij przycisk Transmisja teraz(Stream Now) . Przycisk zmieni się na Zatrzymaj transmisję(Stop Streaming) , o ile wszystko zostało zrobione poprawnie. Wskaźniki przepustowości Twojego strumienia pojawią się na dole okna OBS .

Bądź swoim pierwszym widzem(Be Your First Viewer)

Istnieje wiele odtwarzaczy multimedialnych typu open source, które obsługują RTMP , z których najbardziej znanym jest odtwarzacz multimedialny VLC(VLC media player) . Zainstaluj i uruchom to oprogramowanie, kliknij kartę Media i wybierz z menu  opcję Otwórz strumień sieciowy .(Open Network Stream)

Masz(Got) pod ręką klucz strumienia(Stream Key) ? Wpisz ścieżkę do swojego strumienia i dołącz na końcu skonfigurowany wcześniej klucz strumienia . (Stream Key)Powinien wyglądać tak:

rtmp://IPaddress/live/SecretKey

Kliknij Odtwórz(Play) , a uzyskasz podgląd na żywo swojego własnego strumienia.

Dodatkowe środki(Additional Measures)

Teraz, gdy podstawy zostały osiągnięte, ograniczenie dostępu do serwera strumieniowego oraz możliwość nagrywania i zapisywania filmów to dwa inne czynniki, które mogą Cię zainteresować.

Domyślnie każdy może oglądać Twój strumień. Może to być sprzeczne z celem stworzenia serwera. Będziesz chciał ustawić ograniczony dostęp za pomocą zapory Linuksa , (Linux)pliku .htaccess(.htaccess file) lub wbudowanej kontroli dostępu w module RTMP(built-in access controls in the RTMP module) . Ten wybór należy do Ciebie.

Dostarczona tutaj konfiguracja Nginx umożliwi tylko strumieniowe przesyłanie filmów, ale nie ich zapisywanie. Aby dodać opcję przechowywania, w konfiguracji Nginx , tuż pod sekcją RTMP , możesz skonfigurować opcje nagrywania strumienia i podać lokalizację, w której chcesz zapisać i przechowywać zawartość. 

Ustaw(Set) istniejącą ścieżkę, aby umożliwić Nginx zapis do niej. Wpisz następujące informacje:

aplikacja na żywo { (application live {)
             na żywo; (             live on;)
             nagraj wszystko; (             record all;)
             record_path /var/www/html/recordings;
             rekord_unikalny włączony; (             record_unique on;)
}

To wszystko, czego powinieneś potrzebować podczas konfigurowania serwera strumieniowego na żywo przy użyciu systemu operacyjnego Ubuntu Linux(Ubuntu Linux OS) . Jeśli jesteś bardziej zainteresowany serwerem strumieniowym bez transmisji na żywo, sugerowałbym użycie Plexa(Plex) zamiast OBS.



About the author

Jestem inżynierem oprogramowania z ponad dwuletnim doświadczeniem w pracy nad aplikacjami mobilnymi i desktopowymi. Mam doświadczenie w aktualizacjach systemu Windows, usługach i Gmailu. Moje umiejętności sprawiają, że jestem idealnym kandydatem do zadań takich jak tworzenie aplikacji Windows lub utrzymywanie klientów poczty e-mail.



Related posts