Skip to content

platform sdk video

Andre Lafleur edited this page Oct 9, 2026 · 11 revisions

About video

In Security Center, video configuration uses related entities:

  • Video hardware: A VideoUnit represents an IP camera, encoder, or video server. VideoUnit.Cameras returns the identifiers of the associated Camera entities.
  • Logical channels: A Camera represents a video channel. Camera.Unit identifies its associated VideoUnit.
  • Streams: Camera.Streams returns the identifiers of the camera's associated streams. A VideoStream describes one stream and its compression configurations.
  • Archive roles: VideoUnit.ArchiverRole identifies the Archiver role that controls the video unit. Camera.SourceArchivers identifies the Archiver and Auxiliary Archiver roles that can supply archived video for the camera.

Stream usage by streaming type

Camera.StreamUsages returns the camera's current stream assignments. Each VideoStreamUsage associates a stream identifier with one of the StreamingType values: Live, Remote, HighQuality, LowQuality, or Archiving.

Use Camera.SetStreamUsage(StreamingType, Guid) to assign a usage to one of the streams listed in Camera.Streams.

VideoStream exposes MulticastAddress, PreferredConnectionType, SupportedConnectionTypes, and VideoCompressions. Each VideoCompressionConfiguration contains settings such as BitRate, FrameRate, ResolutionX, ResolutionY, and KeyframeInterval. For configuration examples, see About cameras.

Recording inheritance

Scheduled recording is controlled by the ScheduledRecordingModes in Camera.RecordingConfiguration. Each entry associates a recording mode with a schedule.

When UseCustomRecordingSettings is false, the camera uses the recording configuration of its controlling ArchiverRole. When it is true, the camera uses its own configuration. Changing a recording setting through Camera.RecordingConfiguration automatically enables custom recording settings for that camera.

Configure the Archiver role to define defaults for the cameras it controls, and then enable custom settings only for cameras that require different values.

Query video and archive metadata

Use report queries to retrieve events and metadata related to recorded video:

  • RecordingEventQuery: Returns camera recording events. Add the required ArchivingStarted... and ArchivingStopped... event types to its Events collection before executing the query.
  • BookmarkEventQuery: Returns bookmarks for the selected cameras.
  • SequenceQuery: Returns time periods during which recorded video is available.
  • VideoFileQuery: Returns recorded video files available from archive sources.
  • ArchiverEventQuery: Returns status events for Archiver roles.

Use the Media SDK to play, render, or export the recorded video returned by these archive sources.

CameraBookmarkEvent is the abstract base class for CameraLiveBookmarkAddedEvent and CameraPlaybackBookmarkAddedEvent.

Use Camera.AddBookmark, Camera.EditCameraBookmark, and Camera.DeleteCameraBookmark to manage bookmarks through a Camera instance. The corresponding action types are AddBookmarkAction, EditBookmarkAction, and DeleteBookmarkAction.

Video protection through Camera.AddVideoProtection, Camera.RemoveVideoProtection, Camera.StartVideoProtection, and Camera.StopVideoProtection prevents protected archive segments from being deleted by automatic cleanup.

Archive transfer types

Archive transfer copies or imports archive data between cameras, Archiver roles, and configured backup storage:

  • Backup: Copies selected archives from an Archiver to its configured backup storage.
  • Retrieval: Transfers archives from edge storage on a camera to its controlling Archiver.
  • Restore: Imports backed-up archive files into a destination Archiver.
  • Trickling: Copies archives from source Archiver roles to a destination Archiver role.

For transfer-group builders, one-time transfer services, and the StartTransfer and StopTransfer operations, see Archive transfer.

Health signals

ArchiverRole.ArchiverStatisticsCollection and AuxiliaryArchiverRole.ArchiverStatisticsCollection contain statistics indexed by server identifier. Call Engine.ActionManager.RefreshArchiverStatistics(archiver.Guid) to request updated statistics. Read the refreshed data from the ArchiverStatisticsCollectionUpdated event arguments or from ArchiverStatisticsCollection afterward.

Each entry contains active and archiving camera counts, network bitrates, and disk-group statistics. ArchiverEncoderStatistics.Description reports the current RecordingProblem, including DiskFull, CantWrite, and StreamNotReceived.

Camera.SupportsLiveStreaming is false for ghost and wearable cameras. It does not report current connectivity. Use Camera.IsOnline to inspect connectivity and Camera.Streams or Camera.StreamUsages to inspect stream configuration. VideoUnit and Camera raise IsOnlineChanged when their online state changes.

See also

Platform SDK

Plugin SDK

Workspace SDK

Media SDK

Macro SDK

Web SDK

Synergis RIO

Media Gateway

Genetec Web Player

Clone this wiki locally