ライブ・ストリーミングに定番のMJPG-Streamerを使ってみます。
受信側はブラウザーとかVLC media playerを使ってみます。
MJPG-streamerのインストール
2023/07/17 update
1 2 3 4 5 6 |
sudo apt update sudo apt install -y cmake libv4l-dev libjpeg-dev imagemagick git clone https://github.com/jacksonliam/mjpg-streamer.git cd mjpg-streamer/mjpg-streamer-experimental sudo make sudo make install |
Webカメラを接続してデバイスを確認
$ls /dev/video*
こんな感じで表示されます。
/dev/video0
表示サイズは 640×360
フレームレートは10
ポート番号は8080
ログイン用に
user:ABC
password:123
だとします。
BASIC認証は不要とお考えならCオプションは外します。
1 |
cd ~/mjpg-streamer/mjpg-streamer-experimental |
./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -r 640x360 -f 10 -y -n" -o "./output_http.so -w ./www -p 8080 -c ABC:123"
ラズパイのIPアドレスは192.168.0.30だとします(要確認)
ブラウザーを開いて、URLは192.168.0.30:8080
初期ページ、Streamを選びます。
これでアクセスすると、ユーザー名とパスワードを聞いてきます。
設定したユーザー名とパスワードでログイン
注:単純にストーリーミングのウインドウだけを表示する場合
http://192.168.0.30:8080/stream_simple.html
スマホの小さい画面でもOK、ポートを開放しておけば外出先からも見れて便利。
10秒間隔で静止画をストリーミングする場合は
http://192.168.0.30:8080/static_simple.html
インストールしたMJPG-streamerの中のwwwフォルダーにサンプルがあるので、いろいろ試してみましょう。
静止画像のみ欲しい場合はUNIXな方は以下で取得できます。
$wget -O /home/pi/picture.jpg http://192.168.0.30:8080/?action=snapshot
PHPならfile_get_contents()でimageをダウンロード….かな。
Pythonからならrequestsライブラリーを使えばどうでしょうか?
VLC media playerで見てみます。
まだの方はVLC公式サイトからダウンロードしてインストール。
メディア->ネットワークストリームを開く->ネットワークのタブ
ネットワークURLで
http://192.168.0.30:8080/?action=stream
再生ボタンをクリック、こんな感じで観れます。
VLCを使うとストリーミング画像を録画できます。
メディア->変換/保存->ネットワーク->変換/保存ボタン->
参照で適当にabc.asfなどと指定->保存->開始。
昨今のVLCは簡単な設定で複数起動が可能です。
以前のような「高度な設定」の項はありません。
ツール->設定->「ひとつだけ実行を許可」のチェックを外す
これで、ラズパイ3で音声をマルチキャスト・ライブ・ストリーミングと同時に使えます。
ただし起動順は、カメラ->マイクとした方がいいようです。
こういう組み合わせでもライブ配信できてしまいます。
うまくすれば総予算2000~3000円くらいでいけますね。
以前100均でWebカメラを買ったという記事を読んだような気が…。
ラズパイもZero Wなら1300円くらいだし。
miniHDMI変換ケーブルで500円くらい。
MicroSDも16GBで安いものなら300円くらい。
ただやってみましたが、このモバイルバッテリーだと配信できるのは4時間くらいでした。
お留守の部屋をモニターする場合、本当に動いてるの?を確認するために、カメラの視野に時計なんぞを映りこませておきましょう。
ZeroでCSIカメラモジュールを使って、他の方法もやってみる
Leave a Reply