ipcam

ONVIF PTZ control + RTSP capture + camera discovery. Works with any ONVIF Profile S/T camera. Tested with TP-Link, Hikvision, Dahua, Reolink, Amcrest, Axis.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ipcam" with this command: npx skills add ltpop/ipcam

IP Camera Skill

Control IP cameras via RTSP (snapshots, recording) and ONVIF (PTZ, presets, discovery).

Tested with TP-Link Tapo/Vigi. Works with Hikvision, Dahua, Reolink, Amcrest, Axis, and other ONVIF Profile S/T cameras.

Setup

bash skills/ipcam/install.sh

Then either discover cameras automatically or configure manually:

# Auto-discover and add
ptz.py discover --add

# Or edit config
nano ~/.config/ipcam/config.json

Config Format

{
  "default": "front-door",
  "cameras": {
    "front-door": {
      "ip": "192.168.1.100",
      "username": "admin",
      "password": "secret",
      "rtsp_port": 554,
      "onvif_port": 2020,
      "rtsp_main_path": "stream1",
      "rtsp_sub_path": "stream2"
    }
  }
}
  • onvif_port: 2020 (TP-Link), 80 (Hikvision/Dahua), 8000, 8080
  • rtsp_main_path / rtsp_sub_path: auto-detect with ptz.py stream-uri --save
  • Env overrides: CAM_IP, CAM_USER, CAM_PASS, CAM_RTSP_PORT, CAM_ONVIF_PORT

Usage

RTSP (camera.sh)

camera.sh snapshot                         # capture frame
camera.sh --cam cam2 snapshot /tmp/cam.jpg # specific camera
camera.sh record 15                        # record 15s clip
camera.sh stream-url sub                   # print sub-stream URL
camera.sh info                             # test connectivity
camera.sh list-cameras                     # list configured cameras

PTZ (ptz.py)

ptz.py status                     # current position
ptz.py move left                  # pan left (speed 0.5, 0.5s)
ptz.py move zoomin 0.8 1.0        # zoom in, speed 0.8, 1s
ptz.py goto 0.5 -0.2 0.0          # absolute pan/tilt/zoom
ptz.py home                       # home position
ptz.py stop                       # stop movement
ptz.py preset list                # list presets
ptz.py preset goto 1              # go to preset 1
ptz.py preset set 2 "Door"        # save current pos as preset

Discovery & Stream URI

ptz.py discover                   # scan network for ONVIF cameras
ptz.py discover --add             # scan and add to config
ptz.py stream-uri                 # query RTSP paths from ONVIF
ptz.py stream-uri --save          # save paths to config

Multi-camera: use --cam <name> with any command.

Directions

left, right, up, down, zoomin, zoomout, upleft, upright, downleft, downright

Troubleshooting

  • RTSP fails: Check IP/port/firewall. Use ptz.py stream-uri to verify paths. Camera may limit concurrent RTSP connections (try closing other viewers).
  • ONVIF fails: Verify ONVIF port and that ONVIF is enabled in camera web UI. Try common ports: 2020, 80, 8000, 8080.
  • No cameras found: Ensure same subnet, ONVIF enabled, UDP multicast not blocked.
  • PTZ not working: Not all cameras support PTZ. Check ONVIF Profile S support.
  • Auth error: Check username/password. Special characters are URL-encoded automatically.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Cclaw

Open-source comedy AI + video editing + poster generation. Create standup/sketch/manzai/scripts, edit videos via FFmpeg, and generate comedy posters via canv...

Registry SourceRecently Updated
General

Dlazy Seedance 1.5 Pro

Convert images into dynamic dance videos using Doubao Seedance 1.5 Pro.

Registry SourceRecently Updated
General

Pod Template Pack

Use when user needs ready-to-use POD (Print on Demand) design keywords, title templates, and listing copy. Use when creating POD product listings for TikTok,...

Registry SourceRecently Updated
General

Dlazy Mj.Imagine

Generate artistic images using Midjourney (MJ) model. Supports text-to-image.

Registry SourceRecently Updated