Cameras & PTZ Control
Blackmagic Camera Control Software
Controls Blackmagic cameras (URSA Cine, PYXIS, Cinema Camera 6K, URSA Broadcast G2, Studio Camera) and the Blackmagic Camera App (iOS/Android) via the official Camera Control REST API. Lens, exposure, white balance, colour correction and…
Handlers run inside Fantago — the file is a plugin, not a standalone program. Start with the free 60-day trial.
How to connect Blackmagic Camera to Fantago
- Open the Fantago Dashboard and click Add Device.
- Pick the Blackmagic Camera (REST API) handler from the device type list (internal id
bmd_camera_rest). - Enter the IP address of your Blackmagic Camera, then set protocol HTTPS and port
4444. - Save and connect. Fantago starts polling the device and publishes its feedback variables, ready to use in panels, sequences and logic flows.
- Drag the actions below onto a panel button, a Stream Deck key, a schedule or a logic flow node.
| Protocol | HTTPS |
|---|---|
| Default port | 4444 |
| Handler version | 1.5.1 |
| Author | Fantago AI |
| Internal ID | bmd_camera_rest |
Description & Instruction
Setup: Enable "Web media manager" in Blackmagic Camera Setup → Network Access (or in the app's network settings). Protocol HTTPS, Port 4444. The camera uses a self-signed certificate, which Fantago accepts automatically.
Command Integration Guide
Controls Blackmagic cameras (URSA Cine, PYXIS 6K, Cinema Camera 6K, URSA Broadcast G2, Studio Camera 4K/6K, Micro Studio Camera 4K G2) and the Blackmagic Camera App (iOS/Android) via the official Camera Control REST API.
Setup
- On the camera, go to Blackmagic Camera Setup → Network Access and enable the Web media manager.
- Note the camera's IP address (shown in Camera Setup).
- Add the device in Fantago with that IP, Protocol HTTPS, Port 4444.
- The camera is read as soon as Fantago starts; Sync Status reads everything again at once.
About the self-signed certificate
The camera's web manager serves HTTPS with a self-signed certificate (there is no public CA involved on a LAN device). Fantago's backend accepts it automatically for all API calls made by this handler — no action needed on your side for normal use.
If you open the camera's own web address (e.g. https://<camera-ip>:4444/) directly in a browser — for example to reach /control/documentation.html — the browser will show a "connection is not private" warning. This is expected: click Advanced → Proceed to <camera-ip> (unsafe) once to view it. This only affects manual browser access, not Fantago's control of the camera.
Faders, rotaries and Stream Deck + dials
Pick one of these actions on a panel fader or rotary, or on a Stream Deck + dial: the builder fills in the position variable, the value text and the marks by itself.
- Set Lens Position / Adjust Lens — Iris (0 = closed, 100 = open, in stops between the lens' own limits), Zoom (0 = wide, 100 = tele, in mm when the lens reports its focal length) and Focus.
- Set Exposure / White Balance Position / Adjust — ISO, Gain, ND and Shutter step through the values the camera says it supports (one dial click = one value); White Balance (one click = 50 K) and Tint (one click = 1) move within the camera's range. The shutter follows the measurement set on the camera (angle or speed).
- Set Colour Correction Position / Adjust — Lift, Gamma, Gain and Offset for Luma, Red, Green or Blue, plus Contrast, Contrast Pivot, Hue, Saturation and Luma Mix. One dial click = 0.01. The ranges are those of Blackmagic's camera control protocol: Lift -2…2, Gamma -4…4, Offset -8…8, Contrast 0…2, Hue -1…1, Saturation 0…2; the Gain travel is 0…2 (unity in the middle) although the camera accepts up to 16.
- Set Audio Level Position / Adjust Audio Level — the input level of an audio channel (1, 2...).
Each value has a 0-100 position variable next to it, e.g. {{devicename_iris_pos}}, {{devicename_zoom_pos}}, {{devicename_white_balance_pos}}, {{devicename_cc_gain_red_pos}}, {{devicename_audio_1_level_pos}}. A step at an end of the travel sends nothing; a value the camera refuses (e.g. iris under auto exposure) is reported once in the log and the fader goes back to the camera's value.
Variables (feedback)
{{devicename_connected}}— 1 / 0{{devicename_record_status}}— RECORD / STOPPED{{devicename_tally_status}}— NONE / PREVIEW / PROGRAM{{devicename_power_source}}— Battery / AC / Fiber / USB / POE{{devicename_battery_percent}}{{devicename_iris_fstop}},{{devicename_zoom_mm}}(or{{devicename_zoom_normalised}}),{{devicename_focus}}{{devicename_iso}},{{devicename_gain_db}},{{devicename_nd_stop}},{{devicename_shutter}},{{devicename_white_balance}},{{devicename_tint}}{{devicename_cc_lift_luma}}…{{devicename_cc_offset_blue}},{{devicename_cc_contrast}},{{devicename_cc_pivot}},{{devicename_cc_hue}},{{devicename_cc_saturation}},{{devicename_cc_luma_mix}}{{devicename_audio_1_level}}(0-100),{{devicename_audio_1_level_db}}{{devicename_color_bars}}— ON / OFF{{devicename_product_name}},{{devicename_software_version}}{{devicename_iris_controllable}},{{devicename_zoom_controllable}},{{devicename_focus_controllable}}— YES / NO{{devicename_iso_supported}},{{devicename_gain_supported}},{{devicename_white_balance_supported}},{{devicename_color_bars_supported}}— YES / NO
Notes
- Iris is set as a real f-stop (e.g. 5.6) and Zoom as focal length in mm — the API's alternative "normalised" (0.0–1.0) fields exist too, but Blackmagic's documentation does not state which end (0 or 1) is open/closed or wide/tele, and on real hardware a normalised value of exactly
0was rejected as out of range. Physical units avoid that ambiguity. - Focus has no documented physical-unit alternative, so it still uses the normalised 0.0–1.0 range — direction (near/far) may vary by lens. Use Trigger Auto Focus where possible.
- Use the Adjust (Step) actions for relative nudges on lenses that support it.
- Not every camera/lens/product implements every control (e.g. phones running the Blackmagic Camera app have a fixed aperture and no hardware gain stage). Check the
*_controllable/*_supportedvariables (YES/NO) before assuming a failed command is a bug — the device itself returns 400/403/501 when a control isn't available on that specific unit. - This handler polls the camera every 3 seconds in the background. Colour correction and audio levels are read every 3 seconds only once a fader or dial has used them. When the camera does not answer, one warning is logged and the polling goes on quietly until it is back.
- The REST API also exposes a WebSocket event feed for push notifications (
/event/list) — not used by this handler, which relies on polling for simplicity.
Integration Examples (assuming device name "BMD_CAM_1")
http://<FantaGo_IP>:<HTTP_PORT>/sendTo/BMD_CAM_1?cmd=record_start
http://<FantaGo_IP>:<HTTP_PORT>/sendTo/BMD_CAM_1?cmd=iso_set&value=800
Blackmagic Camera control — frequently asked questions
Does Fantago support Blackmagic Camera?
Yes. Fantago includes a ready-made Blackmagic Camera (REST API) handler (version 1.5.1) that talks to the device over HTTPS, default port 4444. It is bundled with every licence and with the 60-day free trial — there is no per-device fee.
What protocol does the Blackmagic Camera handler use?
HTTPS, default port 4444. Fantago connects straight to the device over your production network, so no gateway, middleware or vendor software is needed in between.
Can I control Blackmagic Camera from a Stream Deck?
Yes. Every Blackmagic Camera action can be mapped to an Elgato Stream Deck key, to a button on a custom Fantago touch panel, to a timed schedule, or to a logic flow triggered by another device — including devices from a different manufacturer.
Can I modify the Blackmagic Camera handler?
Yes. The handler is a plain JavaScript file (bmd_camera_rest.js) that you can download from this page, edit and drop back into Fantago. You can also write your own handler from scratch — see the Developer Guide.
Control Blackmagic Camera from a single interface
Fantago drives Blackmagic Camera alongside 50+ other broadcast, lighting, audio and smart home devices — from custom touch panels, an Elgato Stream Deck, a schedule or a logic flow. One-time licence, no subscription, runs offline.