5.2.7.0 - RTSP sub-streams for high-MP cameras

fenderman

Staff member
Mar 9, 2014
36,892
21,407
5.2.7.0 - RTSP sub-streams for high-MP cameras
The help file has not been updated with an explanation of this new feature. There is a new box to enter the substream path in the video config settings.

EDIT with release notes.
5.2.7 - May 1, 2020
You may now specify a second “sub” stream for an RTSP camera. The software will pull
video from both streams, using the main stream only for audio and direct-to-disc recording
(and playback) and the sub-stream for everything else. This really has become a necessity
with the popularity of 4K (8MP) cameras (and beyond).
 
Last edited:
This is very exciting. I gave it a try tonight instead of going to bed like I should have. I've been thinking for years this is exactly what Blue Iris needs to really cut down the system requirements. It does make setup more complex because people need to configure two streams appropriately, so I expect a LOT of people will stumble on it or not even be aware of the ability to use sub streams. But it is going to be incredibly useful when configured correctly.

It is definitely an early feature. There is more to do to really flesh it out. Things like fixing the aspect ratio automatically and showing the main stream when you maximize a camera. And configuring hardware acceleration separately for main stream and sub stream. And I'm sure there will be bugs. But give it a couple of weeks and we might be looking at the single biggest efficiency gain in Blue Iris's history.
 
I've been thinking for years this is exactly what Blue Iris needs to really cut down the system requirements.

Agreed, particularly if it can be made simple to use a substream for motion detection/multicam monitoring, and the main high def stream for recording/single cam monitoring.

edit: Just did some testing and WOW, this does make a huge difference.

It currently uses the substream for monitoring (all views) and the main stream for recording. This makes an enormous difference to CPU usage in multi-cam scenarios, to the point where I can record in 2160p now where previously I was limited to 1080p.

Some quick tests:

4 Hikvision cameras H264
No GPU, 4 x 2.93Ghz Westmere cores.

Main streams:
3 x 2160p
1 x 1520p

Substreams:
4 x 640 x 360

CPU usage compared:

Substream disabled
10% CPU usage - All clients closed (motion detection running)
60% CPU usage - UI3 open and set to 1080p, preview 4 cams

Substream enabled
2% CPU usage - All clients closed (motion detection running)
8% CPU usage - UI3 open and set to 1080p, preview 4 cams

For my cameras, configuring this was as simple as:

  • Camera Properties
  • Video tab
  • Network IP "Configure" button
  • Add a "Sub stream" path, usually this is an increment of the camera number:

substream.png

For another camera model it was slightly different:

Main Stream:
/Streaming/Channels/101?transportmode=unicast&profile=Profile_1

Sub stream:
/Streaming/Channels/102?transportmode=unicast&profile=Profile_1

You get the idea.

Bugs
UI3 reports "Video stream lost" when triggering recording. Purely cosmetic as it recovers quickly and the recording does trigger

Feature requests
  • Switch to main stream when monitoring a single camera
  • Use main stream when taking a snapshot
 
Last edited:
Wow - amazing. I have an 8 camera setup ... all running 4mp on the highest res and microphones on each of them.

I went from consistent 50-60% CPU down to average 10-15% CPU!! Wow. If I wanted to, I could lower the sub-streams resolution and bitrate even more as at the end of the day - I don't care about the quality of display, as long as it's recording in high quality. Great job Blue iris!!!

Edit: I lowered the FPS on the substream to 5-6fps
 
Last edited:
This is very exciting. I gave it a try tonight instead of going to bed like I should have. I've been thinking for years this is exactly what Blue Iris needs to really cut down the system requirements. It does make setup more complex because people need to configure two streams appropriately, so I expect a LOT of people will stumble on it or not even be aware of the ability to use sub streams. But it is going to be incredibly useful when configured correctly.

It is definitely an early feature. There is more to do to really flesh it out. Things like fixing the aspect ratio automatically and showing the main stream when you maximize a camera. And configuring hardware acceleration separately for main stream and sub stream. And I'm sure there will be bugs. But give it a couple of weeks and we might be looking at the single biggest efficiency gain in Blue Iris's history.
It would be great if he allowed substream recording until motion is triggered then begin mainstream. NXwitness allows this but at some point there was no way to get pretrigger frames for the main stream, dont know if that changed.
 
