Camera
Verified@therohitdas
npx machina-cli add skill @therohitdas/camera --openclawCamera Skill
Available Cameras
| Camera | Index | Position | Best For |
|---|---|---|---|
| Brio 100 | 0 | On external monitor, facing user directly | Front view, face shots |
| FaceTime HD | 1 | MacBook on right side, angled toward user | Side/profile view |
Capture Commands
Use -loglevel error to suppress ffmpeg spam. Always warm up for 5s (camera needs exposure adjustment).
Brio (front view)
ffmpeg -loglevel error -f avfoundation -framerate 30 -i "0" -t 5 -y /tmp/brio_warmup.mp4 && \
ffmpeg -loglevel error -sseof -0.5 -i /tmp/brio_warmup.mp4 -frames:v 1 -update 1 -y /tmp/brio.jpg
FaceTime (side view)
Must use -pixel_format nv12 to avoid buffer errors.
ffmpeg -loglevel error -f avfoundation -pixel_format nv12 -framerate 30 -i "1" -t 5 -y /tmp/facetime_warmup.mp4 && \
ffmpeg -loglevel error -sseof -0.5 -i /tmp/facetime_warmup.mp4 -frames:v 1 -update 1 -y /tmp/facetime.jpg
Both cameras (parallel)
Run both commands simultaneously for multi-angle shots.
Output
- Photos saved to
/tmp/brio.jpgand/tmp/facetime.jpg - Warmup videos in
/tmp/*_warmup.mp4(can be deleted) - Photos are ~80-100KB each
Gotchas
- Close Photo Booth or other camera apps first (can conflict)
- FaceTime camera REQUIRES
-pixel_format nv12or it fails with buffer errors - 5s warmup is necessary for proper exposure
Overview
The Camera skill lets you take photos directly from your MacBook’s webcams. Choose Brio 100 for a direct front view on an external monitor or FaceTime HD for a side angle from the MacBook. Each camera is warmed up for exposure before capturing a still image, with outputs saved to /tmp for quick retrieval. To avoid conflicts, close other camera apps (like Photo Booth) before running captures.
How This Skill Works
You have two available cameras: Brio 100 (index 0) and FaceTime HD (index 1). For each camera, you warm up for 5 seconds to allow exposure adjustment, then capture a single frame from the warmup video. Brio uses a straightforward 0 input while FaceTime requires -pixel_format nv12 to prevent buffer errors. If you want both angles, run both capture commands in parallel. Outputs are saved as /tmp/brio.jpg and /tmp/facetime.jpg, with the warmup videos stored as /tmp/*_warmup.mp4 (safe to delete after capture).
When to Use It
- When you want to take a photo, picture, snapshot, or see yourself using your MacBook’s webcams.
- When you need a front-view shot (Brio) or a side/profile view (FaceTime).
- When you want to quickly compare two camera angles for a result.
- When you want a repeatable, scriptable photo capture workflow that avoids using GUI apps like Photo Booth.
Quick Start
- Choose a camera: Brio 100 (index 0) for front view or FaceTime HD (index 1) for side view, or run both for multi-angle shots.
- Run the Brio command to warm up and capture: ffmpeg -loglevel error -f avfoundation -framerate 30 -i "0" -t 5 -y /tmp/brio_warmup.mp4 && ffmpeg -loglevel error -sseof -0.5 -i /tmp/brio_warmup.mp4 -frames:v 1 -update 1 -y /tmp/brio.jpg
- For FaceTime, ensure -pixel_format nv12 and run the capture: ffmpeg -loglevel error -f avfoundation -pixel_format nv12 -framerate 30 -i "1" -t 5 -y /tmp/facetime_warmup.mp4 && ffmpeg -loglevel error -sseof -0.5 -i /tmp/facetime_warmup.mp4 -frames:v 1 -update 1 -y /tmp/facetime.jpg
- Optional: Run both commands in parallel for multi-angle shots and then retrieve /tmp/brio.jpg and /tmp/facetime.jpg.
Best Practices
- Use -loglevel error to suppress ffmpeg spam.
- Always warm up for 5 seconds to allow exposure adjustments.
- Close Photo Booth or other camera apps before capturing to avoid conflicts.
- Use -pixel_format nv12 for FaceTime to avoid buffer errors.
- If you need multiple angles, run both camera commands in parallel.
- Photos are stored as /tmp/brio.jpg and /tmp/facetime.jpg; warmups are /tmp/*_warmup.mp4 (delete when done).
Example Use Cases
- Capture a quick headshot for a profile using Brio (front view).
- Take a side-profile photo for a product page using FaceTime HD.
- Generate two angles for a documentary or demo by running both cameras in parallel.