Skip to content

Documentation: Image Sequence Node

Overview

The Image Sequence Node is an action node that captures several consecutive images (snapshots) from one or more video channels over a defined period of time, and composes them into a collage-style grid in a single output image.

Unlike the Get Snapshot node, which takes a single photo, this node allows you to reconstruct the temporal sequence of what happened in front of the camera (for example, the seconds before and after an alarm), delivering a mosaic-style summary view that is very useful as evidence or for AI analysis.


When to use this node?

Use this node when you need to:

  • Capture the temporal evolution of an event, not just a single instant (for example, see the sequence of how a person approaches a restricted area).
  • Generate a collage-style image that shows multiple frames in a single image, easy to attach to a notification or report.
  • Produce a visual set of frames to send to an AI model that analyzes motion or changes between frames.
  • Document as evidence the sequence of an industrial incident (for example, the seconds around an emergency stop on a production line).

Node Configuration

The node has two configuration tabs at the top: Form and JSON Editor.

Empty configuration of the Image Sequence node

Form View

1. Objects *Required

Allows you to select one or more video channels from which snapshots will be taken. - Click the Select objects button to open the selector modal. - Navigate through the Devices tab, expand the camera or NVR, and check the desired video channel(s). - Confirm with Done. Selected objects are displayed as tags that you can remove individually.

Object selection modal

2. Snapshot capture interval *milliseconds

Defines the time in milliseconds between each individual capture. A smaller value generates more frames (smoother sequence); a larger value generates fewer, more spaced-out frames. Minimum value: 100.

3. Sequence time *seconds

Defines the total duration in seconds during which images will be captured. For example, with an interval of 100 ms and a sequence time of 5 seconds, the node will take captures for 5 seconds.

4. Grid size

Defines the dimensions of the output mosaic, in a square shape. The value is the side of the grid: - 2 = 2x2 grid (4 cells) - 3 = 3x3 grid (9 cells) - 4 = 4x4 grid (16 cells)

5. Grid resolution width / height *pixels

Defines the width and height in pixels of the final composed image (for example, 1920 x 1080).

Configured form of the Image Sequence node


JSON Editor View

In the JSON Editor tab you can view and directly edit all node parameters:

JSON Editor view of the Image Sequence node


JSON Structure (Input Parameters)

Below is the JSON structure generated when configuring the node:

{
  "objects_ids": [
    "onvif_standard.video_channel.28.VideoSourceToken-0"
  ],
  "snapshopt_capture_interval_in_milliseconds": 100,
  "sequence_time_in_seconds": 5,
  "grid_size": 2,
  "grid_resolution_width": 1920,
  "grid_resolution_height": 1080
}

JSON Fields

Field Type Description
objects_ids array (string) List of video channel IDs (video_channel) from which snapshots will be taken.
snapshopt_capture_interval_in_milliseconds number Interval in milliseconds between each capture. Minimum 100.
sequence_time_in_seconds number Total duration in seconds of the sequence capture.
grid_size number Side of the output grid (e.g., 2 = 2x2, 3 = 3x3).
grid_resolution_width number Width in pixels of the final composed image.
grid_resolution_height number Height in pixels of the final composed image.

NOTE: The field name snapshopt_capture_interval_in_milliseconds contains a typo inherited from the system (snapshopt instead of snapshot). If you edit the node from the JSON Editor tab, you must write it exactly as shown for the node to recognize it.


Output: Where the node's data comes from

When the action executes successfully, the node generates the composed image (mosaic) with the sequence of captures and returns in its Output the URL of the resulting image file:

{
  "url": "http://netsocs-driverhub-service:3196/public/seq-45cb1228-2e71-4b04-815d-36092f930d6e.jpg"
}

Using the output in subsequent nodes

To reference the composed image URL in subsequent nodes (for example, to attach it to a notification or send it to an AI node), use the node's key (node_key):

{{node_key.url}}

(Remember to replace node_key with the key automatically assigned to the node on the canvas.)

Special Case: URL Access (Internal vs. Public Routing)

As with the Get Snapshot node, the returned URL uses the internal Docker network addressing (http://netsocs-driverhub-service:3196/public/), which is only accessible within the private container network.

To view the image publicly, replace the internal path with the public path of your instance's domain:

  • Internal path (within Docker): http://netsocs-driverhub-service:3196/public/
  • Public path (user access): https://<instance-domain>/api/netsocs/dh/public/

Usage Examples

Example 1: Sequence evidence upon emergency stop

Use case: When an emergency stop is activated on a production line, a 5-second sequence is captured from the machinery area camera and a 2x2 mosaic is generated and attached to the notification sent to the supervisor.

  • Trigger: Emergency stop event.
  • Objects: Video channel of the machinery area camera.
  • Sequence time: 5 seconds | Interval: 100 ms | Grid size: 2.
  • Subsequent use: {{image_sequence_node.url}} in a notification node.

Configuration JSON:

{
  "objects_ids": [
    "onvif_standard.video_channel.28.VideoSourceToken-0"
  ],
  "snapshopt_capture_interval_in_milliseconds": 100,
  "sequence_time_in_seconds": 5,
  "grid_size": 2,
  "grid_resolution_width": 1920,
  "grid_resolution_height": 1080
}


Example 2: Higher-detail mosaic for AI analysis

Use case: Upon a motion detection event in a warehouse, a longer sequence with more frames (3x3 grid) is captured and sent to an AI analysis node that determines whether there is human activity.

  • Objects: Video channel of the warehouse camera.
  • Sequence time: 9 seconds | Interval: 500 ms | Grid size: 3.

Configuration JSON:

{
  "objects_ids": [
    "onvif_standard.video_channel.28.VideoSourceToken-0"
  ],
  "snapshopt_capture_interval_in_milliseconds": 500,
  "sequence_time_in_seconds": 9,
  "grid_size": 3,
  "grid_resolution_width": 1920,
  "grid_resolution_height": 1080
}


Validation and Errors

| Condition / Common cause / fix | | :--- | :--- | | No object selected | Open the selector with Select objects and check at least one video channel. | | The image is not generated | Verify that the driver/video engine of the camera(s) is connected and streaming. | | Too few or too many frames | Adjust the ratio between the interval (ms) and the sequence time (s) according to the desired number of frames. | | The image is not viewable from the internet | Remember to convert the internal Docker URL to its public path (see the warning above). |


Best Practices

  • Balance interval and duration: Calculate how many frames you need (total_time / interval) and adjust the grid_size so the grid accommodates them properly.
  • Name the node descriptively: Change the node name on the canvas (e.g., "Machinery zone sequence") to easily use its url variable.
  • Combine with AI or notifications: Take advantage of the mosaic by attaching it to alerts or sending it to image analysis nodes with AI.
  • Mind the resolution: Very high resolutions generate heavier images. Adjust grid_resolution_width/height according to the use case (evidence, messaging, analysis).