A couple weeks ago, I shared my best practices for determining bandwidth requirements for voice calls in the post, Calculating Bandwidth for SIP Trunks Made Easy. Now, while voice is an extremely important aspect of SIP communications, the beauty of SIP is that it isn't limited to any one media type. For example, the various SIP clients I've installed on my PC and smartphone use voice, presence, instant message, and video.
While communications modes such as IM and presence do consume some network bandwidth, they do so at extremely low rates and without real-time requirements. Video, on the other hand, is very real-time in nature and will typically consume far more bandwidth than even the most data-intensive, wideband voice codec.
Video codecs have a number of distinguishing characteristics, but in terms of bandwidth utilization we are concerned with two major factors -- resolution and frame rate. Resolution is expressed by the pixel height and pixel width of the rendered image. Frame rate is expressed in image frames per second. Clearly, more pixels sent more often produces the best image. This, of course, leads to greater bandwidth consumption and possibly fewer video calls on your network.
Based on my experience, you will most often encounter these four video codecs: DivX, H.263, H.263+, and H.264/MPEG-4. These codecs offer different resolutions and frame-rate values, ultimately creating different quality experiences and bandwidth requirements. For DviX codecs you will commonly find the following variations:
|Client Setting||Resolution||Frames/sec||Quality||Bandwidth (Kbps)||Average (Kbps)|
|Very low bandwidth||160 x 120||2||Very low||10 - 20||15|
|Low bandwidth||160 x 120||10||Low||60 - 120||80|
|Medium bandwidth||320 x 240||10||Medium||150 - 300||200|
|High bandwidth||352 x 288||15||High||400 - 800||600|
For H.263, H.263+, and H.264/MPEG-4, you'll find this:
|Client Setting||Resolution||Frames/sec||Quality||Bandwidth (Kbps)|
|Very low bandwidth||176 x 144||2||Very low||10|
|Low bandwidth||176 x 144||10||Low||64|
|Medium bandwidth||352 x 288||10||Medium||192|
|High bandwidth||352 x 288||15||High||512|
|Very high bandwidth||640 x 480||30||Very high||768|
At this point, you need to determine the number of simultaneous video calls and the desired quality level of those calls. These numbers might not be as easy to determine as they are for voice traffic. Video is still a relatively new form of communication and you may not have the empirical knowledge required to do a full analysis. This means you will have to take your best guess and be prepared to add or remove bandwidth as users become more comfortable with making and receiving video calls.
However, based on what I've learned from experience, I will take a stab at a few estimates you can use to form the basis of your best-guess approach.
Expected video sessions (in a simultaneous/worst case scenario):
Your number may vary quite a bit from these. The important thing is to do the best job you can in determining the number of sessions.
Next, you need to translate those sessions into bandwidth requirements. Given the above data I come up with the following video requirements in megabits per second, or Mbps:
|Sessions||Very Low||Low||Medium||High||Very High|
To determine your particular bandwidth needs, I suggest the following:
You then need to ensure that you size your switches, routers, queues, and uplinks to meet the expected video traffic. Also, make sure that you apply the proper quality-of-service settings to ensure the best video experience possible.
I hope this helps you understand what you'll need in terms of bandwidth for a video rollout. Video is not going away but rather the opposite -- demand for quality, well-behaved video calls will be growing every year. Do it right and your users will be happy. Fail to plan and configure your network appropriately and you risk a helpdesk nightmare.
Follow Andrew Prokop on Twitter and LinkedIn!
Andrew Prokop on LinkedIn