Screen recording¶
Screen recording consists of several components:
ScreenWeb - Server application for storing/loading screen recordings
CaptureClient - Client application for capturing the user’s screen
Player - Client application for playing screen and audio recordings
MediaService - Server application for handling screen and audio recordings
Screen Web¶
Used for storing/loading screen recordings sent from user workstations. Communication is done via REST interface.
User authentication¶
CaptureClient¶
To store screen recordings, NTML authentication of the user sending the recordings via the CaptureClient application is required, i.e., the user must be logged in via a Windows domain account. No further settings in Frontstage administration are needed.
Player¶
To load screen recordings, the user must be logged in and have the appropriate permissions set in Frontstage Administration:
play screen recordings - role
AccessScreenRecord
notes - role
AccessBookmark
Configuration¶
File appsettings.json
¶
ConnectionStrings:DbDataContextConnectionString
- connection string for connecting to Frontstage DBDatabaseType - type of DB (MsSql, PgSql …)
Logging:LogLevel:Default - application logging level (default Information)
InstanceKey - under which DeviceRank the screen recordings will be stored (one must exist)
Device table¶
In the Device
table, you need to define a storage for screen recordings, the storage type is SRecScreenFileHierarchyStorage, currently blob storage is not used, but a local path to the screen recordings.
Field ConfigurationJson
- custom storage configuration, based on FileHierarchyStorage.
Example:
{
"RootDirectoryPath": "c:\\\\Atlantis\\\\ScreenArchive",
"IsArchive": false
}
The IsArchive
flag determines whether it is an archive storage or not. Archive storage serves as the target storage within the “Archiving” rule.
The InstanceKey
field is used to determine the correct storage, e.g., for ScreenWeb applications.

Storing screen recordings¶
Screen recordings are stored in the data storage and their summary metadata in the ScreenRecord
table.
Description of data in storage¶
The following files are stored in the data storage:
snapshots.xml
- contains metadata for individual snapshotsrecords.desc
- file with positions of individual snapshots in the image data filerecords.mpd
- file with image data; data is stored in binary using theMessagePack
library
ScreenRecord table¶
Meaning of individual table fields:
ScreenRecordId
- PKRecordGuid
- ID of the screen block (this ID is created in the “CaptureClient” application or in “ServiceMedia” when manipulating snapshots)FileName
- relative folder containing image data and metadataAgentName
- “Sysname” of the user account under which the screen recordings were createdStationName
- name of the station where the screen recordings were createdExecutedHorizon
- determines the level at which the screen recording is within theMediaReduction
rules [integer]CurrentReductionRate
- reduction rate of snapshots in the data block, not used yetStartTimeUtc
- start time of the data blockEndTimeUtc
- end time of the data blockFirstIndex
- starting index in the data blockLastIndex
- ending index of the data blockRecordTime
- time of recording storage or time of last manipulation with the recordingTeamName
- team name; assigned from theAgent
table at the time of recording storageComplete
- flag indicating the completed transfer of the block (the block is fully transferred from the client)AgentId
- agent ID assigned according to “Sysname” at the time of recording storage (if such exists)DeviceRank
- storage ID from theDevice
table

CaptureClient¶
Configuration¶
Parameters in the CaptureClient.exe.config file¶
BlockSize
- size of blocks in which screen data will be sent to the serverTempDir
- directory for storing data that failed to be sent to the serverCaptureMode
- screen capture mode (currently only “CPP” - using a native library is supported)RecordScreenCount
- number of snapshots in one complete block (with the sameRecordGuid
), default value = 600FrameRate
- screen capture interval [sec]Processing
- list of processing operations to be performed on the screen recording; used to reduce screen data:grayscale
- convert color component to grayscaledepth8
- only 8-bit color depthdiffscreen
- only a differential snapshot is created (graphically accelerated function)diffrect
- calculates the intersection between consecutive snapshots and sends itTempFileSize
- max. size of the temp folder, after which recordings stop being storedOnlyPrimaryMonitor
- iftrue
- only the primary monitor is captured; iffalse
all monitors are capturedFullScreenInterval
- after how many snapshots a key (full) snapshot is inserted, used for faster playback/cropping…ServiceMode
- if 1, allows the user to terminate the application (by right-clicking on the notification icon)WebRootUrl
- URL to which screen recordings will be sentValidIPList
- list of IP ranges that the station must be assigned to send screen recordings to the server
Player¶
Configuration¶
Parameters in the Player.exe.config file¶
AvgLeftTreshold
,AvgRightTreshold
- parameters for voice recording visualizationDebugIndicators
- indicators for logging, can be logged using e.g.DebugView
Bookmarks
- iftrue
, a window with notes is displayedRankingUrl
- URL for displaying the ranking page in the applicationExternalRanking
- iftrue
, an external rating application is usedWebRootUrl
- URL of the server from which voice and screen data and metadata are drawnPlayerMode
- the player can run in two modes:screen
- default application layout; adapted for playing screen and voice recordings simultaneouslyvoice
- default application layout; adapted only for playing voice recordingsMonitors
- number of displayed screens for monitor data (this setting must match the number of captured monitors)
DefaultDockConfig
- default application window layout (layout can be adjusted in the application); the layout is saved to the user’sAppData/Local
folder when the application is closed (e.g.c:\Users\Admin\AppData\Local\www.atlantis.cz\FrontStage.SRec\7.5.9060.26896
).
Media Service¶
Configuration¶
File appsettings.json
¶
ConnectionStrings:DbDataContextConnectionString
- connection string for connecting to Frontstage DBDatabaseType
- type of DB (MsSql, PgSql …)Logging:LogLevel:Default
- application logging level (defaultInformation
)InstanceKey
- identification of the active storage; if0
- works on all corresponding storages
The following keys determine what types of operations ServiceMedia
will process:
ConvertRulesProcessing
- iftrue
- voice recordings are converted (according to the setInstanceKey
)ChangeRequestProcessing
- iftrue
- conversion/creation of voice recording visualization data is performedMediaReductionProcessing
- iftrue
- manipulation with screen recordings is performed (according to the setInstanceKey
)
Device table¶
See Device table.
MediaReduction table¶
The MediaReduction
database table is used to define screen recordings.
There are 3 reduction operations:
Trimming Operation (field ReductionRate=1)
According to the records from the InboundCall, OutboundCall, and Message tables, only those screen intervals in which communication took place are preserved. The database fields Lead
and Tail
determine the time in seconds by which the interval is extended at the beginning (Lead) or at the end (Tail).
Archiving Operation (ReductionRate=98) Used for archiving screen recordings (moving them to another storage). The archival storage is specified in the Device
database table, see Device table.
Deletion Operation (ReductionRate=99) Used for deleting screen recordings.
Operations are triggered according to the TimeHorizon
field setting, which determines how many days after the record is created the operation will be performed. The fields Channel
, ProjectGroupMask
, ProjectId
, TeamsMask
, AgentId
, and LanguageId
are used to create specific rules based on these conditions.

For each time horizon, there should be a non-specific (default) rule (Channel, ProjectGroupMask, ProjectId, TeamsMask, AgentId, LanguageId
set to NULL) that is used if no specific rule exists for the screen recording.