AKStream.Next · 文档中心

Find moments in recordings with an image or text

Find moments in recordings with an image or text

Recording semantic search is a separately licensed advanced module. Recording Center → Image and text search accepts a Chinese description or reference image and returns moments in retained source recordings. The node needs a working image and text encoder for the same model space and an available vector service. A detected accelerator alone does not mean the model has passed a real inference check.

Enable the module and select channels

  1. Confirm the Recording AI Search entitlement in the license center.
  2. Enable the module under Configuration Center → Recording semantic search. Select a validated model backend, sample rate, and node resource budget.
  3. Enable automatic recording and bind a recording schedule for each channel, then select Include in image and text search. The checkbox remains visible but disabled when the module is unavailable.
  4. Check the module status for the model, Qdrant, active sampling streams, and coverage. Unverified coverage means that results may omit recordings.

Normal indexing samples the live stream while it is being recorded, subject to a budget. It does not batch-read newly finalized recording files. Turning off recording stops new encoding for that channel. Existing results remain searchable while their source files exist; deleting a recording also removes its associated search results.

Search and play a match

Enter a description such as “a person wearing a yellow coat enters the doorway,” or upload a reference image. Optionally filter participating channels and time, then search. Each result identifies the device, channel, source file, time, and similarity. The result list prepares video previews gradually; opening one result seeks to the matched time in a playback dialog.

Similarity is a model ranking, not proof that the described object is present. Play the source recording to verify it. Deleted files, unavailable nodes, and insufficient playback permission can make a result unplayable.

Image mode accepts one JPG/PNG reference image up to 5 MiB by choosing a file or dropping it into the search panel. It displays a thumbnail, filename and dimensions, with replace and remove controls. Click the reference thumbnail to view the full image in an enlarged dialog; use Escape, Close or the backdrop to return. Search is also available under Assets → Current channel → Recordings. It initially selects the current channel; operators can change to another participating channel or all participating channels. Result cards emphasize time and similarity, with device, stream and node identifiers under source details. Completed hit previews retain static thumbnails; opening or closing recording playback does not seek those thumbnails again.

The Qdrant storage input in Recording AI Search settings displays the current path. Its directory picker browses the server filesystem and can create and validate an empty directory. Applying a change migrates existing vectors with a brief search interruption and retains the old directory. Unknown nonempty targets and paths overlapping the source are rejected before application.

Configure search during first installation

Select Recording semantic search in the first-run feature step. This also enables recording and managed MediaServer. Choose a model and inference backend, then activate a valid module license and select participating channels after installation.

Model Paired image/text space Selection guidance
Chinese-CLIP RN50 chinese-clip-rn50-official-v1 Validate Chinese descriptions, similarity and throughput with local samples
Chinese-CLIP ViT-B/16 chinese-clip-vit-b-16-official-v1 Chinese image/text matching with a verified loading and runtime budget
SigLIP2 Base 224 siglip2-base-224-official-v1 Separate model space; validate the query language and local samples

Queries only use vectors from the selected model space. A new space returns empty results until indexing creates matching vectors; switching back can use retained valid indexes. Offline packages include paired encoders and tokenizer assets, without sending frames to an external model service.

In Storage and security, an empty Qdrant directory uses RecordingSearch/Qdrant/storage under the first recording root. Use the server directory picker to choose another path. In Docker, select a persistent mounted directory so container recreation retains vectors.

Choose a backend for the node

Auto selects an available backend for the hardware and model. Linux NVIDIA uses CUDA, Intel GPUs use OpenVINO, RK uses RKNN, and Apple Silicon uses CoreML (configuration value Mps). CPU is available for compatibility checks. Hardware visibility, successful model loading and complete recording/search acceptance are separate checks. Windows Intel GPU deployments also require real model and business validation.

CUDA Docker deployments need explicitly mapped GPUs and NVIDIA driver interfaces; Intel GPU containers need /dev/dri. Compute libraries are delivered inside the image. Mounting host compute libraries does not verify offline dependency closure. Actual multi-GPU/NPU concurrency remains bounded by node resource budgets.

Shared host input avoids pixel transport from Broker to C# and extra managed arrays. CUDA mapped host input and Intel RemoteTensor have their own device boundaries. Decoding, layout conversion and output readback still perform memory operations; these paths do not establish copy-free end-to-end processing. Verify the effective backend and business results on the deployed node.

Recover missing indexes manually

Reading frames from recording files is a recovery path and is off by default. An administrator can temporarily enable file recovery indexing, submit specific recording file IDs, then turn the switch off. Recovery remains bound by file concurrency and node resource limits. A separate historical sweep switch is also off by default.

Troubleshoot empty results

Confirm that the channel was actually recording and selected, that the source file still exists, and that the model and Qdrant are ready. Check capacity drops and paused recovery jobs. When the API reports coverage: "Unverified", an empty result does not establish that the content is absent from every recording. See Recording semantic search API for server integration.