Advanced
Under the Advanced tab you can find two setting sections: Edge Recording and Date and Time.
Date and Time
In this section you can select how the clock in the camera should be configured. The time synchronization is done on base of the Universal Time Coordinated (UTC). However, UTC does not specify the time zone.
The following setting options are available:
Setting |
Description |
---|---|
No time synchronization |
Select this option to not set any time synchronization. |
Synchronize with G-Core Server |
Select this option to set the time in the camera to the time used by the computer on which the G-Core server is running. If you also enable the setting Set time zone with G-Core time zone, the camera will also be setup with the time zone from the G-Core server. |
Synchronize with NTP |
Select this option to set the time in the camera using the Network Time Protocol (NTP). |
Edge Recording
Subject to license
In this section you have the following settings:
Setting |
Description |
---|---|
Recordings from sd-card on camera will be received ... |
Select whether the recordings from the SD card shall be received in realtime or as fast as possible. |
Extend edgerecording footage at beginning and end with [...] seconds |
Set the duration (in seconds) of the edge recording at the beginning and end for the requested footage from the SD card. This way, you avoid missing images between the original and the edge recording channel. |
Maximum age of last recording for cyclic recordingcheck: [...] minutes |
Set the amount of minutes used as the maximum age of the last recording for the cyclic recording check. |
Detailed information on the edge recording functionality and related settings can be found below:

Edge recording makes it possible to import video and audio recordings from a memory card used in the camera into G-Core. During this process, G-Core identifies any gaps in its own recording and fills these gaps with the video and audio data from the memory card.
To this end, G-Core starts permanent recording on the camera to the memory card.Core.
If gaps are found in the video stream from the camera to the G-Core server or if the G-Core server fails completely, these periods are detected, exported by the camera from the memory card and transferred to G-Core.
This subsequent transfer of materials does not, however, take place on the original channel, instead it happens over a second media channel that must be configured for edge recording.
Using the failover functionality of G-SIM, it is possible to display these two separate media channels as one channel in G-SIM.

The camera needs to support the ONVIF Profile G. Check with the manufacturer whether the camera is certified for an ONVIF Profile G.
Formatting and initial use of the memory card must be performed using the web interface of the camera.
For longer service life and better storage utilization, formatting the memory card using the “ext4” file system is recommended. However, it will then not be possible to read this card using a Windows computer.
If the card will be removed from the camera and read using a Windows computer, the card needs to be formatted using the “vfat” file system.
To continuously delete older entries and replace them with new entries, it is important to activate the function Enable automatic disk cleanup and enter sufficiently large values for the setting Remove recordings older than.

-
Under Media channels / Hardware > Hardware, create an ONVIF plugin with the associated media channel and check whether you receive images.
-
To activate edge recording, create an edge channel in the Hardware module list.
-
To do so, right click on the respective plugin node and select Add edge channel.
An edge channel is added to the plugin.
-
Go to Media channels > Media channel configuration and add the media channel.
In this media channel, you will only see live images when the G-Core server is currently querying images from the memory card. Most of the time, you will not see any images here.
Media channel setting options:
G-Core will only identify gaps during times when a recording is supposed to take place. If the original media channel is not configured to record, due to permanent recording or an event, then this gap will not be subsequently filled from the memory card.
In case of a complete failure of the G-Core server, however, this downtime in its entirety is always considered to be a gap and will be requested from the camera later. The complete downtime of the server is thus independent of the recording settings of the original media channel.
Using the recording settings for the edge media channel you can control the times at which the G-Core server will retrieve the missing media data from the camera.
How to ensure recording:
You can ensure recording by either using time ranges (see G-Core documentation) or with permanent recording:
-
Under Media channel configuration, click on the Permanent recording node of the respective media channel. The Settings and Permanent recording tabs are available now.
-
Under the Permanent recording tab, activate the Permanent recording setting.
The settings Video profile and Interval have no effect on the edge media channel. It is only necessary to ensure that at least one video profile is selected.
The resolution and frame rate of the recording to the memory card is always based on the settings for the original media channel.

