Displaying Real Time Stream Info on IP Cameras
When troubleshooting or testing IP cameras, it is very useful to have clear and immediate visual feedback on key statistics of the camera such as real time bandwidth consumption and frame rate. In this note, we look at one way to display this, how to enable it and what benefits this can have.
The genesis of this is a practical example where we were trying to determine the impact of multi-streaming. Transmitting multiple streams increases the risk of reduced frame rate or reduced video quality as the camera can become overloaded. However, it is often difficult to clearly to see if a problem has arisen and how bad the problem is.
The most common way to display stream settings or status is to check within a VMS clients. Typically, VMS clients have ways to view what the current bitrate of each stream is and the video's real time frame rate. However, where this is located and how cumbersome this can be varies. Also, some VMS systems do not offer this or only offer partial real time information.
In our experience, cameras rarely display such real time information in any easy to access means. However, two notable exceptions are Axis and Mobotix [Update: Sony too, with examples at end]. The image below provides an example of an Axis camera with the bitrate and framerate displayed in the lower left hand corner.
Immediately above, you can easily read both bit rate and frame rate. This makes it easy to compare the real time information with the video quality. If the bitrate or frame rate is too high or low relative to expectations, it makes it easier to determine if a problem is occurring.
Here's another image sample from the same camera but with visual noise being generated from a DJ laser:
The information immediately above shows that the bitrate has increased 600% while the frame rate has dropped modestly. Having the bitrate update in real time makes it clear how bandwidth is being impacted by scene complexity changes.
Finally, below is an example in a dark condition where we have set the maximum shutter speed to 1/6s compared to only 1/30s in the first two sample.
The information above makes it clear that the frame rate has dropped in half - a major change. It would be hard to detect this without the frame rate information being displayed. Even though the camera is set for unlimited frame rate and the camera's maximum frame rate is 30 (15 in this stream profile), the camera drops the frame rate much lower because of the slow shutter speed set - a hidden consequence and a good example of why displaying such information is helpful.
This can be set up in the video stream configuration page under the 'Overlay Settings' section and 'include text' line item. Within that, you enter what Axis calls modifiers such as "#B" for Bandwidth.
Axis supports a handful of modifiers that can be found in the Axis help page listing modifiers available.
Limitations in modifiers exist. For instance, we think it would be useful if Axis displayed real time shutter speed, gain control and CPU usage.
- Shutter speed would help to diagnose and understand motion blur.
- Gain control would help to understand how aggressive the gain level is at any point.
- CPU usage would help inform how limited the camera's resources were for additional tasks (like more streams or motion detection).
Even as is, with bandwidth and frame rate, these display options can be quite useful to better understanding what the camera is doing and what problems you might be facing.
Addendum - Sony
Sony provides a text overlay option for bandwidth and frame rate. Below is an example:
The main difference about Sony is that seems to only blink/flash. It does not permanently display. Secondly, it does not seem to support metacharacters, just a fixed number of the most common options.
Below is a screenshot of the areas to configure to enable this in a Sony camera:
The codec field in Sony is what displays bandwidth and frame rate.
If you know of other camera manufacturers who display such real time information overlayed on the image, please share in the comments.