「Orange Pi + C270 で動画をストリーミング配信する。」では、Orange Pi + C270 + mjpg_streamer で動画をストリーミング配信することが出来た。
このときは、
1 |
sudo mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -r 800x600 -f 20 -l off" -o "/usr/lib/output_http.so -p 8080 -w /usr/www" |
とやった。
Orange Pi には複数のUSB端子があるので、eBayで買った安いWEBカメラを追加して、
1 |
sudo mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video1 -r 800x600 -f 20 -l off -y" -o "/usr/lib/output_http.so -p 8090 -w /usr/www" |
とやる。
前回のC270の場合とオプションの設定が若干異なる。
1.video0 を video1 に変更する。
これはC270がvideo0なので次はvideo1だろうというだけのこと。
2.-i のオプションに[-y]を追加する。
YUYV format を有効にする。
eBayカメラは MJPEG mode に対応していないらしく、このオプションが無いとエラーで起動しなかった。
3.8080 を 8090 に変更した。
アドレスが被るとダメなので変更しただけだ。
この数字にどういう意味があるのかは知らない。
ただ何となく、80とか8080とかが使われているようだ、という気がしているだけ。
いずれにしても、これで同時に2つのカメラの画像をストリーミング配信することが出来た。
mjpg-streamer.sh の内容を以下のように書き換えて、起動時に2つのストリーミングが開始されるようにしておいた。
1 2 3 4 5 6 7 |
#!/bin/bash sudo mjpg_streamer -b \ -i "/usr/lib/input_uvc.so -d /dev/video1 -r 800x600 -f 20" \ -o "/usr/lib/output_http.so -p 8080 -w /usr/www" sudo mjpg_streamer -b \ -i "/usr/lib/input_uvc.so -d /dev/video0 -r 800x600 -f 20 -l off -y" \ -o "/usr/lib/output_http.so -p 8090 -w /usr/www" |
認識される順番が逆になると、eBayで買った安いWEBカメラは動かなかったりする。
同じカメラなら同じ設定で煩雑さも少なかっただろう。
でも、価格は半分以下でLEDライト内蔵なので、目的によってはeBayカメラの方が良い。
追記
どうも、どちらのカメラがvideo0になってどちらがvideo1になるのかに規則性が無いような気がする。
つないでいるUSBのポートによって決まるのかと思っていたが、何かそうでもないような。
結局、上の方法は一時棚上げして、動作を確認しながら手動で動かしている。
1 2 |
sudo mjpg_streamer -b -i "/usr/lib/input_uvc.so -d /dev/video0 -r 800x600 -f 20" -o "/usr/lib/output_http.so -p 8080 -w /usr/www" sudo mjpg_streamer -b -i "/usr/lib/input_uvc.so -d /dev/video1 -r 800x600 -f 20 -l off -y" -o "/usr/lib/output_http.so -p 8090 -w /usr/www" |
追記
eBayで買った安いWEBカメラの方が起動時に認識されない場合があるようだ。
USBを接続し直すと認識する。
追記
有線PCからは見られるのに、Wi-Fi接続のスマホから見れないことがある。
詳細は不明だが、無線LANルータを再起動すると接続できるようになる。
追記
関連してよく使うターミナルからのコマンド
1 2 3 4 5 6 7 |
※実行中のプロセスを表示 ps aux a:自分以外のユーザーのプロセスも表示する u:ユーザー名と開始時刻を表示する x:制御端末のないプロセスの情報も表示する たくさんの中から目的の物のみ表示する例 ps aux | grep mjpg_streamer |
Tweet