GNU/Linux >> Znalost Linux >  >> Linux

Vytvořte si svůj vlastní server pro streamování videa s Linuxem

Živé streamování videa je neuvěřitelně populární – a stále roste. Platformy jako Amazon's Twitch a Google's YouTube se mohou pochlubit miliony uživatelů, kteří streamují a konzumují nespočet hodin živých i nahraných médií. Tyto služby jsou často bezplatné, ale vyžadují, abyste měli účet a obecně drželi svůj obsah za reklamami. Někteří lidé nepotřebují, aby byla jejich videa dostupná pro masy, nebo chtějí pouze větší kontrolu nad svým obsahem. Naštěstí díky síle softwaru s otevřeným zdrojovým kódem může kdokoli nastavit server pro živé vysílání.

Začínáme

V tomto tutoriálu vysvětlím, jak nastavit základní server pro živé vysílání s operačním systémem Linux nebo BSD.

To vede k nevyhnutelné otázce systémových požadavků. Ty se mohou lišit, protože živé vysílání zahrnuje mnoho proměnných, například:

  • Kvalita streamu: Chcete streamovat ve vysokém rozlišení nebo bude standardní rozlišení vyhovovat vašim potřebám?
  • Sledovanost: Kolik diváků u svých videí očekáváte?
  • Úložiště: Plánujete ponechat si uložené kopie vašeho videostreamu?
  • Přístup: Bude váš stream soukromý nebo otevřený světu?

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Neexistují žádná pevná pravidla, pokud jde o systémové požadavky, takže doporučuji experimentovat a najít to, co nejlépe vyhovuje vašim potřebám. Nainstaloval jsem svůj server na virtuální počítač se 4 GB RAM, 20 GB pevným diskem a jedním jádrem procesoru Intel i7.

Tento projekt využívá protokol RTMP (Real-Time Messaging Protocol) ke zpracování streamování zvuku a videa. K dispozici jsou i jiné protokoly, ale zvolil jsem RTMP, protože má širokou podporu. Protože se otevřené standardy jako WebRTC stávají kompatibilnějšími, doporučil bych tuto cestu.

Je také velmi důležité vědět, že „živě“ nemusí vždy znamenat okamžité. Video stream musí být zakódován, přenesen, uložen do vyrovnávací paměti a zobrazen, což často přidává zpoždění. Zpoždění lze zkrátit nebo prodloužit v závislosti na typu streamu, který vytváříte, a jeho atributech.

Nastavení serveru Linux

Můžete použít mnoho různých distribucí Linuxu, ale já preferuji Ubuntu, a tak jsem si pro svůj operační systém stáhl edici Ubuntu Server. Pokud dáváte přednost tomu, aby váš server měl grafické uživatelské rozhraní (GUI), použijte Ubuntu Desktop nebo jednu z jeho mnoha variant. Poté jsem na svém počítači nebo virtuálním počítači spustil instalační program Ubuntu a zvolil nastavení, které nejlépe odpovídalo mému prostředí. Níže jsou kroky, které jsem podnikl.

Poznámka:Protože se jedná o server, pravděpodobně budete chtít nastavit některá statická síťová nastavení.

Po dokončení instalačního programu a restartu vašeho systému vás přivítá krásný nový systém Ubuntu. Stejně jako u každého nově nainstalovaného operačního systému nainstalujte všechny dostupné aktualizace:

aktualizace sudo apt
aktualizace sudo apt

Tento streamovací server bude používat velmi výkonný a všestranný webový server Nginx, takže jej budete muset nainstalovat:

sudo apt install nginx 

Pak budete muset získat modul RTMP, aby Nginx mohl zpracovat váš mediální stream:

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

Upravte konfiguraci svého webového serveru tak, aby mohl přijímat a doručovat váš mediální stream.

sudo nano /etc/nginx/nginx.conf 

