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.