[Ubuntu]USBカメラ

UbuntuにUSBカメラを接続し、外出先など「気になるときだけ外部から室内の様子を確認したい」という場合、安全かつ軽量に実現できる方法がいくつかあります。

パターン1:最も軽量・シンプル(Motion + Webブラウザ)

Linuxで防犯・監視カメラを作る際の定番パッケージ motion を使用します。基本は常時監視用のソフトですが、設定を少し変えるだけで「外部からブラウザを開いたときだけ、リアルタイムの映像ストリーミング(MJPEG)を見る」という使い方が可能です。

公式リポジトリにあるため、aptで一発で入ります。

  • パッケージ名: motion
sudo apt update
sudo apt install motion

設定のポイント

設定ファイル(/etc/motion/motion.conf)を編集し、外部からストリーミング映像を見られるようにします。

sudo nano /etc/motion/motion.conf
  • stream_localhost onstream_localhost off に変更(ローカル以外からの接続を許可)
  • stream_port 8081 (視聴用ポート。デフォルトは8081です)

設定後、sudo systemctl restart motion で起動します。これで、同じ自宅のWi-Fi内からであれば http://UbuntuのIPアドレス:8081 にブラウザでアクセスするだけでカメラ映像が見られます。

パターン2:GUIで直感的に管理(ZoneMinder)

もう少し本格的な監視カメラの管理画面(Web UI)が欲しい場合は、オープンソースの ZoneMinder が有名です。ブラウザからカメラのオン/オフ切り替えや、ライブ映像の確認が簡単に行えます。

  • パッケージ名: zoneminder
sudo apt update
sudo apt install zoneminder apache2 mysql-server php-mysql libapache2-mod-php

各種設定の有効化と起動

ZoneMinderをApache(Webサーバー)に認識させ、自動起動を設定します。

# 設定ファイルのリンクを作成
sudo ln -s /etc/zm/apache.conf /etc/apache2/conf-available/zoneminder.conf
sudo a2enconf zoneminder
sudo a2enmod rewrite
sudo a2enmod cgi

# データベースの初期化とサービスの起動
sudo systemctl enable zoneminder
sudo systemctl start zoneminder
sudo systemctl restart apache2

これで、同じ自宅のネットワーク内にあるPCから http://[UbuntuのローカルIPアドレス]/zm にアクセスすると、ZoneMinderの管理画面が開くようになります。

ZoneMinderにUSBカメラ(ローカル)を登録

ブラウザで管理画面(http://localhost/zm または http://[UbuntuのIP]/zm)を開き、カメラを登録します。

  1. モニターの追加:画面上部にある 「Add(または Add New Monitor)」 ボタンをクリックします。
  2. 「General」タブの設定:
    • Name: Room-Camera(自由な名前)
    • Source Type: Local(USBカメラを直接指しているため)
    • Function: Monitor(今回は「気になるときだけ見る」用途なので、常時録画しない「Monitor」にします)
  3. 「Source」タブの設定(ここが重要です):
    • Device Path: /dev/video0(※もし映らない場合は、ターミナルで v4l2-ctl --list-devices を実行して、USBカメラのデバイスパスを確認してください)
    • Capture Method: V4L2
    • Target Size: カメラの解像度を入力(例: 640x4801280x720
  4. 保存:右下の「Save」を押します。

トップ画面に戻り、設定したカメラ名(緑色に変わります)をクリックして、リアルの室内映像がブラウザ内に表示されれば成功です!

コメント

タイトルとURLをコピーしました