Network mode¶
For multi-host capture, the GUI host runs orange and each capture host runs release/cam_server <hostname> (or start_server.sh, which auto-detects the host's short hostname; override with CAM_SERVER_NAME). Communication is over ENet using a FlatBuffers control protocol (schema in schema/ctrl.fbs).
Important caveats¶
- All
cam_serverprocesses must be running before the GUI is launched. The GUI connects to its configured endpoints at startup, not on demand. - The config preset folder (e.g.
config/network/8cam_rig/) must exist on both the GUI host and every capture host. The contents can be identical across all hosts — eachcam_serverwill only open the cameras that are physically attached to its host and silently ignore the rest. Copying the same complete preset folder to every machine is the simplest setup.
Setup walkthrough¶
1. Create endpoints.json on the GUI host¶
orange_data/config/network/endpoints.json lists the capture hosts. A template is shipped at config/network/endpoints.json.example:
{
"default_port": 34001,
"servers": [
{ "name": "waffle-0", "host": "192.168.20.60" },
{ "name": "waffle-1", "host": "192.168.20.61" }
]
}
hostaccepts a hostname or an IP.portcan be set per server; otherwisedefault_portis used.nameis the logical id (matches the argvcam_serveris started with).
The file is only needed for network mode. If it's absent, orange starts up normally and network features are unavailable; if it's present but malformed, orange prints a warning and continues.
2. Create matching preset folders¶
On every host (GUI host + capture hosts), create a matching orange_data/config/network/<preset>/ folder containing one JSON per camera in the rig (named after the camera serial). The folder can be identical across hosts.
3. Start cam_server on each capture host¶
4. Launch orange on the GUI host¶
It reads endpoints.json, connects to each server, pushes the chosen preset name, and each server opens its locally-attached cameras from its copy of the preset.
PTP¶
Multi-host capture requires PTP for sub-frame synchronization. See PTP setup.
Recordings¶
Recordings are saved under orange_data/exp/unsorted/<timestamp>/ by default; the save location can be changed from within the app or via user config.