Přejděte na konec konfiguračního souboru a přidejte následující kód:

 RTMP {
Server {
Poslouchejte 1935;
Chunk_size 4096;

Application Live {
Živá na;
Záznam;
                }
       
}

Uložte konfiguraci. Protože jsem kacíř, používám Nano pro úpravy konfiguračních souborů. V Nano můžete uložit konfiguraci stisknutím Ctrl+X , Y a poté Enter.

Toto je velmi minimální konfigurace, která vytvoří funkční streamovací server. Tuto konfiguraci přidáte později, ale toto je skvělý výchozí bod.

Než však budete moci zahájit svůj první stream, budete muset restartovat Nginx s jeho novou konfigurací:

sudo systemctl restart nginx 

Nastavení serveru BSD

Pokud patříte k „beastie“ přesvědčení, zprovoznit a spustit streamovací server je také ďábelsky snadné.

Přejděte na webovou stránku FreeBSD a stáhněte si nejnovější verzi. Spusťte instalační program FreeBSD na vašem počítači nebo virtuálním stroji a projděte úvodními kroky a vyberte nastavení, která nejlépe odpovídají vašemu prostředí. Protože se jedná o server, pravděpodobně budete chtít nastavit některá statická síťová nastavení.

Po dokončení instalačního programu a restartu vašeho systému byste měli mít zbrusu nový systém FreeBSD. Jako každý jiný čerstvě nainstalovaný systém budete pravděpodobně chtít, aby se vše aktualizovalo (od tohoto kroku vpřed se ujistěte, že jste přihlášeni jako root):

aktualizace balíčků
upgrade balíčků

Instaluji Nano pro úpravy konfiguračních souborů:

pkg install nano 

Tento streamovací server bude využívat velmi výkonný a všestranný webový server Nginx. Nginx můžete sestavit pomocí vynikajících portů systém, kterým se může pochlubit FreeBSD.

Nejprve aktualizujte strom portů:

portsnap fetch
portsnap extrakt

Přejděte do adresáře portů Nginx:

cd /usr/ports/www/nginx 

A začněte budovat Nginx spuštěním:

make install 

Zobrazí se obrazovka s dotazem, jaké moduly zahrnout do sestavení Nginx. Pro tento projekt budete muset přidat modul RTMP. Přejděte dolů, dokud není vybrán modul RTMP, a stiskněte Mezerník . Poté stiskněte Enter pokračovat se zbytkem sestavení a instalace.

Jakmile Nginx dokončí instalaci, je čas jej nakonfigurovat pro účely streamování.

Nejprve přidejte záznam do /etc/rc.conf abyste zajistili spuštění serveru Nginx při spuštění systému:

nano /etc/rc.conf 

Přidejte tento text do souboru:

nginx_enable="YES" 

Dále vytvořte webroot adresář, odkud bude Nginx poskytovat svůj obsah. Svému říkám stream :

cd /usr/local/www/
mkdir stream
chmod -R 755 stream/

Nyní, když jste vytvořili adresář streamu, nakonfigurujte Nginx úpravou jeho konfiguračního souboru:

nano /usr/local/etc/nginx/nginx.conf 

Načtěte své streamovací moduly v horní části souboru:

load_module /usr/local/libexec/nginx/ngx_stream_module.so;
load_module /usr/local/libexec/nginx/ngx_rtmp_module.so;

V části Server sekce, změňte umístění webroot tak, aby odpovídalo tomu, které jste vytvořili dříve:

Umístění / {
root /usr/local/www/stream
}

A nakonec přidejte svá nastavení RTMP, aby Nginx věděl, jak zacházet s vašimi mediálními streamy:

 RTMP {
Server {
Poslouchejte 1935;
Chunk_size 4096;

Application Live {
Živá na;
Záznam;
                }
       
}

Uložte konfiguraci. V Nano to můžete provést stisknutím Ctrl+X , Y a poté Enter.

Jak můžete vidět, jedná se o velmi minimální konfiguraci, která vytvoří funkční streamovací server. Později tuto konfiguraci přidáte, ale poskytne vám to skvělý výchozí bod.

Než však budete moci zahájit svůj první stream, budete muset restartovat Nginx s jeho novou konfigurací:

service nginx restart 

Nastavte si streamovací software

Vysílání s OBS

Nyní, když je váš server připraven přijímat vaše video streamy, je čas nastavit váš streamovací software. Tento tutoriál využívá výkonné a open source Open Broadcast Studio (OBS).

Přejděte na web OBS a najděte sestavení pro váš operační systém a nainstalujte jej. Jakmile se OBS spustí, měli byste vidět prvního spuštění průvodce, který vám pomůže nakonfigurovat OBS s nastavením, které nejlépe vyhovuje vašemu hardwaru.

OBS nic nezachycuje, protože jste mu nedodali zdroj. V tomto tutoriálu si pouze zachytíte plochu pro stream. Jednoduše klikněte na + pod Zdroj , zvolte Snímek obrazovky a vyberte plochu, kterou chcete zachytit.

Klikněte na OK a měli byste vidět OBS zrcadlení vaší plochy.

Nyní je čas odeslat nově nakonfigurovaný stream videa na váš server. V OBS klikněte na Soubor> Nastavení . Klikněte na Stream a nastavte Typ streamu na Vlastní streamovací server .

Do pole URL zadejte předponu rtmp:// za IP adresou vašeho streamovacího serveru a za /live . Například rtmp://IP-ADDRESS/live .

Dále budete pravděpodobně chtít zadat klíč streamu – speciální identifikátor nutný k zobrazení streamu. Do Klíče streamu zadejte libovolný klíč, který chcete (a který si pamatujete). box.

Klikněte na Použít a poté OK .

Nyní, když je OBS nakonfigurováno k odesílání vašeho streamu na váš server, můžete spustit svůj první stream. Klikněte na Spustit streamování .

Pokud vše fungovalo, mělo by se tlačítko změnit na Zastavit streamování a některé metriky šířky pásma se zobrazí ve spodní části OBS.

Pokud se zobrazí chyba, znovu zkontrolujte nastavení streamu v OBS, zda neobsahuje překlepy. Pokud vše vypadá dobře, může být jiný problém, který brání fungování.

Zobrazení vašeho streamu

Živé video není moc dobré, pokud se na něj nikdo nedívá, takže buďte svým prvním divákem!

Existuje mnoho open source přehrávačů médií, které podporují RTMP, ale nejznámější je pravděpodobně VLC media player.

Po instalaci a spuštění VLC otevřete svůj stream kliknutím na Média> Otevřít síťový proud . Zadejte cestu ke svému streamu, přidejte klíč streamu, který jste nastavili v OBS, a klikněte na Přehrát . Například rtmp://IP-ADDRESS/live/SECRET-KEY .

Nyní byste měli sledovat svůj vlastní živý videostream!

Kam jít dál?

Jedná se o velmi jednoduché nastavení, které vás dostane ze země. Zde jsou dvě další funkce, které pravděpodobně budete chtít používat.

  • Omezit přístup: Dalším krokem, který možná budete chtít udělat, je omezit přístup k vašemu serveru, protože výchozí nastavení umožňuje komukoli streamovat na a ze serveru. Existuje celá řada způsobů, jak to nastavit, jako je firewall operačního systému, soubor .htaccess nebo dokonce pomocí vestavěného řízení přístupu v modulu RTMP.

  • Nahrávání streamů: Tato jednoduchá konfigurace Nginx bude pouze streamovat a neuloží vaše videa, ale lze ji snadno přidat. V konfiguraci Nginx v části RTMP nastavte možnosti nahrávání a umístění, kam chcete videa ukládat. Ujistěte se, že vámi nastavená cesta existuje a Nginx do ní může zapisovat.

application live {
             live on;
             record all;
             cesta_záznamu /var/www/html/recordings;
on       }  

Svět živého vysílání se neustále vyvíjí, a pokud máte zájem o pokročilejší využití, na internetu můžete najít spoustu dalších skvělých zdrojů. Hodně štěstí a šťastné streamování!


Linux
  1. Vytvořte zlé dvojče své sítě pomocí Fluxion na Kali Linuxu

  2. Vytvořte si cloudové úložiště pomocí ownCloud 6 na Linux Mint 17

  3. Jak nainstalovat Nextcloud s Dockerem na váš Linux Server

  1. Zobrazte síťová připojení svého linuxového serveru pomocí netstat

  2. Vytvářejte záložky pro PDF pomocí pdftk

  3. Zabezpečte svůj Linuxový server pomocí Fail2Ban [Příručka pro začátečníky]

  1. Monitorujte svůj Linux server pomocí Checkmk

  2. Nastavte VPN server na vašem počítači se systémem Linux

  3. Jak vytvořit osobní souborový server s SSH na Linuxu