v.5.110.0#
Changes
-
Support for schedules in video stream analytics has been added — now you can set on which days and hours each analytic should run. This has allowed more precise control of system load, use of resources only when truly needed, and exclusion of event generation during irrelevant times.
Note: The new feature has been available only for video stream processing (not available for video files).
Examples of possible analytic schedules:
- Every day from 9:00 to 18:00
- Every weekday from 8:30 to 12:30
- Every 15 minutes around the clock
- Every Saturday at 23:00 for 2 hours
- The first day of each month from 00:00 to 06:00
- Monday, Wednesday, and Friday from 3:00 to 5:00
- Once a day for 24 hours from any start time
Two methods have been provided to specify analytic schedules in stream creation or update requests:
1․ Direct specification of analytic execution intervals (
analytics.schedules.start_time/end_time
):[ { "start_time": "2025-07-01T09:00:00Z", "end_time": "2025-07-01T11:00:00Z" }, { "start_time": "2025-07-02T09:00:00Z", "end_time": "2025-07-02T11:00:00Z" } ]
Such intervals can have been calculated in advance using the new request
calculate intervals
, specifying a cron expression, duration, time range, and time zone.2․ Specification of an identifier of a previously created schedule template (
analytics.schedules.schedule_id
).The template has allowed automatic generation of intervals based on given parameters (cron, duration, range) and their reuse between analytics. Template management has been performed using the new resource group
/streams/templates
.Both methods can have been combined — passing both
schedule_id
and additional intervals simultaneously. In this case, all specified intervals have been merged into one final group of working intervals.To get both unmerged and merged analytic intervals, the request
get stream analytics working intervals
with the parametermerged=true
can be used.Important:
- If intervals have not been set for analytics, it has run all the time while the stream has been processed.
- If analytics have been temporarily paused (outside the interval), but the stream has been in
in_progress
state, the agent has continued to be considered busy. - If the stream has ended or become unavailable during a pause of all analytics, the system has not issued errors or warnings until at least one analytic has reached the next working interval.
-
The ability to select a stream distribution algorithm between agents has been added.
Two options have been available:
- "simple" (default): a random available agent has been selected to process the stream (or its part).
- "percent": the least loaded agent (by percentage) among available ones has been selected.
Important: The distribution algorithm has not affected already running streams. That is, if "percent" has been set with streams already running, they have not been reallocated to less loaded agents. To redistribute load, all streams must have been stopped and restarted.
To select the algorithm, the new parameter
LUNA_VIDEO_MANAGER_STREAMS_DISTRIBUTION_ALGORITHM
must be used.See detailed information in the "Stream distribution" section.
-
The following POST responses have been updated:
- create stream
- create group
- register agent
-
New parameters have been added to the response body:
url
— relative path (e.g.,/6/streams/:id
) andexternal_url
— absolute URL (e.g.,http://<host>:<port>/6/streams/:id
) -
New header
Location
— the location of the created resource (similar tourl
).
-
A new parameter
ffmpeg_kwargs
has been added to requests in the/streams
resource group for passing additional arguments toffmpeg
used during video decoding.This parameter has allowed control of low-level
ffmpeg
settings when standard parameters have been insufficient for connection or correct stream processing. For example,rtsp_transport
may have needed specification for non-standard RTSP servers.If
ffmpeg_kwargs
has been passed, it must have contained a dictionary of additional named arguments for ffmpeg (e.g.,"rtsp_transport": "udp"
). For RTSP streams, ifrtsp_transport
has not been specified,TCP
has been used by default.Important: All parameters have been passed directly to
ffmpeg
without validation or safety checks. Use at your own risk. Errors related to invalid parameters have been shown in stream logs.See the list of possible parameters and their values in the official ffmpeg documentation.
-
Preliminary GPU access check in the Video Agent service has been added.
For estimators requiring GPU, a check for GPU device availability and access has been performed during container startup.
Previously, in case of missing proper GPU access, the service has just terminated with uninformative errors, complicating diagnosis.
Now the service logs have included the message
Check access to GPU:
, recording the check result. If access error has occurred, a message from CUDA has been output. -
An example of a Standalone-lambda running an ML model has been added to the Lambda service developer manual, in the "Standalone lambda development" section.
See detailed information in the Standalone-lambda section.
Fixed errors
-
The HTTP header
Location
has been added to responses for several OpenAPI specification resources. -
An error causing date fields not to be validated during the event creation request execution has been fixed.
Previously, an "Internal server error" with status code 500 could have occurred due to an incorrect date format.
-
The description of
human_tracking
node monitoring in the developer documentation has been fixed. Series for thehuman_tracking
analytic have been explicitly marked.See detailed information in the "Monitoring" section of the developer manual.
-
An error in the Video Agent service preventing connection to the Events service has been fixed.