This article covers a number of requirements when viewing video from cameras and video systems.
Networks and Video Bitrate
The speed and quality of the networks from a) the camera to the internet and b) the Ops user to the internet are very important, as poor networks can very badly affect the video you receive with a number of issues listed below.
The amount of data you request from the camera (bitrate) is also important and is controlled by the following settings on the camera:
- Encoding: H.264 is required by Ops - see the Video Encoding Note below
- Resolution: The larger the resolution the more data being sent by the camera. We recommended starting with 800x600 and going no higher than 1280x720 aka "HD".
- Compression: The less compressed the video the more data being sent by the camera. The minimum recommended compression is H.264 "Main" profile at Medium quality.
- Frame rate (FPS): The higher the frames per second the more data being sent by the camera. We recommend going no higher than 10 FPS which is more than enough for video monitoring.
- Group of Pictures (GOP): The more often that keyframes (entire image frames) are sent the more data being sent by the camera. We recommend a GOP size of no lower than 10.
Example using CCTV Bandwidth Calculator: a camera at 1280x720 "HD" resolution compressed as H.264 "Main" at Medium quality sending 10 FPS will result in a bitrate of around 400 Kbps
We recommend going no higher than 600 Kbps per camera otherwise you may experience the following issues:
- User computer performance issues: high CPU and RAM usage on the operator's computers from trying to process the excessive video being sent
- Connection delays: a long time between connecting to the camera to seeing video
- Connection failures: failure to connect to cameras outright
- Video lag: the video getting further and further behind real time so the video you are watching is no longer "what is happening now"
- Video corruption/tearing: the video becoming "garbled" so you can no longer see the image clearly
- Video buffering/stops: the video pausing or stopping altogether
- Fewer concurrent cameras: being able to view less cameras than you would like before some or all of these issues listed begin to happen.
If you are experiencing these issues, you should reduce your bitrate to below 600 Kbps by:
- Modifying the settings on the camera in accordance with the recommendations above, using the "Sub"/"Remote" stream if the camera supports it.
Video Encoding Note
Ops only permits video encoded as H.264 to be streamed from cameras and video systems. This is because H.264 can be sent directly from the cameras through to any browser whereas other formats need to be transcoded to H264 causing quality loss, delays in receiving video, and large resource use.
Note on H.265 (aka "High Efficiency Video Coding" or "HEVC"):
- H.264 is ubiquitous as a high-quality low-bitrate video format and is supported by all browsers and most modern cameras.
- H.265 was meant to be the next big thing, however the company who licenses it significantly increased the license fee meaning that all the major technology companies would be paying enormous amounts to use it in their browsers, mobile devices, televisions, online services etc (affecting Amazon, Apple, Cisco, Facebook, Google, Huawei, IBM, Intel, Microsoft, Mozilla, Netflix, Nvidia, Samsung, and more)
- Instead all those technology companies got together as the Alliance for Open Media consortium and created a free alternative called "AV1" which is already supported by all major browsers
- With no major browsers supporting H.265 (only Safari) and no sign of that ever changing, from a web and technology perspective the H.265 format is effectively dead.
- SureView continue to monitor the situation and will add support for AV1 pass-through when it starts appearing in cameras.
Ops Camera Statistics
Ops provides a "Statistics" button showing you:
- The average bitrate of the camera in Kbps
- The encoding type, being either "remuxed" which is H.264 passing through from camera to browser or "encoded" which is some other format having to be transcoded