Agreed, particularly if it can be made simple to use a substream for motion detection/multicam monitoring, and the main high def stream for recording/single cam monitoring.

edit: Just did some testing and WOW, this does make a huge difference.

It currently uses the substream for monitoring (all views) and the main stream for recording. This makes an enormous difference to CPU usage in multi-cam scenarios, to the point where I can record in 2160p now where previously I was limited to 1080p.

Some quick tests:

4 Hikvision cameras H264
No GPU, 4 x 2.93Ghz Westmere cores.

Main streams:
3 x 2160p
1 x 1520p

Substreams:
4 x 640 x 360

CPU usage compared:

Substream disabled
10% CPU usage - All clients closed (motion detection running)
60% CPU usage - UI3 open and set to 1080p, preview 4 cams

Substream enabled
2% CPU usage - All clients closed (motion detection running)
8% CPU usage - UI3 open and set to 1080p, preview 4 cams

For my cameras, configuring this was as simple as:

  • Camera Properties
  • Video tab
  • Network IP "Configure" button
  • Add a "Sub stream" path, usually this is an increment of the camera number:

View attachment 60790

For another camera model it was slightly different:

Main Stream:
/Streaming/Channels/101?transportmode=unicast&profile=Profile_1

Sub stream:
/Streaming/Channels/102?transportmode=unicast&profile=Profile_1

You get the idea.

Bugs
UI3 reports "Video stream lost" when triggering recording. Purely cosmetic as it recovers quickly and the recording does trigger

Feature requests
  • Switch to main stream when monitoring a single camera
  • Use main stream when taking a snapshot

Have to reconfigure the Motion Zone(s) for this though, right? As the 640x480 sub is now the detection feed?
 
  • Like
Reactions: GuiBou
I hope not???? Can someone please confirm?

Well, I've only updated one cam with the substream and my zone A is now "fully" selected (yellow), and all other Zones empty. This is understandable, the "feed" used for this has gone from 2160p to 640x480...
 
Most likely you will indeed need to reconfigure motion zones. I'd hold off on adopting sub streams just yet, because when BI starts automatically fixing the sub stream aspect ratio (which is very often wrong) that might cause new motion zones to need defined again. BI stores motion zones per-resolution.
 
FWIW, dropping the Substream info out and returning to "normal" (Main Stream) res, keeps the motion references.
 
I still cannot find the 5.2.7.0 version on this site or the BI site. This site only has up to 5.2.6.1 and the BI site has 5.2.7.0, but when I download it and install the update the version shows 5.2.6.1 and when I look at the file details from the download it says in the detail of the file 5.2.6.1.

I need a pointer to the exact location of the file download or what do I need to do to get the 5.2.7.0?
 
I still cannot find the 5.2.7.0 version on this site or the BI site. This site only has up to 5.2.6.1 and the BI site has 5.2.7.0, but when I download it and install the update the version shows 5.2.6.1 and when I look at the file details from the download it says in the detail of the file 5.2.6.1.

I need a pointer to the exact location of the file download or what do I need to do to get the 5.2.7.0?

I just grabbed the "update" from , installed it, and then installed the update from inside BI itself.
 
In task manager on the Services tab, stop the "Blue Iris" service.

Then on the Details tab, kill all blueiris.exe processes.

Then try running the update file again.

Blue Iris recently changed how service mode functions a little bit, but did not automatically migrate old installations. If you have not done so, turn off service mode, restart BI, then turn service mode back on and restart BI one final time.
 
In task manager on the Services tab, stop the "Blue Iris" service.

Then on the Details tab, kill all blueiris.exe processes.

Then try running the update file again.

Blue Iris recently changed how service mode functions a little bit, but did not automatically migrate old installations. If you have not done so, turn off service mode, restart BI, then turn service mode back on and restart BI one final time.

OK, Thanks! I followed your directions and applied the update and it started, now the version says 5.2.6.1 x64 (05/01/20).
 
OK, Thanks! I followed your directions and applied the update and it started, now the version says 5.2.6.1 x64 (05/01/20).
it is possible he pulled the update because there is an issue with it. If this is a primary system you should wait until this update is considered stable before running it anyways.
 
it is possible he pulled the update because there is an issue with it. If this is a primary system you should wait until this update is considered stable before running it anyways.

How do I know if it is stable or even the right version? My system is not connected to the internet anymore so I cannot run updates automatically.