Recommend a minimum dedicated 350kb/s down per downloaded stream, as well as 350kb/s up per uploaded stream to maintain a stable video connection.
For various resolutions and quality combinations, the bandwidth requirements are outlined below.
For the given qualities and resolutions, all the following conditions must met.
Quality | Video Resolution @ FPS | Video kbps | Packet Loss |
Excellent | 1920x1080 @ 30 | > 3500 | < 0.5% |
Excellent | 1280x720 @ 30 | > 1000 | < 0.5% |
Excellent | 640x480 @ 30 | > 600 | < 0.5% |
Excellent | 352x288 @ 30 | > 300 | < 0.5% |
Excellent | 320x240 @ 30 | >300 | < 0.5% |
Acceptable | 1280x720 @ 30 | > 350 | < 3% |
Acceptable | 640x480 @ 30 | > 250 | < 3% |
Acceptable | 352x288 @ 30 | > 150 | < 3% |
Acceptable | 320x240 @ 30 | > 150 | < 3% |
The default publish settings for video are 640x480 pixels @ 30 fps in OpenTok.js and the OpenTok iOS SDK. The default is 352x288 @ 30 fps in the OpenTok Android SDK.
Note: For FHD (1920x1080) resolution it is recommended to have available bandwidth of 3Mbps-5Mbps per FHD stream to maintain acceptable quality. At the publisher, when simulcast is used, 6Mbps upload bandwidth is required to publish multiple quality layers.
For the given qualities, the following conditions must met.
Quality | Audio kbps | Packet Loss |
Excellent | > 30 | < 0.5% |
Acceptable | > 25 | < 5% |
Video quality dynamically adjusts based on the strength of a user's network connectivity. This is done using feedback messages for bandwidth estimation between Publishers and Subscribers to determine what resolution can be supported by the network conditions. The Publisher will adjust the published video bitrate based on the round trip feedback packets it receives. The faster and more stable a Subscriber's broadband connection is, the better the video quality it will request.
In relayed sessions, the video bandwidth estimation is directly between Publisher and Subscriber. In routed sessions, the video bandwidth estimation is calculated for each Subscriber and the Publisher feedback is managed by the media router. When the scalable video is used, the media router will choose the best video quality layer for the Subscriber based on the simulcast layers present, the preferred resolution, and the bandwidth available at the Subscriber.
If a Subscriber's bandwidth drops below a certain threshold, or if a Publisher has very little bandwidth to upload video, behavior can be unpredictable. Video may be choppy, audio may have artifacts, and the connection could be dropped.