What is Dual Streaming?
Most IP cameras can provide multiple data streams at the same time, each at a different resolution and frame rate. DW Spectrum requests two data streams, one high resolution and one low resolution, and switches between them to provide the best image quality with the least impact on processing and network efficiency. This “adaptive scaling” is one of the most valuable features of the DW Spectrum VMS.
The primary stream is used for high-quality viewing and playback. The secondary stream is used for constant recording, for motion detection, and to save bandwidth and CPU during playback.
Why is Dual Streaming important and how does it work?
Dual Streaming on the Server
If a camera supports dual-streaming, DW Spectrum tries to configure the low-resolution stream at or near 640x360 resolution at 7fps. The server uses the low-resolution stream whenever possible for software motion detection and records both streams to archive unless a different behavior is specified (see the section related to settings below). However, some cameras may not or cannot comply with default System behavior, usually for one of these reasons:
In these cases, the DW Spectrum Server will perform motion detection on the available stream that has the lowest resolution, as long as that stream is below 1024x768. This behavior can be modified (see below).
Dual Streaming on the Client
On the Client, by default the stream is selected automatically when viewing live or archive video according to these metrics:
As a user, it is possible to specify the quality of playback in the Desktop client as follows:
Default software settings are optimized for most of available cameras. If needed, there are several settings that can be used to adjust stream processing. (Note that some settings may be unavailable for certain cameras.)
Settings that affect motion detection
Motion detection is performed on the lowest resolution stream detected to a threshold of ≤ 1024x768p. Above that motion detection will not be performed.
Motion Detection (in Camera Settings > Motion)
Toggles motion detection on and off for a given camera.
Disable secondary stream (in Camera Settings > Expert)
If enabled, motion detection will not be performed for the camera, and the secondary stream will not be archived.
Force motion detection for stream (in Camera Settings > Expert)
Occasionally, a camera will report its configuration incorrectly and swap the primary and secondary streams. If the secondary stream is high-resolution, motion detection processing will create a very high CPU load. To correct this you can force motion detection to a specific stream. Note that forcing motion detection to a Hi-Res stream will increase CPU usage, possibly to 100% and will likely cause entire System instability.
Settings that affect recording and playback
When certain settings are applied, the server may or may not archive high-resolution or low-resolution streams.
Recording Type: Motion + Lo-Res (in Camera Settings > Recording)
Archives the high-resolution stream when motion is detected and the low-resolution stream when there is no motion, so high-resolution will not always be available for playback.
Disable secondary stream (in Camera Settings > Expert)
If checked, motion detection won’t be performed for the camera, and the secondary stream won’t be archived.
Do not archive primary stream / Do not archive secondary stream (in Camera Settings > Expert)
Use to completely disable archiving of one or both streams.
Video Streams Configuration (in Camera Settings > General or Camera Settings > Web Page tab)
Depending on the camera, camera stream settings may be configured in the either of these tabs. If you choose to control stream settings from one of these tabs you must do either of the following
Either: enable "Keep camera stream and profile settings” (in Camera Settings > Expert). Enabling this flag prevents the internal optimization performed by DW Spectrum and causes FPS and image quality settings in the recording schedule to be ignored.
Or: disable "Allow System to optimize device settings" (in System Administration > General).
Settings responsible for server motion detection, archiving and playback
Default software settings are optimized for most of available cameras. If needed, there are several settings that can be used to adjust stream processing. Note that some settings may be unavailable for certain cameras.
Toggles motion detection on and off for a given camera. Can be configured in Camera Settings > Motion.
May affect archive playback. If recording is set to Motion + Low quality, only the Lo-Res stream will be archived if there is no motion, so Hi-Res stream will not always be available in archive.
Can be configured in Camera Settings > Recording.
Primary Stream - Resolution
Controls the image quality of the High-Res stream for live and archive playback.
Secondary Stream - Resolution and FPS
Affects secondary stream quality. Specifying a higher resolution and frame rate will result in better image quality when viewing Lo-Res stream but will place more load on the server, as the Lo-Res stream is decoded by the server CPU.
Both Primary and Secondary stream settings can also be configured from:
Do not archive Primary and/or Secondary streams
May affect the archive playback. Can be configured in Camera Settings > Expert.
Disable secondary stream
May affect archive playback and motion detection. If enabled, motion detection won’t be performed for the camera with primary stream resolution over 1024x768, and secondary stream won’t be archived. Can be configured in Camera Settings > Expert.