Skip to content

Devices on the local network

The Devices tab automatically discovers devices on the local IPv4 network. It supports Dahua cameras, direct RTSP and HLS streams, and monitoring AITracker processing servers.

When the tab opens, AITracker selects the local subnet and starts scanning. Results appear as candidate cards showing category, vendor, address, and detected services. Configure and add opens one form for the name, category, endpoint, and optional credentials. Passwords are stored in the operating-system keyring, not in application settings.

Saved devices remain listed after an application restart. Each card shows the current connection state; a remembered camera that no longer responds remains visible as inactive. Click a card to open its persistent properties and latest runtime state in the details panel on the right. The selection follows the stable device identifier and therefore remains active when background status refreshes rebuild the cards.

After the Preview window closes, its latest received frame remains visible in the selected camera's details panel. The image is retained only in memory until the application closes; regular status probing neither opens another RTSP stream nor replaces the remembered frame.

Use Edit settings in the details panel to change the saved name, category, connection, or credentials. Editing retains the device identifier and is available even when the device is offline. AITracker never displays a stored password: empty credential fields keep the current secret, new values replace it, and Remove saved credentials deletes it explicitly. Editing is disabled while that device has an active recording.

An AITracker processing server is discovered by its diagnostic HTTP API on port 30000, 8080, or 80. AITracker verifies /health and /version, then refreshes the processing state from /status every five seconds. Its card shows the current state without camera actions. The server details panel separates connectivity from processing state. It presents the active job and progress, individual CPU, RAM, GPU utilization and GPU memory bars, and the capacity of every reported disk. Missing diagnostic data is distinguished from a valid empty device list. Connection properties are collapsed so current state and resources remain visible without scrolling. Server cards do not offer camera actions. A server using another port can be added manually by selecting AITracker server API.

The collapsible Start a new job section shows mounted media and the configured number of directory levels (three by default). Several directories can be selected with checkboxes for one processing job. Selecting a whole disk or directory covers its contents, so selected descendants are not sent twice.

You can also add a Live stream manually. Enter a complete rtsp:// or rtsps:// address, or an HTTP(S) HLS manifest ending in .m3u8, for any camera that exposes a compatible live stream. This does not require a Dahua, Hikvision, BCS, or ONVIF API. If the URL contains a username and password, AITracker removes them from the saved endpoint and stores them in the operating-system keyring. A successful first-frame check enables only Preview and Record; stream-only cameras cannot download a camera archive.

Actions are enabled from capabilities confirmed by the device:

  • Preview — open the network live view,
  • Record — select the total duration and destination directory for the live stream,
  • Download recordings — find and download multiple recordings from the camera archive.

One download window contains the parent directory, a period selector for the last 24 hours, 7 days, 30 days, 6 months, or year, and the file tree. Changing the period automatically reads the corresponding range from the camera. The camera returns files with their actual start, end, and size, and AITracker groups them by day. Each day has a fixed 00:00–24:00 timeline: recorded spans are highlighted and gaps use diagonal hatching. Solid gray portions lie outside the range read from the camera and do not count as missing material. Boundary days, such as those in the last 24 hours, initially select only the actual query interval. Move the handles or enter boundaries in five-minute increments. AITracker downloads every whole file that intersects the half-open range; for example, a 07:05 start also includes a file that began at 07:00. The summary shows the resulting file boundaries, known size, and missing material. Expand Details to inspect filenames. Files with an unknown or invalid duration are listed separately and require an explicit checkbox selection. The selection is downloaded as one cancellable operation. Files completed before cancellation remain available. After the selection window closes, the downloaded/selected progress is shown directly on that camera's card. This allows downloads to be queued from multiple cameras at once, with each card showing its own queue state, progress, and result.

If a complete archive file cannot be moved to its final name, the camera card shows its preserved temporary location separately from files already published at their final destinations.

Downloaded files use the same hierarchy as local RTSP recordings: IP_CAMERA_DAHUA_<device ID>/<DDMMYYYY>/. They retain the camera's native format, such as .dav, and receive DDMMYY_HHMMSS_mmm.dav names based on the start time reported by the camera.

The selected duration must be at least five minutes and divisible by five. AITracker writes consecutive five-minute files under a directory specific to the device category, vendor, and persistent identifier, then groups them by day. Files are named DDMMYY_HHMMSS_mmm.mp4. One continuous stream connection produces all files through GStreamer splitmuxsink, avoiding reconnect gaps between segments. A dedicated recorder owns capture, so the preview reader does not decode video while saving it. The card shows a connecting state first and starts material-time progress only after media arrives and the first fragment opens. Stream and storage errors are reported without waiting for the selected recording interval to finish.

Recording does not open a separate progress dialog. The camera card indicates whether the action is queued, recording, or finalizing its MP4. While recording, the progress bar shows the percentage together with the recorded and requested material times. The recording button can stop and safely finalize the current file early. Stream recordings and archive downloads share one queue of up to four parallel operations; additional actions wait for an available slot.

Remove remains available for inactive cameras. After confirmation, it deletes the saved configuration and its operating-system keyring credentials; it does not change the physical camera configuration.

The Liczbox category is present in the interface but currently has no network client support.