Is there any particular reason to use the substream for viewing a camera feed?
So, many cameras put out a mainstream and a substream, right? And from what I've gathered, the purpose of the substream is to provide a lower-quality "preview" feed for observing live on a monitor or something.
But why is that necessary? Why not just use the high-quality mainstream to view and record from?
At first, I thought the answer would be CPU limitations. And maybe in some systems, it is? But I'm just running Frigate on an old laptop I had lying around. It's running a Linux server with Frigate in a Docker container, and the computer is running several other Docker containers at the same time. I have several cameras connected to it, and even with Frigate configured to do everything with the mainstream, I'm not really seeing a meaningful CPU hit.
Comments Section
If you are running just a few cameras, the cpu hit is not that big to use the main stream for everything. However, if we are talking about detection, it is completely unnecessary to use a high-res image to compare to a low-res model unless you need to detect objects that are far away. It's not just just cpu hit, it's also money for electricity that will add up over time. If you aren't using frigate to detect at all, it shouldn't make a difference which stream you use other than for storage size.
Not sure what your main stream resolution is but in general there is a meaningful difference in cpu usage running motion and object detection on 1280x720 vs 2560x1440 for example.
As far as viewing live, I personally use the sub stream because I mostly view on my phone and prefer to have lower bandwidth so the stream uses less data and is faster since the extra resolution doesn’t matter anyway
I'm guessing you're referring to your 1080 sub streams.
Some day I hope to upgrade my cameras to ones with multiple sub streams. The 640x480 is pretty garbage for outdoor cameras, even on mobile. But it's still handy when remote.
Curious as well
For Reolink, main stream is limited to 2 Simultaneous viewers whereas substream has a larger limitation (5 or 7)
Many cameras can't handle many clients. CPUs on them are just enough to get the job done.
I have a reolink that if you have two clients looking at the hd stream it starts to get visual glitches.
The Amcrests I have can handle 3 or more before they just freeze up.
Scaling an HD down to a more efficient for processing stream also leads to more artifacts and wasted power. Compare motion detection on an HD stream vs an SD stream sometime. SD trends to have less noise. Normally SD gives better results.