Repository navigation
platform sdk video
In Security Center, video configuration uses related entities:
-
Video hardware: A
VideoUnitrepresents an IP camera, encoder, or video server.VideoUnit.Camerasreturns the identifiers of the associatedCameraentities. -
Logical channels: A
Camerarepresents a video channel.Camera.Unitidentifies its associatedVideoUnit. -
Streams:
Camera.Streamsreturns the identifiers of the camera's associated streams. AVideoStreamdescribes one stream and its compression configurations. -
Archive roles:
VideoUnit.ArchiverRoleidentifies the Archiver role that controls the video unit.Camera.SourceArchiversidentifies the Archiver and Auxiliary Archiver roles that can supply archived video for the camera.
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.
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.
Use report queries to retrieve events and metadata related to recorded video:
-
RecordingEventQuery: Returns camera recording events. Add the requiredArchivingStarted...andArchivingStopped...event types to itsEventscollection 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 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.
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.
- About cameras: Camera configuration, recording, manual recording, video protection, bookmarks, and stream usage.
- Ingesting third-party video: Receiving live RTSP or RTP video and importing recorded files through offline devices.
- Archiver and auxiliary archiver roles: Archiver configuration, statistics, encryption, and certificates.
- Archive transfer: Backup, retrieval, restore, and trickling.
- Platform SDK report manager: Executing report queries and processing results.
- Platform SDK report manager query reference: Filters and result schemas for video, archive, and transfer queries.
- Media SDK overview: Live and playback rendering, export, and pan-tilt-zoom (PTZ) control.
- Overview
- Connecting to Security Center
- SDK certificates
- Referencing SDK assemblies
- ASP.NET hosting
- SDK compatibility
- Migrating to modern .NET
- Entities
- Entity cache
- Entity loading, cache, and query options
- Detecting entity changes
- Entity change event reference
- Transactions
- Security Center events
- Actions
- Security Desk
- Custom events
- Event-to-actions
- Managing macros
- ReportManager
- ReportManager query reference
- Access control raw events
- DownloadAllRelatedData and StrictResults
- Privileges
- Partitions
- Entity write restrictions
- About custom fields
- About video
- About cameras
- Enrolling a video unit
- Ingesting third-party video
- Archiver and auxiliary archiver roles
- Archive transfer
- About access control
- About cardholders and credentials
- About doors, areas, elevators, and access points
- About access rules and schedules
- About access control units and interface modules
- Enrolling an access control unit
- Door templates
- Visitors
- Mobile credentials
- About threat levels
- About alarms
- About incidents
- Maps
- Logging
- Overview
- Localization
- Certificates
- Lifecycle
- Threading
- State management
- Configuration
- Restricted configuration
- Events
- Queries
- Request manager
- Database
- Entity ownership
- Engine extensions
- Entity mappings
- Server management
- Custom privileges
- Custom entity types
- Resolving non-SDK assemblies
- Deploying plugins
- Modern .NET support
- Overview
- Localization
- Certificates
- Creating modules
- Tasks
- Pages
- Components
- Tile extensions
- Services
- Contextual actions
- Custom actions
- Options extensions
- Configuration pages
- Monitors
- Shared components
- Commands
- Extending events
- Map extensions
- Timeline providers
- Image extractors
- Credential encoders
- Credential readers
- Cardholder fields extractors
- Badge printers
- Content builders
- Dashboard widgets
- Incidents
- Logon providers
- Pinnable content builders
- Custom report pages
- Overview
- Getting started
- Media file formats
- MediaPlayer
- VideoSourceFilter
- MediaExporter
- MediaFile
- G64 converters
- FileCryptingManager
- PlaybackSequenceQuerier
- PlaybackStreamReader
- OverlayFactory
- PtzCoordinatesManager
- AudioTransmitter
- AudioRecorder
- AnalogMonitorController
- Camera blocking
- Overview
- Getting started
- Referencing entities
- Entity operations
- About access control in the Web SDK
- About video in the Web SDK
- Users and user groups
- Partitions
- Custom fields
- Custom card formats
- Actions
- Events and alarms
- Incidents
- Reports
- Tasks
- Macros
- Custom entity types
- System endpoints
- Performance guide
- Reference
- Endpoints
- Constants
- Enumerations
- Under the hood
- Troubleshooting