Zipstream is a collection of intelligent compression algorithms that ensure that important details in the image get enough attention in the video stream, while unnecessary data is removed. Motion and details of interest are preserved with the given video quality, while the Axis-unique method can filter other areas more aggressively for optimal use of the available bandwidth.

What's new?

One of main use cases of Axis video products is to record video for storage and be able to access it later. The new Zipstream storage profile automatically configures Zipstream to optimize the video stream for storage. By enabling Zipstream storage profile, more advanced compression tools can be used to save additional storage compared to the default Zipstream setting. Even for scenes with a lot of motion, storage profile can further reduce the bitrate. See Axis Zipstream Technology white paper for more details about bitrate savings.

When a video stream from the camera is requested, a Zipstream profile parameter can be added to get a storage optimized video stream. This is the preferred way to enable storage profile, but it requires VMS (Video Management System) integration. If this is not available, a configuration interface in the camera can force all streams to use storage profile.

Integration guidelines and tips

One of the main use case of Axis video products is to record video for storage and be able to access it later. Storage profile in Zipstream minimizes the bitrate while maximizing the evidence value for that use case. Using the preconfigured profile, the camera automatically enables the specific Zipstream algorithm that is most suitable for that type of camera and uses more advanced video encoding tools. The profile manifests differently, depending on the specific cameras’ capabilities and the result can thereby differ between camera types. 

Storage profile utilizes a new group of pictures (GOP) structure, with up to two bi-directional frames (B-frames) per P-frame, that saves bitrate by being able to use future information in the video encoding. The number of B-frames is dynamically changed, as there are situations where using B-frames would increase the bitrate. Beyond the bitrate reduction, the B-frames will introduce a latency impact of 1/fps per B-frame. This means that for, for example, a 25 fps video, an extra 80 ms of latency will be added to the video when using storage optimized video

Dynamic GOP will always be used in Zipstream storage profile, while the other Zipstream configurations remain as they are.

If the camera is overloaded by too many stream requests, storage profile videos will be prioritized. This is to ensure the preservation of their evidence value.

Two new parameters are added to the Zipstream API

profile - the profile that should be used.

  • Valid values: classic, storage 
  • Default: classic

 

profilelevel - the level of features included in selected profile. 

  • Value 1 includes the first level of features, value 2 includes all first level's features and additional features, and so on.  The value 0 will select the highest available level. The highest level applicable for a specific profile can be obtained by listing available Zipstream profiles, see the Zipstream API for more details.
  • Valid values: 0,1,…
  • Default: 0 (Highest level will be selected)

 

Using VAPIX, the Zipstream settings can be controlled through:

  • the Zipstream API – retrieve and configure Zipstream settings such as the strength and GOP mode. These settings will be used for all streams unless overridden in an RTSP stream request.
  • the camera's user interface can also be used to set default setting that will be used by all streams. See Axis Zipstream Technology white paper for more information. These settings can be used if the ability to set Zipstream parameters per stream isn't  available in the VMS. 
  • the RTSP API – specify Zipstream parameters when requesting a stream. The parameters are used only for the requested stream. See Zipstream in RTSP requests.

 

Example streaming video over RTSP, note that parameter names differ compared to the Zipstream API.

Default settings (default profile will be used):
rtsp: axis-media/media.amp?videocodec=h264&resolution= 1920x1080&videozstrength=20

Explicit set Zipstream storage profile disabled (turned off):
rtsp: axis-media/media.amp?videocodec=h264&resolution= 1920x1080&videozstrength=20&videozprofile=classic

Zipstream storage profile enabled:
rtsp: axis-media/media.amp?videocodec=h264&resolution= 1920x1080&videozstrength=20&videozprofile=storage

Enabled Zipstream storage profile and enabling dynamic FPS: 
rtsp: axis-media/media.amp?videocodec=h264&resolution= 1920x1080&videozstrength=20&videozprofile=storage&videozfpsmode=dynamic

See Axis Zipstream Technology white paper for more information about Dynamic FPS.

Trouble areas

Trouble area #1: Playback is not working

The consumer of the video (the player) is required to handle B-frames to be able to playback a video with Zipstream storage profile enabled. Consumers (players) following the H.264 (MPEG-4 part 10) High profile or H.265 (MPEG-H part2) Main profile standards, shall be able to playback Zipstream storage profile videos.

Trouble area #2: Player does not handle Dynamic GOP 

In some cases Dynamic GOP (always used in Zipstream storage profile) isn't supported by the player. Dynamic GOP follows the H.264 and H.265 standard but one reason to reduce the maximum Dynamic GOP length or to completely disable Dynamic GOP, is playback usability. If the operator does a lot of random access in the stream, too long seek time might be a problem.

Note that videozgopmode settings will be ignored when Zipstream storage profile is enabled:          
rtsp: axis-media/media.amp?videocodec=h264&resolution= 1920x1080&videozstrength=20&videozprofile=storage&videozgopmode=fixed

Instead set videozmaxgoplength to your selected GOP-length (in this case 32) to disable the dynamic GOP functionality:

rtsp: axis-media/media.amp?videocodec=h264&resolution=1920x1080&videokeyframeinterval=32 
&videozstrength=20&videozprofile=storage&videozmaxgoplength=32