s3008 recorder standing on a white desk next to computer screen

AXIS S3008 Recorder

AXIS S3008 Recorder currently works by fetching a media stream from the camera via RTSP. This media is then saved to the hard drive(s) in the same way as media is saved to an SD card on a camera. The configuration of this is similar to the configuration of SD card recording on a camera. The same APIs are used with the addition of the External IP Device API which is needed for the recorder to be able to connect to the camera.

Searching and exporting recordings is done via the same APIs as on a network camera.

note

Previous methods using CIFS/SMB will not be available on upcoming recorder products and will at some point be removed from AXIS S3008 Recorder firmware. Developers are advised to migrate to RTSP method instead.

Integration

APIs

The following is a list of some key APIs of AXIS S3008 Recorder. API documentation can be found in the Network Video section in the VAPIX Library. Most APIs are common with the camera platform, but not all. Especially note that AXIS S3008 Recorder does not support param.cgi.

APIs common with the camera platform

  • API discovery
  • Basic device information
  • Firmware management
  • System settings
  • Network settings
  • Time API
  • Event and actions
  • Disk management
  • Export recording
  • Recording group
  • Edge storage events and actions
     

APIs unique to the recorder

  • External IP Device information
  • NVR PoE switch configuration

Discovery

Bonjour and UPnP are the same as Axis network cameras but with a different identifier. Bonjour: _axis-nvr._tcp (camera has _axis-video._tcp) UPnP: axis-com:service:BasicNvrService (camera has axis-com:service:BasicService)

Motion events

When doing motion based recording the recorder is dependent on events coming from the camera itself. It does not implement its own motion detection algorithms or use any AXIS Camera Application Platform (ACAP) applications for this. The recorder needs to listen to the event stream coming from the camera to detect any Video Motion Detection (VMD) events generated by the camera. When seeing a VMD event in the event stream, the recorder generates its own event named 'UniversalMotionDetection'. It is similar to a camera VMD event, but it adds a device field so that is possible to see from which camera the motion event originated.

Stream options

It is the responsibility of the video management software (VMS) to set correct stream options for the recorder to use when fetching media from a camera. Choosing, for example, an unsupported resolution option will cause the recording to fail. If a stream option for a given parameter is not set, the camera will choose its own default value. There are however a few stream options that are handled differently by the recorder since it needs to know them before requesting the stream. These streaming options are further described in the table below.

device

This option is special in that it is not intended for the camera, instead it tells the recorder which camera to connect to. It shall be set to an id of a previously created External IP Device

Mandatory (has no default value)

resolutionDefault value set by recorder: 1920x1080
fpsDefault value set by recorder: 30
videokeyframeintervalDefault value set by recorder: 64
audio

Tell the recorder if it shall fetch audio or not. If set to 1 an audio stream is fetched. If set to 0 audio is ignored.

Default value set by recorder: 0

video

Same as audio but for video.

Default value set by recorder: 1


Depending on the camera these default values might be invalid resulting in failure to retrieve the media. It is therefore recommended that the VMS always sets these stream options explicitly.

Zipstream

When configuring an event-based recording using a pre-buffer there are some restrictions on the use of certain Zipstream features. The reason is that for each pre-buffer the recorder needs to keep up to two entire GOP (Group of Pictures) segments in RAM. There is no exact upper limit since it depends on the bitrate, but it is recommended to not exceed 100 frames per GOP. The Zipstream parameters that are restricted are given by the following table with corresponding valid values:

Stream optionValid values
videozgopmode
  • videozgopmode=fixed&videokeyframeinterval=100
videozfpsmode
  • videozfpsmode=fixed
  • videozfpsmode=dynamic&videoframeskipmode=empty


It is possible to use GOP and FPS (Frames Per Second) mode simultaneously. The following is for example a valid combination videozgopmode=fixed&videokeyframeinterval=100&videozfpsmode=dynamic&videoframeskipmode=empty

The VMS should always set these stream options when configuring a recording rule using a pre-buffer.