There are two ways to limit the network load associated with restoring lost video data.
In the case of a simultaneous interruption to the connection to all cameras and the resulting restore process, the video data from all cameras is requested through the network as quickly as possible.
The following options are available for limiting the network load:
Name |
Description |
---|---|
SpeedControl |
There are two speeds for transferring the media data from the memory card to the G-Core server. 1) In realtime This means, the images are transferred from the memory card at the speed at which they were recorded. Example The recording is one hour long at 5 fps. In this case, images are transferred from the camera to the G-Core server at 5 fps and the transfer will also take one hour. 2) As fast as possible This means, the images will be transferred from the memory card to G-Core at the maximum speed that the camera permits. Example The recording is one hour long at 5 fps. In this case, the data is transferred at 30 fps and all images of the one-hour recording can be transferred within 10 minutes. |
Number of video streams |
It is possible to limit the number of video streams that can be simultaneously transferred from the SD cards to the G-Core server. This option is off by default and all channels request their video in parallel. To activate it, open the Windows registry editor (Start > Run > Regedit). Under the path
The values can be changed during the G-Core server runtime and are applied directly. Windows Registry Editor Version 5.00
|
Extend requested footage from memory card |
A gap detected by the G-Core server will be requested from the camera. The camera might not send exactly this requested time span. There might be a few seconds missing at the beginning and end. To avoid this, use the setting Extend edgerecording footage at beginning and end with [...] seconds (see Edge Recording). |

The list of video material that still needs to be retrieved from the camera's SD card can be manipulated by actions. This is mainly intended for G-SIM and the "N: M Failover" functionality.
The following actions have been introduced:
Name |
Description |
---|---|
EdgeRecAddTimeRange |
Edge recording add time range The time range specified with StartTime and StopTime is entered in the list of time ranges to be downloaded from the camera. The action is only valid if StartTime and StopTime are present or if both do not exist. If both are not available, a time range from the time of reception of the action is entered as StopTime and StopTime minus 5 minutes for StartTime. No gaps will be added to the list, which will be the case in the future. Only gaps up to the current date/time can be inserted. An information entry is made in the log file:
|
EdgeRecIgnoreTimeRange |
Edge recording ignore time range The time range specified with StartTime and StopTime is not queried by the edge recording channel. If this time range was already included in the list of time ranges to be downloaded, this time range is removed from the list. Therefore, this gap is not within the channel for edge recording. This action is mainly intended for the GSIM N: M RecorderFailover feature. GSIM will use this action to control the Main NVR. Action is only valid for StartTime and StopTime An information entry is made in the log file:
|
EdgeRecAllFine |
Edge recording all fine notifications This action is sent by the G-Core server to indicate the date and time up to which all recordings on the original and the edge channel are valid. The action is sent only for the original media channel. But the transmitted date/time is the combined combination of original and edge recording channel. |

In order to be able to monitor the information about gaps that still need to be transferred and downtimes of the entire system, a log file is created on the hard drive for each ONVIF plugin. These files can be found in the following path: C:\ProgramData\Gng\Server\EdgerecordingLogs
.
The key files are OnvifIPC.dll_Number_X_GapList.txt and OnvifIPC.dll_Number_X_GapListBackup.txt. These two files are created for each ONVIF plugin and maintained by the G-Core server.
These files are backup copies of the original file and can be used in case a file is defective.
All time entries in these files are UTC times and most likely do not correspond to the times that are displayed in G-Core. UTC time is a global time that does not use time zones and therefore differs from the time shown in the G-Core system based on the time zone and summer/winter time.
The following entries can be seen in the files:
Name |
Description |
---|---|
LastTimeRunning=20161111T123811.574Z |
This time is rewritten every 30 seconds and is used to identify a complete failure of the system. |
LastOriginalPicture=20161111T123824.178Z |
This time is rewritten with every regularly incoming image on the original channel. If a gap of 10 seconds is identified from one image to the next, this is considered a gap and is registered as a gap below. |
LastEdgeChannelPicture=20180305T142451.938Z |
Time defines up to which date and time the recording is available without interruption, combined in the original and in the recording channel. |
AddionalInfos=IP-Address of Camera: 10.1.1.60 |
Here you can see the IP address of the camera for this log. |
Gap=20161111T123742.623Z-20161111T123819.331Z |
Here you can see multiple entries of Gap. Each entry corresponds to a gap in media data that still needs to be retrieved from the camera and inserted into the G-Core system. |
GapFileEnds - All time-values are displayed as UTC |
The last line serves as a signal that the file ends here. |

