OSC: iPhone Camera Commands
The iPhone camera app runs a separate OSC server on port 10000 for direct camera control. These commands are sent to the iPhone’s IP address, not the iPad.
The port is advertised in the Bonjour TXT record as oscPort=10000.
Camera control
| Address | Args | Description |
|---|---|---|
/pmix/camera/zoom |
float 0–1 | Set normalized zoom |
/pmix/camera/focus/point |
float, float | Tap-to-focus (x, y normalized) |
/pmix/camera/focus/manual |
float 0–1 | Manual lens position |
/pmix/camera/focus/auto |
int 0/1 | Enable continuous auto-focus |
/pmix/camera/exposure |
float | Exposure compensation (EV) |
/pmix/camera/exposure/auto |
int 0/1 | Enable continuous auto-exposure |
/pmix/camera/wb/manual |
float, float | White balance (temperature, tint) |
/pmix/camera/wb/auto |
int 0/1 | Enable continuous auto-WB |
/pmix/camera/torch |
— | Toggle torch |
/pmix/camera/switch |
— | Toggle front/back camera |
/pmix/camera/ultrawide |
int 0/1 | Enable ultra-wide lens |
/pmix/camera/screen/dim |
— | Toggle screen dim |
/pmix/camera/capture/mode |
int 0/1 | 0=camera, 1=screen share |
Device control
| Address | Args | Description |
|---|---|---|
/pmix/camera/recording/start |
— | Start device recording |
/pmix/camera/recording/stop |
— | Stop device recording |
/pmix/camera/recording/query |
— | Query recording status |
/pmix/camera/keyframe |
— | Request keyframe |
/pmix/camera/ping |
string | Sync ping with UUID |
/pmix/camera/state/query |
— | Request full state dump |
SRT control
| Address | Args | Description |
|---|---|---|
/pmix/camera/srt/start |
float, float, float, string | port, latencyMs, bitrateKbps, host |
/pmix/camera/srt/stop |
— | Stop SRT |
Camera feedback
The iPhone sends state updates back to the controller:
| Address | Args | Rate |
|---|---|---|
/pmix/camera/fb/zoom |
float, float, float, float | On change |
/pmix/camera/fb/focus |
string, float | On change |
/pmix/camera/fb/exposure |
string, float, float, float | On change |
/pmix/camera/fb/wb |
string, float, float | On change |
/pmix/camera/fb/torch |
int, int | On change |
/pmix/camera/fb/camera |
string | On change |
/pmix/camera/fb/battery |
float, string | Every 5s |
/pmix/camera/fb/thermal |
string | Every 5s |
/pmix/camera/fb/storage |
int | Every 5s |
/pmix/camera/fb/perf |
float x6 | Every 5s |
/pmix/camera/fb/recording |
int, float, float | 1 Hz when recording |
Examples
# Set zoom to 50%
oscsend <iphone-ip> 10000 /pmix/camera/zoom f 0.5
# Tap-to-focus at center
oscsend <iphone-ip> 10000 /pmix/camera/focus/point ff 0.5 0.5
# Toggle torch
oscsend <iphone-ip> 10000 /pmix/camera/torch
# Set exposure compensation to +1 EV
oscsend <iphone-ip> 10000 /pmix/camera/exposure f 1.0
# Switch camera (front/back)
oscsend <iphone-ip> 10000 /pmix/camera/switch
# Request full state
oscsend <iphone-ip> 10000 /pmix/camera/state/query
# Listen for feedback
oscdump 10001
Replace <iphone-ip> with your iPhone’s IP address.