The not-quite-comprehensive guide to using sub streams in Blue Iris.
Sub streams are a relatively new feature in Blue Iris, still undergoing heavy development. Do not proceed to update Blue Iris and configure sub streams yet unless you are willing to deal with bugs and crashes.
Blue Iris is able to take advantage of sub streams to greatly reduce processing requirements starting with version 5.2.7 (May 1, 2020).
A sub stream is a secondary video stream provided by your IP camera. Sub streams are smaller and easier to process than main streams, intended to be used in situations where the full quality of the main stream is unnecessary.
Modern IP cameras create big video streams that require very powerful computers to process. For example, a typical "4K" IP camera's main stream by default would have video resolution of 3840x2160 and a frame rate of 30 FPS (frames per second). That is 249 MP/s (megapixels per second). The problem is that Blue Iris's default configuration is going to try to fully process all of that video 24/7. To put it into perspective, Blue Iris on a high-end computer from 2016 can handle about 750 to 1000 MP/s, and computers you are likely to buy new in 2020 will handle at best about double that before they run out of CPU time or memory bandwidth.
There are ways to optimize Blue Iris's resource usage, but before sub streams a key element of optimization was to reduce the frame rate of the camera's main stream. Take the example above with the 4K camera producing 249 MP/s of video. Setting its frame rate to 15 FPS would reduce the load to 124 MP/s of video. 10 FPS would be a load of 83 MP/s. These are much more manageable numbers, but they come at the cost of smooth video.
This is where sub streams come in. If we configure a sub stream to have a resolution of 704x480 and a frame rate of 30 FPS, then we reduce the amount of the video that needs processed to just 10 MP/s and the video playback remains very smooth and usable for motion detection and live viewing in camera groups. When you maximize a camera, Blue Iris will temporarily switch over to the main stream so you can view in full quality.
The most important part of configuring a sub stream is to choose a fairly low resolution. Some cameras offer HD sub streams, but using a high-definition sub stream would largely defeat the purpose. A "D1" resolution like 704x480 or 720x576 is available on most cameras and this is recommended for most users. Don't worry about the aspect ratio being wrong; Blue Iris should detect and correct this automatically.
The Blue Iris developer has indicated that for best reliability, the sub stream frame rate should match the main stream frame rate. It should also be fine in most cases for the sub stream frame rate to be higher than the main stream frame rate. However you should not set the sub stream frame rate lower than the main stream frame rate. Blue Iris's frame pipeline is driven by the sub stream, so a slow sub stream will cause the main stream to be slow as well.
Tip: A fairly short i-frame interval on the main stream will help live viewing transition to the main stream faster when you maximize a camera.
First, make sure you have enabled direct-to-disc for the camera, otherwise the sub stream won't be used.
Go the the Network IP camera configuration panel, and enter the sub stream path and parameters into the
Sub stream box as instructed below:
Main streamtext into the
?) after the text you pasted in the
Paramstext into the
Sub streambox after the question mark.
subtype=2if using the second sub stream on a camera that has multiple).
My Hikvision cams don't use a Params section, so I just need to copy the
Main stream text and change
A similar procedure can be followed for most cameras. You just need to figure out which part tells the camera which stream you want. In some cases, there might not be a number or anything obvious, so you should google for the correct RTSP url format. ispyconnect often has a good list. Ex: "ispyconnect hikvision rtsp URL"
If you use Blue Iris's motion zones, know that the motion zones are stored separately for each video resolution so they must be configured again after you activate the sub stream. When you open the motion zone editor, you will notice the zones have reverted to their defaults, which is for Zone A to be completely filled in with all the other zones empty.
The main stream is used for all recordings. Therefore, any camera with the sub stream configured in Blue Iris should also be configured to record direct-to-disc.
When live viewing, the sub stream is used for cameras while they are in a grid view (e.g. "All cameras"). When you "solo" or "maximize" a single camera, Blue Iris will transition to the main stream so you can view with full quality. This causes a temporary increase in CPU / GPU resource consumption.
This table lists common IP video stream resolutions and their relative size compared to other resolutions. This is roughly equivalent to the amount of work Blue Iris must do to process a video stream of this resolution (assuming the same frame rate and video codec is used).
|Resolution||Compared to 4K||Compared to 4 MP||Compared to 2 MP||Compared to 1 MP||Compared to D1 - PAL||Compared to D1 - NTSC|
|2688x1520 (4 MP)||49%||100%||197%||443%||1008%||1209%|
|1920x1080 (2 MP)||25%||51%||100%||225%||511%||614%|
|1280x720 (1 MP)||11%||23%||44%||100%||227%||273%|
|704x576 (D1 Sub Stream - PAL)||5%||10%||20%||44%||100%||120%|
|704x480 (D1 Sub Stream - NTSC)||4%||8%||16%||36%||83%||100%|
For example, a D1 resolution sub stream is about 4% or 5% as much work as a 4K main stream. To read it another way, a 2 MP stream is 5 to 6 times as much work as a D1 sub stream.