CamSnap Skill - RTSP/ONVIFカメラからのスナップショット・動画クリップ取得を実現するClawdbot拡張機能
Clawdbot向けCamSnap Skillを利用して、RTSP/ONVIFカメラからのスナップショット、動画クリップ、モーション検知機能をコマンドラインから実現する方法を解説します。
CamSnap Skill - RTSP/ONVIFカメラからのスナップショット・動画クリップ取得を実現するClawdbot拡張機能
Clawdbot向けのCamSnap Skillが提供するcamsnapコマンドにより、RTSP/ONVIFプロトコル対応の監視カメラから静止画スナップショット、動画クリップ、モーション検知イベントを取得できる。本スキルは、ネットワークカメラの自動検出、認証管理、FFmpegによるメディア処理機能を提供する。
概要
CamSnap Skillは、RTSP(Real Time Streaming Protocol)およびONVIF(Open Network Video Interface Forum)規格に対応した監視カメラを対象とした制御ツールである。Clawdbotのスキルシステムに統合されており、AIエージェントが自然言語指示からカメラ映像を取得できる仕組みを提供する。
公式サイト(https://camsnap.ai)によれば、本ツールはHomebrewパッケージとして配布されており、FFmpegを内部的に使用してメディア処理を実行する設計となっている。
技術的仕様
システム要件
- macOS、Linux、またはWindows(WSL2推奨)
- FFmpegバイナリ(PATH環境変数に設定済み)
camsnapバイナリ(Homebrew経由でインストール)- ネットワーク上にRTSP/ONVIFカメラが存在すること
インストール方法
Clawdbot環境では、以下のコマンドでインストールが実行される。
brew install steipete/tap/camsnap
インストール後、camsnapコマンドがシステムPATHに追加される。
設定ファイル
カメラ情報は~/.config/camsnap/config.yamlに保存される。
cameras:
- name: kitchen
host: 192.168.0.10
username: user
password: pass
- name: front-door
host: 192.168.0.11
username: admin
password: admin123
主要機能
1. カメラ検出
ネットワーク上のONVIF対応カメラを自動検出する。
camsnap discover --info
出力例:
Discovered: 192.168.0.10 (Manufacturer: Hikvision, Model: DS-2CD2143G0-I)
Discovered: 192.168.0.11 (Manufacturer: Axis, Model: M3045-V)
2. カメラ追加
設定ファイルに新規カメラを追加する。
camsnap add --name kitchen --host 192.168.0.10 --user user --pass pass
3. スナップショット取得
指定カメラから静止画を取得する。
camsnap snap kitchen --out shot.jpg
出力形式: JPEG(デフォルト)、PNG(オプション指定可能)
4. 動画クリップ取得
指定期間の動画クリップを録画する。
camsnap clip kitchen --dur 5s --out clip.mp4
サポートされる期間指定:
5s: 5秒1m: 1分10m: 10分
5. モーション検知
モーション検知イベントを監視し、トリガー時にアクションを実行する。
camsnap watch kitchen --threshold 0.2 --action 'notify-send "Motion detected"'
パラメータ:
--threshold: モーション検知感度(0.0~1.0、デフォルト0.2)--action: トリガー時に実行するコマンド
6. 診断機能
カメラ接続とストリーム情報を診断する。
camsnap doctor --probe
出力内容:
- RTSP接続状態
- ストリームコーデック情報
- 解像度・フレームレート
実装例
例1: 複数カメラの一括スナップショット
#!/bin/bash
# 全カメラから現在の映像を取得
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
for camera in kitchen front-door garage; do
camsnap snap "$camera" --out "${camera}_${TIMESTAMP}.jpg"
done
例2: モーション検知時の自動録画
#!/bin/bash
# モーション検知時に10秒間録画してクラウドにアップロード
camsnap watch front-door --threshold 0.3 --action 'camsnap clip front-door --dur 10s --out /tmp/motion.mp4 && aws s3 cp /tmp/motion.mp4 s3://my-bucket/security/'
例3: 定期的なスナップショット取得(Cronジョブ)
# crontab -e に追加
# 毎時0分にキッチンカメラのスナップショットを取得
0 * * * * /usr/local/bin/camsnap snap kitchen --out /var/log/kitchen/$(date +\%Y\%m\%d_\%H00).jpg
例4: ストリーム品質の確認
#!/bin/bash
# カメラのストリーム情報を取得してログに記録
camsnap doctor --probe > /var/log/camsnap/diagnostics_$(date +%Y%m%d).log
例5: Node.js連携による画像解析
const { exec } = require('child_process');
const fs = require('fs');
// カメラから画像取得
exec('camsnap snap front-door --out /tmp/snap.jpg', (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error.message}`);
return;
}
// 画像をBase64エンコードしてAPI送信
const imageBuffer = fs.readFileSync('/tmp/snap.jpg');
const base64Image = imageBuffer.toString('base64');
// Claude APIで画像解析(例)
// analyzeImage(base64Image);
});
ユースケース
1. AIエージェントによる監視
Clawdbotエージェントが「玄関のカメラ映像を確認して」という自然言語指示を受け取り、スナップショットを自動取得・表示する環境を構築できる。
2. セキュリティイベント記録
モーション検知機能と連携し、不審な動きを検知した際に自動的に動画クリップを記録・通知する仕組みを実現する。
3. タイムラプス生成
定期的にスナップショットを取得し、FFmpegで結合してタイムラプス動画を生成する。
4. クラウド連携監視システム
取得した映像をAWS S3、Google Cloud Storage、Azure Blob Storageに自動アップロードし、長期保存・分析基盤を構築する。
制限事項・セキュリティ考慮事項
制限事項
- FFmpeg依存: FFmpegがシステムPATHに存在しない場合、動作しない
- プロトコル制限: RTSP/ONVIF非対応のカメラ(独自プロトコル使用)は利用不可
- ネットワーク帯域: 高解像度カメラからの長時間クリップ取得は帯域を消費する
- 同時接続数: 一部カメラは同時接続数制限があり、複数クライアントからのアクセスで接続失敗する可能性がある
セキュリティ考慮事項
-
認証情報の保管:
~/.config/camsnap/config.yamlに平文パスワードが保存されるため、ファイルパーミッションを600に設定することchmod 600 ~/.config/camsnap/config.yaml -
RTSP通信の暗号化: 標準RTSPは非暗号化通信のため、盗聴リスクがある。RTSPS(RTSP over TLS)対応カメラの使用を推奨
-
カメラファームウェア: 古いファームウェアには既知の脆弱性が存在する可能性があるため、定期的な更新が必要
-
ネットワーク分離: 監視カメラを専用VLANに配置し、インターネットからの直接アクセスを制限することを推奨
参考リンク
- CamSnap公式サイト: https://camsnap.ai
- CamSnap GitHubリポジトリ: https://github.com/steipete/camsnap
- ONVIF公式サイト: https://www.onvif.org/
- FFmpeg公式サイト: https://ffmpeg.org/
- Clawdbot公式サイト: https://clawdbot.io/
本記事の情報は2026年2月15日時点のものです。CamSnap Skillの機能、コマンド仕様、インストール方法は変更される可能性があります。最新情報は公式サイトおよびGitHubリポジトリをご確認ください。
関連記事
ClawdHub Skill - Clawdbotスキル管理を効率化
ClawdHub CLIを利用して、Clawdbotスキルの検索、インストール、更新、公開を効率化する方法を解説します。
Spotify Player Skill - ターミナルベースのSpotify再生・検索機能をClawdbotに統合
Clawdbot向けSpotify Player Skillを利用して、spogoまたはspotify_playerを通じたターミナルベースのSpotify制御を実現する方法を解説します。
OpenAI Whisper Skill - ローカル音声認識をClawdbotに統合
Clawdbot向けOpenAI Whisper Skillを利用して、APIキー不要のローカル音声認識による文字起こし・翻訳機能を実現する方法を解説します。
人気記事
Claude Code v2.1.93 リリース - PreToolUseフック延期決定やフリッカーFREE渲染など
AnthropicがClaude Code v2.1.93をリリース。PreToolUseフックの延期決定機能、フリッカー-freeレンダリングオプション、PermissionDeniedフック、名前付きサブエージェントのタイプアヘッド対応などを含む。
Claude Code v2.1.92 リリース - forceRemoteSettingsRefreshやBedrockセットアップウィザードなど
AnthropicがClaude Code v2.1.92をリリース。forceRemoteSettingsRefreshポリシー設定、Bedrockセットアップウィザード、costコマンドの改善など多数の機能追加とバグ修正を含む。
Claude Code v2.1.84 リリース - PowerShellツールプレビューと環境設定の強化
Claude Code v2.1.84がリリース。Windows向けのPowerShellツール、環境変数によるモデル選択のカスタマイズアイドルセッション処理の改善などが含まれる。
最新記事
Claude Code v2.1.93 リリース - PreToolUseフック延期決定やフリッカーFREE渲染など
AnthropicがClaude Code v2.1.93をリリース。PreToolUseフックの延期決定機能、フリッカー-freeレンダリングオプション、PermissionDeniedフック、名前付きサブエージェントのタイプアヘッド対応などを含む。
Claude Code v2.1.92 リリース - forceRemoteSettingsRefreshやBedrockセットアップウィザードなど
AnthropicがClaude Code v2.1.92をリリース。forceRemoteSettingsRefreshポリシー設定、Bedrockセットアップウィザード、costコマンドの改善など多数の機能追加とバグ修正を含む。
Claude Code v2.1.91 リリース - MCPツール結果の永続化とEditツールの最適化
Claude Code v2.1.91ではMCPツールの結果サイズの上書き、シェル実行の制御強化、Editツールの効率改善などが行われた。