Streamování na více platformách zároveň pomocí virtuálního serveru

Pokud chcete vysílat na více platformách zároveň (například YouTube, Facebook, Twitch a Instagram), můžete využít jednoduchého řešení pomocí virtuálního serveru a šetřit tak výkon svého počítače.

Pro úspěšné nastavení vašeho streamu budete potřebovat:

  • OBS (Open Broadcaster Software) – streamovací software
  • VPS (virtuální server)
  • účty ve službách, kde chcete vysílat

Přihlášení do VPS

1. Objednejte si virtuální server VPS ON nebo VPS SSD. Operační systém serveru zvolte například Debian 10. Je nutné si koupit příplatkovou službu IPv4. Pro VPS ON je služba zdarma a pro VPS SSD stojí 1 Kč za měsíc.

2. Přihlašovací údaje do virtuálního serveru naleznete ve vaší emailové schránce.

3. Otevřete příkazový řádek. Postup se bude lišit dle operačního systému vašeho počítače.

  • Windows: Stiskněte tlačítka WIN + R. Do formuláře napište cmd a stiskněte ENTER.
  • Linux: Využijte například program Terminál.

4. Přihlašte se do virtuálního serveru pomocí příkazu:

ssh root@IPv4 ADRESA VAŠEHO SERVERU - příklad: ssh root@31.31.73.176

5. Pokud se přihlašujete poprvé, budete vyzváni k potvrzení otisku (fingerprint). Napište do příkazového řádku yes a potvrďte stisknutím tlačítka ENTER.

6. Budete vyzvání k zadání hesla. Pozor, to se vám z bezpečnostních důvodu nebude zobrazovat v příkazovém řádku. Zadejte heslo a stiskněte ENTER. Nyní jste přihlášení do vašeho VPS.

Instalace nginx a RTMP modulu

Dalším krokem je instalace potřebného software na váš virtuální server. Postup si vysvětlíme v následující kapitole.

1. Nejdříve je nutné zjistit, jestli máte stažené a nainstalované vše potřebné pro pokračování. Zkopírujte následující příkaz do příkazového řádku a stiskněte ENTER.

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev

2. Stáhněte si nginx a RTMP modul například pomocí následujících příkazů. Zkopírujte příkazy jednotlivě do příkazového řádku a stiskněte ENTER.

wget http://nginx.org/download/nginx-1.15.1.tar.gz
wget https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive/dev.zip

3. Rozbalte stažené soubory pomocí těchto příkazů:

tar -zxvf nginx-1.15.1.tar.gz
unzip dev.zip
cd nginx-1.15.1

4. Sestavte nginx pomocí následujících tří příkazů. Zkopírujte je jednotlivě do příkazového řádku a stiskněte ENTER. Pokud uvidíte chybovou hlášku „unable to resolve host“, postupujte podle návodu zde a až poté pokračujte.

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-dev

make

sudo make install

5. Váš server je funkční. Zapněte ho pomocí následujícího příkazu. Zkopírujte příkaz do příkazového řádku a stiskněte ENTER.

sudo /usr/local/nginx/sbin/nginx

6. Otestujte, zda vše proběhlo správně. Ve svém webovém prohlížeči přejděte na adresu http://IP ADRESA VAŠEHO SERVERU (například http://31.31.73.176. V případě správného nastavení na stránce uvidíte „Welcome to nginx!“

Konfigurace nginx pro využití RTMP

V této kapitole si vysvětlíme, jak nakonfigurovat virtuální server pro potřeby streamování do více platforem.

1. Otevřete konfigurační soubor nginx pomocí následujícího příkazu. Zkopírujte ho do příkazového řádku a stiskněte ENTER.

sudo nano /usr/local/nginx/conf/nginx.conf

2. Zkopírujte následující text na konec konfiguračního souboru. Budete potřebovat URL RTMP serverů a streamovací klíče jednotlivých platforem. Ty zpravidla získáte v administraci vašeho účtu na jednotlivých platformách.

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                        push rtmp://live-prg.twitch.tv/app/unikátní streamovací klíč-liší se pro každý účet a službu(nekopírujte tučnou část)
                        push rtmp://a.rtmp.youtube.com/live2/unikátní streamovací klíč-liší se pro každý účet a službu(nekopírujte tučnou část);
                        push RTMP A STREAM KLÍČ SLUŽBY 3;
                }
        }
}

3. Pro uložení změn stiskněte CTRL + X, následně Y (nebo A, pokud máte příkazový řádek v češtině) a nakonec stiskněte ENTER.

4. Nginx je nakonfigurován. Změny se projeví po restartování serveru. Vypněte a zapněte nginx pomocí následujících příkazů. Zkopírujte je do příkazového řádku a stiskněte ENTER.

sudo /usr/local/nginx/sbin/nginx -s stop

sudo /usr/local/nginx/sbin/nginx

Nastavení OBS

1. Stáhněte si Open Broadcasting Software z následujícího odkazu.

2. Nainstalujte a spusťte OBS. Otevřete nastavení v levém dolním rohu obrazovky.

3. Otevřete záložku Vysílání a formuláře vyplňte následovně:

  • Služba – Vlastní
  • Server – rtmp://VAŠE IP ADRESA/live (např. rtmp://31.31.73.176/live)
  • Vysílací klíč – může být libovolný (např. test)

