Rodney, The Axis cameras couldn't generate two simultaneous 720p 30fps unicast streams either. Besides, unless cameras can distribute up to five or more simultaneous unicast streams, multicast is the way we have to view cameras. Our VMS is not capable of redistributing a single stream without a so-called proxy server and we often have multiple users watching the same camera(s).
Multicast -> udp -> weak tcp/ip stack. Multicast isn't for stronger cameras, it's for weak cameras with cheap TCP/IP stacks. I get asked about data rates a lot (I'm one of those troublemakers who actually tests things...) I've been hearing that 2x30fps is not hard. It shouldn't be hard. Dude, it's just a web server serving two sessions (using 2013 technology metrics.) I would have expected an Axis camera (not low end) to be able to handle that. The fact you're running multicast may be related. I'd stop doing multicast, it's only trouble.
By the way, other factors I would like to test include power zoom/focus and requirements to reboot regularly. During our evaluations, the Axis P3300-series cameras we tested showed a proclivity to zoom fully out on a power reset or camera reboot. Although that was a different VMS and it may have been an issue with their ONVIF interface, it makes us somewhat hesitant to deploy cameras with that capability. The cameras we purchased with the system all have manual varifocal lenses for that reason.
Any need to reboot IP cameras regularly does not give me a warm, fuzzy feeling.
I don't recall but it has been over 6 months since I accessed their ONVIF Configuration Tool. I have no ONVIF cameras to test at this time. I intend to start tests in early 2014, after the system is commissioned, and I'm just looking for options.
Obviously, it would be pointless to test cameras that we can't deploy.
Han said, "One way to test this could be to set the VMS to use unicast UDP for the rtp packets (for the recording) , instead of sending the rtp packets over rtsp (tcp)."
Carl responded, "While I know we could change many settings in cameras' native streams, this does not appear to be true with ONVIF streams."
However, ONVIF's specification indicates that they support UDP for both unicast and multicast:
Given that, the question is whether Indigovision displays those configuration option for ONVIF streams.
I'm not certain those settings are possible. While I know we could change many settings in cameras' native streams, this does not appear to be true with ONVIF streams. That is the crux of the issue. The particular VMS we chose can only access the native streams of the manufacturer's own cameras without adding so-called "Camera Gateways", which are servers running specialized software.
According to the manufacturer "Camera Gateway™ integrates cameras and encoders from a wide range of manufacturers into Control Center using their native protocols. It is a software service that can be installed on a Windows server, giving total flexibility. Stream video from the same camera to multiple clients, whilst only requiring a single stream from the camera to the Camera Gateway™. PTZ control and events are supported."
Camera Gateways are limited in the number of cameras supported per server and, at this time, have no failover capability. They also would have added cost to the project that would have exceeded our budget. I know that this is a shortcoming of this particular VMS and I may eventually try to convince the manufacturer to re-think this requirement but the VMS offers other capabilities which we felt were more important to us despite not elegantly incorporating third party cameras.
There is another similar shortcoming of the VMS - that is the requirement that each camera be able to dual stream: one unicast for recording and one multicast (to allow multiple users simultaneous access) for viewing. If a camera is unable to deliver two simultaneous streams, the manufacturer offers a second piece of software that must be run on its own server(s) which takes a single unicast stream and redelivers it as multiple streams called a Proxy Server. According to the manufacturer "The proxy server is a service that relays video and audio streams from xxxxx IP cameras and encoders to one or more clients running xxxxx Control Center or NVR-AS. It allows cameras with restricted network connections to be viewed by many clients, by receiving a single stream from each camera and distributing it to the clients."
Another extra expense we could not afford...
Regarding "same settings", at least for the Axis cameras and possibly others, there is another low level technical detail that can cause loss of performance when streaming "same stream" over more than one transport, such as unicast rtsp and multicast.
Basically when the VMS requests the video stream, it can setup the stream in multiple ways, if it is using rtp over rtsp or rtp over rtsp over http, then the rtp packets are not limited by the UDP packet size, since the rtp packets are sent over the tcp stream. In this case the VMS can request that the rtp packets are a lot bigger than normal, since this improves performance.
If you then enable multicast as well, then those rtp packets will be limited by the UDP packet size.
So the camera ends up having to split the same stream into multiple rtp packets of different sizes in order to send the same stream out to unicast and multicast.
This is pretty low level so I'm not sure how much control you have over this in your VMS, or if this packet size setting is even used.
One way to test this could be to set the VMS to use unicast UDP for the rtp packets (for the recording) , instead of sending the rtp packets over rtsp (tcp). If you have this option in your VMS. That way both the recording stream and live stream are forced to use the same rtp packet size, which would make it easier for the camera to deliver the streams.
I've done some testing on these things before and this was one of the things I found to affect performance negatively then, but that's a few years ago.
I'm not certain which ONVIF version must be met, but I'll ask the VMS manufacturer. 720p is what we're deploying now but 1080p would be considered, though I assume that the doubling of pixel density is even more taxing on the camera's microprocessor.
Axis has been somewhat cagey in their responses to our questions. One of their engineers claims that their cameras can deliver two simultaneous 30fps streams "if they have identical settings". I assume that means compression type and GOP type and size. It seems to me that at least one IP camera I researched provided a chart of capabilities that specified the maximum frame rate for each stream based on two streams but as I recall, it could not provide two 30fps HD streams - one had to be D1 or less.
I'm positive I tried that but could not get two streams to reliably deliver simultaneous 30fps HD streams, no matter what compression settings I tried. That's if I could even get that kind of control of the camera's ONVIF stream. Most IP cameras appear to rely on the VMS to control ONVIF streams and the control appears to be very basic.
By the way, Bosch is the only manufacturer whose cameras are currently on our "must test" list. They claim to be able to meet our needs. We tested a Bosch camera late in our evaluations but with a different VMS. Unfortunately, the VMS manufacturer's ONVIF driver had a conflict with the Bosch camera which caused their server to continuously reboot until we removed the camera from the system.
- ONVIF (any specific version required? 1.01, 2, 2.2, etc.)
- Dual streaming at 30fps
- Supports multicast
- 720p / 1.3MP max resolution (yes?)
We have not tested such a combination so I am just throwing out some educated guesses. For a camera to maintain dual streaming at 30fps and support multicasting, it's probably going to need to be a higher end model (not just the brand but also the series) that provides more processing power.
To that end, I am surprised that a P series Axis only got to 22fps. What did Axis technical support say about this?
I might try Bosch Dinion - since they are designed to run their analytics, they might have the spare processing power to handle this.
The big problem with recommendations, as you know, is that nearly all camera manufacturers say they support X number of simultaneous streams (where X is a number like 4, 8, 16,000, etc.). The problem comes with the drop off in frame rate or resolution of those multiple streams (that is never explicitly mentioned).