For a deeper look into the processes associated with edge recording, you can look at another log file for each camera. To this end, the following registry key needs to be set:
[HKEY_LOCAL_MACHINE\SOFTWARE\Geutebrueck\Gng\Server\IPCameras\Edgerecording] "Log.EnableLog"=dword:00000001
If this key has been set and the G-Core setup retransmitted, the log files with the name OnvifIPC.dll_Number_x.txt will be saved in the folder C:\ProgramData\Gng\Server\EdgerecordingLogs
.
Example Example 1
A gap from 13:53:06,679 to 13:53:47,393 is reported as pending for transfer. Overall, the G-Core system currently needs to look for 1 gap.2016/11/11 14:56:23,495 GMT+01:00 ---> Searching for: 20161111T135306.679Z-20161111T135347.393Z. Current Size of Gaps: 1
All current gaps are listed:2016/11/11 14:56:23,495 GMT+01:00 Gap=20161111T135306.679Z-20161111T135347.393Z
There is only output that has recordings on the camera. The camera reports here that it only has images up to 13:50:54:000.2016/11/11 14:56:23,495 GMT+01:00 Found recordings: 20161111T120909.000Z-20161111T135054.000Z on camera with Recordingtoken: O2
This means that the sought-after period is not present on the camera. The system waits a short period and then queries again.
This behavior is normal since the camera data is first stored to a temporary file, only becoming accessible for G-Core at a later point in time.2016/11/11 14:56:23,495 GMT+01:00 ---> Found non fitting Recording.
2016/11/11 14:56:23,495 GMT+01:00 Pictures found in this range: 20161111T120909.000Z-20161111T135054.000Z
Information about the temporary file: For the E3 camera, a check is also performed as to whether the recording is located on the memory card. Using
http://ip/cgi-bin/sd_list_file.cgi?
you receive the following list. When the page is queried repeatedly you should see a steadily increasing file “recording.tmp”. This file contains the most recent recordings that are not yet accessible externally. Only once the file has been copied to an *.avi file is it accessible for G-Core.
Example Example 2
This example is similar to example 1. Except, in this case a matching portion was found and the data was streamed from the camera to the G-Core server.2016/11/11 2:58:32 PM,597 GMT+01:00 ---> Searching for: 20161111T135306.679Z-20161111T135347.393Z. Current Size of Gaps: 1
2016/11/11 14:58:32,597 GMT+01:00 Gap=20161111T135306.679Z-20161111T135347.393Z
2016/11/11 14:58:32,597 GMT+01:00 Found recordings: 20161111T120909.000Z-20161111T135730.000Z on camera with Recordingtoken: O22016/11/11 14:58:32,597 GMT+01:00 ---> Found for: 20161111T135306.679Z-20161111T135347.393Z at O2
2016/11/11 14:58:32,628 GMT+01:00 Start streaming with this URL: rtsp://10.1.1.60/playback?recordingtoken=O2 with send stream in fast speed
2016/11/11 14:58:32,628 GMT+01:00 Start streaming with Range: 20161111T135306.679Z-20161111T135347.393Z
2016/11/11 14:58:56,692 GMT+01:00 Stream did stop. Last picture from Stream: 20161111T135347.299Z
Example Example 3
The G-Core server automatically starts permanent recording on the camera. This recording is checked every 5 minutes and restarted if necessary. The following entries are repeated every 5 minutes. The second-to-last line is important: SetRecordingJobMode for RecordingJob: RJ2 to Mode: Active. Result: 0
The recording is started here. If result = 0, recording is ensured.2016/11/11 15:09:12,672 GMT+01:00 GetRecordings: Will search for SourceName: Geutebrueck
2016/11/11 15:09:12,707 GMT+01:00 GetRecordingsResult: RecordingItems found: 9
2016/11/11 15:09:12,707 GMT+01:00 GetRecordingsResult: RecordingToken: O1 got SourceName: O1
2016/11/11 15:09:12,707 GMT+01:00 GetRecordingsResult: RecordingToken: A1 got SourceName: A1
2016/11/11 15:09:12,707 GMT+01:00 GetRecordingsResult: RecordingToken: M1 got SourceName: M1
2016/11/11 15:09:12,707 GMT+01:00 GetRecordingsResult: RecordingToken: N1 got SourceName: N1
2016/11/11 15:09:12,707 GMT+01:00 GetRecordingsResult: RecordingToken: R1 got SourceName: R1
2016/11/11 15:09:12,708 GMT+01:00 GetRecordingsResult: RecordingToken: T1 got SourceName: T1
2016/11/11 15:09:12,708 GMT+01:00 GetRecordingsResult: RecordingToken: U1 got SourceName: U1
2016/11/11 15:09:12,708 GMT+01:00 GetRecordingsResult: RecordingToken: V1 got SourceName: V1
2016/11/11 15:09:12,708 GMT+01:00 GetRecordingsResult: RecordingToken: O2 got SourceName: Geutebrueck
2016/11/11 15:09:12,708 GMT+01:00 GetRecordingsResult: Found SourceName: Geutebrueck in RecordingToken: O2
2016/11/11 15:09:12,708 GMT+01:00 GetRecordingJobs with search for Recordingtoken: O2
2016/11/11 15:09:12,737 GMT+01:00 GetRecordingJobResult: JobItems found: 2
2016/11/11 15:09:12,737 GMT+01:00 GetRecordingJobResult: Found RecordingToken: O1 at Job:RJ1
2016/11/11 15:09:12,737 GMT+01:00 GetRecordingJobResult: Found RecordingToken: O2 at Job:RJ2
2016/11/11 15:09:12,737 GMT+01:00 GetRecordingJobResult: Found fitting RecordingToken: O2 at Job: RJ2. Mode is: Active
2016/11/11 15:09:12,795 GMT+01:00 SetRecordingJobMode for RecordingJob: RJ2 to Mode: Active. Result: 0
2016/11/11 15:09:12,796 GMT+01:00 Check recording on camera again in: 5 minutes.
Example Example 4
The information on the “load-balancing” settings is output as follows:
4.1
If the stream is transferred from the SD card as quickly as possible, this is indicated with “Send stream in fast speed” in the following line:2017/01/18 09:21:51,210 GMT+01:00 Start streaming with URL:
rtsp://10.1.92.254/playback?recordingtoken=O2. Send stream in fast speed
If the stream is transferred from the SD card at the original speed, this is indicated with “Send stream in normal-original speed” in the following line:2017/01/18 09:21:51,210 GMT+01:00 Start streaming with URL:
rtsp://10.1.92.254/playback?recordingtoken=O2. Send stream in normal-original speed
4.2
If all channels are allowed to transfer their video material over the network simultaneously, this is output as follows:2017/01/18 09:52:43,093 GMT+01:00 ------------Loadbalancing is disabled
If the number is limited, the information looks something like this:2017/01/18 09:52:43,093 GMT+01:00 ------------Parallelrunning RTSP-Stream are set to: 5
When an RTSP stream stops, the number of streams still running in parallel is indicated:2017/01/18 08:55:14,735 GMT+01:00 There are still 1 Edgerecording-RTSP-Streams-Running