Jak streamovat a škubat z příkazového řádku v systému Linux

Photo of author

By etechblogcz

Mnoho uživatelů operačního systému Linux preferuje pro živé vysílání na platformě Twitch nástroj Open Broadcaster Software. Nicméně, tento program nemusí vyhovovat každému a někteří hledají alternativní řešení. Je možné sledovat streamy na Twitch bez nutnosti používání webového prohlížeče a dokonce i streamovat pomocí jednoduchého skriptu v prostředí Bash.

Pokud při přístupu na Twitch používáte VPN, bude potřeba ji aktivovat samostatně.

Instalace nástroje pro kódování FFmpeg

Pro streamování na Twitch z příkazové řádky v Linuxu se využívá nástroj pro kódování videa FFmpeg. Před pokračováním v tomto návodu je nutné mít tento software nainstalovaný na vašem systému. Spusťte okno terminálu a zadejte příslušný příkaz pro instalaci. Následující příkazy jsou určeny pro distribuce Ubuntu, Debian, Arch Linux, Fedora nebo OpenSUSE. V případě, že používáte jinou distribuci, můžete si FFmpeg stáhnout a nainstalovat ze stránek projektu zde.

Ubuntu

sudo apt install ffmpeg

Debian

sudo apt-get install ffmpeg

Arch Linux

sudo pacman -S ffmpeg

Fedora

sudo dnf install ffmpeg

OpenSUSE

sudo zypper install ffmpeg

Po úspěšné instalaci ověřte funkčnost FFmpeg spuštěním v terminálu. Není nutné zadávat žádné parametry pro kódování souborů. Pro otestování zadejte:

ffmpeg --help

Pokud se zobrazí nápověda, vše proběhlo správně. Následně vymažte terminál pomocí příkazu clear.

Úprava souboru .bashrc

Po instalaci a ověření funkčnosti nástroje pro kódování je dalším krokem konfigurace aliasu pro streamování na Twitch. K tomu je nutné upravit soubor .bashrc. Tento soubor obsahuje různé příkazové proměnné pro každého uživatele. Změny v .bashrc se vztahují pouze na konkrétního uživatele, takže každý, kdo chce používat tento skript, musí provést níže uvedené kroky.

Nejprve vytvořte zálohu souboru .bashrc, aby bylo možné vrátit změny, pokud se rozhodnete streamovací alias odstranit. Zálohu vytvoříte zkopírováním souboru:

mkdir ~/bashrc-backup

cp ~/.bashrc ~/bashrc-backup/.bashrc-bak

Po zálohování můžete začít s úpravami. Otevřete soubor .bashrc v textovém editoru z terminálu. **Nepoužívejte ROOT**, abyste omylem neupravili .bashrc uživatele root, což by byla chyba.

nano ~/.bashrc

Na konec souboru .bashrc vložte následující kód. Mějte na paměti, že budete pravděpodobně muset upravit některé parametry podle vašich preferencí, jako jsou rozlišení, počet vláken, kvalita, CBR atd.

Důležitá poznámka: Nikdy neukládejte svůj streamovací klíč přímo do .bashrc, je to bezpečnostní riziko. Skript bude vyžadovat vložení klíče při každém spuštění streamu.

 streaming() {
     INRES="1920x1080" # vstupní rozlišení
     OUTRES="1920x1080" # výstupní rozlišení
     FPS="15" # cílová snímková frekvence
     GOP="30" # interval I-snímků, měl by být dvojnásobkem FPS
     GOPMIN="15" # minimální interval I-snímků, měl by být roven FPS
     THREADS="2" # maximálně 6
     CBR="1000k" # konstantní bitová rychlost (doporučuje se mezi 1000k - 3000k)
     QUALITY="ultrafast"  # jedna z mnoha předvoleb FFMPEG
     AUDIO_RATE="44100"
     STREAM_KEY="$1" # pro streamování na Twitch zadejte příkaz Streaming vas_streamovaci_klic
     SERVER="live-sjc" # server Twitch v Kalifornii, viz https://bashtech.net/twitch/ingest.php pro změnu
    
     ffmpeg -f x11grab -s "$INRES" -r "$FPS" -i :0.0 -f alsa -i pulse -f flv -ac 2 -ar $AUDIO_RATE
       -vcodec libx264 -g $GOP -keyint_min $GOPMIN -b:v $CBR -minrate $CBR -maxrate $CBR -pix_fmt yuv420p
       -s $OUTRES -preset $QUALITY -tune film -acodec libmp3lame -threads $THREADS -strict normal
       -bufsize $CBR "rtmp://$SERVER.twitch.tv/app/$STREAM_KEY"
 }

Po vložení kódu do .bashrc uložte změny (Ctrl+O) a zavřete textový editor Nano (Ctrl+X).

Streamování

Pro zahájení streamování na Twitch z příkazové řádky otevřete terminál a použijte nový příkaz pro streamování, který jste definovali v souboru .bashrc. Pro streamování budete potřebovat svůj streamovací klíč z Twitch. Přihlaste se do svého účtu na Twitch, přejděte na svůj panel a najděte svůj streamovací klíč.

Pokud jste správně nastavili všechny parametry, streamování z příkazové řádky by mělo být spuštěno následujícím příkazem:

streaming streamkey

Stream ukončíte stisknutím klávesy „Q“. Pokud „Q“ nefunguje, můžete ukončit skript nuceně stisknutím Ctrl+Z.

Streamovací skript

Pokud vás nebaví opakované zadávání streamovacího klíče, můžete si vytvořit streamovací skript. Nicméně, mějte na paměti, že uložení klíče do skriptu znamená zpřístupnění ho všem uživatelům, kteří mají přístup k vašemu počítači. Pokud se pro tuto variantu rozhodnete, otevřete terminál a zadejte následující příkazy:

Nejprve použijte příkaz echo pro vložení „shebang“ do skriptu. Shebang informuje interpret Bash, jaký typ skriptu má spustit.

Důležitá poznámka: Nepřesouvejte skript z domovského adresáře! Spoléhá se na streamovací funkci definovanou v souboru .bashrc. Pokud jej přesunete do jiné složky, skript nemusí fungovat správně.

echo "#!/bin/bash" > ~/stream-script.sh

Následně zkopírujte streamovací příkaz a pomocí příkazu echo vložte ho do skriptu:

echo "streaming streamkey" >> ~/stream-script.sh

Nakonec aktualizujte oprávnění skriptu, aby jej bylo možné spustit. Bez tohoto kroku by skript nemusel fungovat.

sudo chmod +x stream-script.sh

Skript spustíte zadáním:

./stream-script.sh

nebo

sh stream-script.sh

Skript ukončíte stisknutím klávesy „Q“ nebo nuceně stisknutím Ctrl+Z.