Workflow
1
Enable or start live view
POST /api/cameras/{id}/live-view/enable or POST /api/cameras/{id}/live-view/start2
Get frames
GET /api/cameras/{id}/live-view/frame returns a single JPEG frame3
Optional: enable OSD
POST /api/cameras/{id}/live-view/osd-enable4
Get OSD frames
GET /api/cameras/{id}/live-view/osd-frame5
Stop live view
POST /api/cameras/{id}/live-view/stopEndpoints
Get Frame
Returns the latest live view frame as a JPEG image. Streaming must be started first.OSD Overlay
Enable on-screen display — the camera renders its UI (exposure info, focus points, histogram, etc.) as an overlay image composited onto the live view frame.Two things build on live view. Focus overlays are drawn from AF Frame Position and Remote Touch and Tracking, which report frame coordinates normalized to whatever size you render at. And the OSD frame paired with Button Press is enough to drive the camera’s own menus remotely — press, then read the screen back.
Polling for continuous frames
For a render loop at ~15 fps, pollGET /api/cameras/{id}/live-view/frame at roughly 66 ms intervals. The endpoint returns the latest JPEG the server has captured — the camera-side frame rate is the actual cap.
See the live-view polling example for full client implementations in TypeScript, Python, and Swift.