4. Můžete začít vysílat! Nezapomeňte zabezpečit svůj server pomocí následujícího návodu.

Unable to resolve host

Tuto kapitolu můžete ignorovat, pokud se vás problém „unable to resolve host“ netýká.

1. Zjistěte název svého VPS pomocí příkazu hostname. Zkopírujte příkaz do příkazového řádku a stiskněte ENTER. Jméno vašeho virtuálního serveru se zobrazí na dalším řádku. Tento název jde získat také v zákaznické administraci WEDOS.

hostname

2. Nyní přidejte záznam do souboru /etc/hosts dle šablony na následujícím obrázku. Příkaz pro přidání záznamu je následující. Zkopírujte ho do příkazového řádku a stiskněte ENTER.

sudo nano /etc/hosts

3. IP adresa 127.0.0.1 je stejná pro všechny uživatele. Název, v tomto příkladu vm28693 byl zjištěn v minulém kroku. Název není stejný jako v příkladu. Využijte ten, který jste zjistili v minulém kroku pomocí příkazu hostname.

4. Problém „unable to resolve host“ je vyřešen. Nyní se můžete vrátit zpět do hlavního návodu.

Nastavení vysílání na Facebooku

Facebook nepodporuje vysílání přes RTMP, ovšem toto omezení lze jednoduchým postupem obejít. Pokud si přejete vysílat do Facebooku, postupujte dle následujícího návodu.

1. Otevřete konfigurační soubor nginx pomocí následujícího příkazu. Zkopírujte ho do příkazového řádku a stiskněte ENTER.

sudo nano /usr/local/nginx/conf/nginx.conf

2. V případě Facebooku nezapisujeme do konfiguračního souboru nginx RTMP server Facebooku, jak by bylo obvyklé, ovšem následující adresu. Za tuto adresu zkopírujte váš unikátní streamovací klíč, jako u jiných platforem.

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                        push rtmp://localhost:19350/rtmp/unikátní streamovací klíč-liší se pro každý účet a službu(nekopírujte tučnou část);
                }
        }
}

3. Pokud už na konci konfiguračního souboru máte tento text zkopírovaný z předchozího návodu, pouze přidejte tento řádek pod record off:

rtmp://localhost:19350/rtmp/unikátní streamovací klíč-liší se pro každý účet a službu(nekopírujte tučnou část);

4. Po změnách je třeba nginx restartovat. Využijte následujících příkazů:

sudo /usr/local/nginx/sbin/nginx -s stop

sudo /usr/local/nginx/sbin/nginx

5. Nainstalujte stunnel na VPS pomocí následujícího příkazu

apt-get install stunnel4 -y

6. Pomocí následujícího příkazu sudo nano /etc/default/stunnel4 upravte hodnotu ENABLE=0 na ENABLE=1. Pokud tento záznam nenaleznete, pouze přidejte na poslední řádek ENABLE=1. Textový editor následně uložíte a opustíte pomocí kláves CTRL + X, následně Y (nebo A, pokud máte příkazový řádek v češtině) a nakonec ENTER.

7. Přidejte následující záznamy do souboru stunnel.conf pomocí příkazu sudo nano /etc/stunnel/stunnel.conf.

pid = /var/run/stunnel4/stunnel.pid
output = /var/log/stunnel4/stunnel.logsetuid = stunnel4
setgid = stunnel4

# https://www.stunnel.org/faq.html
socket = r:TCP_NODELAY=1
socket = l:TCP_NODELAY=1

debug = 4

[fb-live]
client = yes
accept = 19350
connect = live-api-s.facebook.com:443
verifyChain = no

8. Textový editor poté uložte a opusťte pomocí kláves CTRL + X, následně Y (nebo A, pokud máte příkazový řádek v češtině) a nakonec ENTER.

9. Zapněte automatické zapínání stunnel při startu VPS pomocí následujícího příkazu:

systemctl enable stunnel4.service

10. Restartujte stunnel pomocí následujícího příkazu:

systemctl restart stunnel4.service

11. Nastavení na straně VPS je kompletní. Pokud jste tak ještě neučinili, pokračujte nastavením OBS zde.

Zabezpečení serveru

Pro zabezpečení serveru proti zneužití se doporučuje kombinovat dvě bezpečnostní opatření:

1. Pokud zrovna nevysíláte, vypněte nginx pomocí následujícího příkazu:

sudo /usr/local/nginx/sbin/nginx -s stop

Pro následné zapnutí před vysíláním využijte následujícího příkazu:

sudo /usr/local/nginx/sbin/nginx

2. Omezte IP adresy, které mohou publikovat a přehrávat vaše vysílání přidáním následujících tučně zvýrazněných řádků do konfiguračního souboru.

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        allow publish 89.79.80.40 (nahraďte vlastní IP adresou);
        allow publish 89.74.42.165 (nahraďte vlastní IP adresou;
        deny publish all;

        allow play 89.79.80.40 (nahraďte vlastní IP adresou);
        allow play 89.74.42.165 (nahraďte vlastní IP adresou);
        deny play all;

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

Přidejte tučné řádky do konfiguračního souboru. Nezapomeňte, že uvedené IP adresy jsou pouze ilustrační, a tak musíte uvést vlastní. Vložte řádky na stejné místo, jako vidíte v příkladu. Jedná se o část konfiguračního souboru zabývající se RTMP modulem. Tu jste do souboru přidali v druhém kroku této části návodu.