creekX Cameras, step by step
creekX Cameras is the camera portal on a creekX server: ONVIF cameras added by address and login, recorded continuously, watched on one wall by site, and played back by time. It is licensed per camera. Footage stays on your server's disks.
What you need
- A creekX server (Install on a server) on the same network as the cameras, or one that can reach them.
- A licence key that includes cameras. A Media Server key or trial does not: it pulls any camera by its RTSP or SRT address, without the camera portal.
- Cameras that speak ONVIF (Profile S), with ONVIF turned on in their settings, and a user name and password for each. H.264 is preferred; H.265 cameras record, but most browsers cannot play H.265 live.
- Disk for recordings. Roughly: bitrate x hours. A 4 Mbit/s camera writes about 43 GB a day; 30 days of it is about 1.3 TB.
1. Activate the licence
Install and activate in one go:
curl -fsSL https://creekx.io/get.sh | sudo bash -s -- --licence-key CX-XXXX-XXXX-XXXX-XXXX
Or on a server that is already installed:
sudo creekx activate CX-XXXX-XXXX-XXXX-XXXX
More → Cameras appears once the licence includes cameras. More → Licence shows how many cameras it covers and how many are in use.
2. Add a camera
-
Make a stream for it
Streams → New stream, named after the camera: "Warehouse dock".
-
Find it, or type its address
Under Add an IP camera, choose Find cameras to search the server's network, or type the address:
192.168.1.20, or192.168.1.20:8080when its web port is not 80. -
Its login
The camera's own user name and password. Stored encrypted; never shown again. Cameras that ask for an HTTP Digest login as well as the ONVIF one are signed in with both.
-
Add camera
creekX asks the camera for its video profiles, picks H.264 first, then the largest, and pulls it over RTSP. The stream shows as live when the picture arrives. If the camera drops, creekX keeps reconnecting.
3. Group cameras by site
On the camera's stream, type a Site ("Head office", "Warehouse") and choose Save. Cameras with the same site are grouped on the wall, and a person can be limited to sites (step 6).
4. The camera wall
More → Cameras: every camera live at once, as 2x2, 3x3 or 4x4 tiles, one site or all. Click a tile for full screen; Open goes to the camera's page; Snapshot saves a still of now as JPEG. The size you choose is remembered in that browser.
Tiles play muted HLS from the server, one page at a time, so a wall on a TV or a laptop does not hold sixteen real-time connections open.
5. Recordings, playback and clips
- Recording is continuous from the moment a camera is added. Keep 7 days by default; change it per camera under Keep recordings (1 to 365 days). When the disk runs low, the oldest footage goes first; the live picture never stops.
- Playback: choose a day to see when the camera recorded, then click any moment to play from there.
- Clips: set a start and an end, name it, and choose Save clip to library. It becomes a video in your library, shared by a link like any other.
6. Who sees which site
More → People, then Camera sites on a person. Type the sites they may see, separated by commas: "Warehouse, Gate". They then see those sites' cameras only, on the wall and everywhere else, and no other stream. Leave it empty for every camera.
| Role | Cameras |
|---|---|
| Viewer | Watch live and play back recordings |
| Operator, Programmer | Also add, turn and remove cameras, set sites and retention, save clips |
| Admin, Owner | Also choose which sites each person sees |
7. When a camera goes offline
creekX emails when a camera stops sending, and again when it is back. Each camera's page shows the last time a picture arrived.
Turning a camera
A PTZ camera shows arrows and zoom buttons under its picture: hold to turn, let go to stop, and its presets in a list. A turn lasts a second at most per press, so a closed page never leaves a camera turning.
From your own software
Everything above is in the REST API, with a key from Automation:
PUT /v1/streams/{id}/camera |
Add a camera: address, username, password |
PATCH /v1/streams/{id}/camera/site |
Its site |
PATCH /v1/streams/{id}/camera/recording |
Days of recordings kept |
GET /v1/streams/{id}/camera/timeline |
When it recorded, for up to a day |
GET /v1/streams/{id}/camera/playback |
A recorded time, as MP4 |
POST /v1/streams/{id}/camera/clips |
Save a time as a library video |
GET /v1/streams/{id}/picture |
A still of now, as JPEG |
If a camera will not add
- Nothing answered: the address or port is wrong, or the server cannot reach that network.
- Refused the user name or password: check them in the camera's own app. Some cameras keep a separate ONVIF user.
- Not an ONVIF camera: turn ONVIF on in its settings, or pull it by its RTSP address instead (IP cameras).
- Not included in this licence: the licence key covers no cameras, or all of them are in use. Remove one, or ask for more.