YouTube streaming z RaspberryPi Zero W

raspberry youtube stream

Na YouTube jde dnes streamovat kde z čeho, ale ne vždy streamujete hned vedle počítače nebo tím nemůžete zaměstnat na takovou dobu telefon. Do takové situace jsem se dostal já. A řešení se opět stočilo k Raspberry. Při průzkumu toho, čím bych to streamovat jsem narazil na nejrůznější možnosti. Jedna absolutně základní je, otevřít prohlížeč a streamovat přes YouTube aplikaci. Ale RPi Zero nemá zase tak moc výkonu, takže jsem ho o něj nechtěl připravovat desktopem. Tím se výběr možností značně zúžil, ale ne natolik, aby to nešlo vyřešit.

Prerekvizity

  • Raspberry Pi Zero W
  • Flexi kabel pro kameru
  • RPi kamera
  • Monitor
  • Klávesnice

Init

Pokud nechcete k Raspberry připojovat klávesnici a monitor jde Raspbian "předkonfigurovat". Více v článku „OFFLINE“ konfigurace Raspberry Pi

sudo apt update
sudo apt upgrade -y

sudo raspi-config
# - 5 Interfacing Options
#   - P2 SSH
#       - Potvrďte povolení SSH serveru
# - 2 Network Options
#   - N2 Wi-fi
#       - Zadejte SSID vaší WiFi sítě
#       - Zadejte heslo do vaší WiFi sítě 

Po tomto nastavení byste měli být schopní se připojit do RPi z vašeho počítače. (Putty a pod.)

Zprovoznění kamery

sudo raspi-config
# - 5 Interfacing Options
#   - P1 Camera
#       - Potvrďte povolení kamery

Ověření funkčnosti kamery

raspistill –o image.jpg

Pokud máte RPi připojené k monitoru a vše funguje, tak vám na okamžik zobrazí snímek z kamery. Snímek se uloží do souboru image.jpg.

Instalace libav-tools

sudo apt install libav-tools -y

Vytvoření streamu na YouTube

Jděte na YouTube a navrchu napravo dejte spustit nový stream.

Poté zadejte základní údaje o streamu a vytvořte jej.

Vyskočí na vás náhled streamu. Kde máte endpoint kam máte vysílat a váš klíč. Oboje si vykopírujte někde bokem a vraťte se zpět na RPi.

Spuštění vysílání

Na RPi stačí zadat tuto "zrůdnost" s údaji které vám vygeneroval YouTube a měli byste začít vysílat.

raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000 | avconv -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/<váš_klíč>

Po chvíli YouTube zobrazí stream jako v pořádku.

Pak už jste online.

Zabalení příkazu do skriptu

Pomocí editoru Nano nebo vašeho oblíbeného vytvořte následující skript stream.sh.

#!/bin/bash

if [ -z "$1" ]; then
    echo "Prvni parametr (klic k youtube streamu) nenalezen!"
    echo "Zdarec!"
    exit 1
fi

WIDTH=1280
HEIGHT=720

if [ -n "$2" ]; then
    WIDTH=$2
fi

if [ -n "$3" ]; then
    HEIGHT=$3
fi

raspivid -o - -t 0 -h "$HEIGHT" -w "$WIDTH" -vf -hf -fps 30 -b 6000000 | avconv -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/"$1"

Změna práv skriptu

chmod +x skript.sh

Spuštění

./stream.sh <váš_klíč>

Závěr

Poku chcete bavit diváky svým neotřelým vtipem, tak toto není řešení pro vás. Video jede celkem plynule, ale žádný zázrak to není. Plus je u tohoto řešení absence zvuku. Ale pokud je váš cíl spíše něco monitorovat nebo vysílat, jak vám rybičky plavou v akvárku, je to podle mě dostačující řešení s minimem námahy.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *