THETA S + Raspberry Pi 2でライブストリーミングしてみた - Qiitaを参照してRaspberryPI2にTHETA Sをライブストリーミングモードでさしたら自動的にustreamに投稿するようにしてみた。
忘れてしまうのでやったことを記録しておく。
その他参照サイト
mount - Autorun a script after I plugged or unplugged a USB device - Ask Ubuntuを参照してTHETAが接続されたらスクリプトを自動起動するように設定
gstreamerの使い方はRaspberry Piを弄り倒す【自宅用ペット監視用カメラ設定編】 | 馬鹿王きんぐが全ぶっぱ!を参照
やったこと
Raspbian 8.0 (jessie)で確認
/home/pi/stream.shに以下のスクリプトを作成
#! /bin/sh
sleep 1
# [url]と[key]はUstreamのダッシュボード→チャンネル設定→(配信対象チャンネル)→ライブ配信設定→エンコーダー設定で確認
RTMP_URL="[url]"
STREAM_KEY="[key]"
FLASHVER='FME/3.0%20(compatible;%20FMSc%201.0)'
LOCATION="$RTMP_URL/$STREAM_KEY live=1 flashver=$FLASHVER"
CMD="gst-launch-1.0 v4l2src ! videoconvert ! omxh264enc ! h264parse ! flvmux ! rtmpsink location='$LOCATION'"
$CMD &
ライブストリーミングモードのTHETAをさして確認
$ lsusb
Bus 001 Device 006: ID 05ca:2711 Ricoh Co., Ltd
# => VendorID:05ca
# => ProductID:2711
/etc/udev/rules.d/00-usb-theta.rulesを作成して以下のようにする。
ACTION=="add", ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2711", OWNER="pi", RUN+="/home/pi/stream.sh"
THETAをさしなおしてustreamに配信されることを確認。
はまったこと
実行スクリプトに#! /bin/shがなくて以下のページと同じエラーが発生していた。
debian - Executing backup script on external HDD plug using udev - Unix & Linux Stack Exchange
ログは以下のように確認した。
$ sudo vi /etc/udev/udev.conf
# => udev_log="info"追加
$ sudo /etc/init.d/udev reload
$ sudo less /var/log/syslog
課題
しばらくするとgstreamerが落ちたりする。
調べてた範囲では原因よくわからなかった。
最初はTHETAをさした瞬間にwifiドングルを認識しなくなったりと問題が出ていたが、Raspberry Pi用にUSBハブを購入する | ものづくりエクスペリメントを参照して、電源供給したUSBハブごしにTHETAなどを接続するようにしたら解消した。