Suggestions

close search

Add Messaging, Voice, and Authentication to your apps with Vonage Communications APIs

Visit the Vonage API Developer Portal

1080p video

There are a number of considerations to keep in mind when using 1080p-resolution video in a Video API session.

Publishing 1080p-resolution (FHD) video does not result in better video quality by itself. It takes proper camera, device power, and network bandwidth to support 1080p video.

For best user experience, your app should include options to deal with these conditions:

This can involve reporting information to the user or adding visual cues.

1080p publishing is not ideal for most situations

Because 1080p publishing requires very high CPU and bandwidth demands, for most use cases it will be beneficial to stay with lower resolutions such as 720p (HD), VGA or even QVGA.

This is especially true when clients intend to subscribe and display multiple published streams. If no subscriber will render the stream at 1080p resolution, then it is a waste of resources on the publisher to configure 1080p.

For example, applications that have more than two simultaneous streams — like video conferencing — may not be optimized for clients to publish 1080p at all. If clients receive multiple streams, it will be more beneficial to publish resolutions that will most commonly be displayed.

If the use case is one-to-one (two clients streams to one another), consider using relayed sessions to leverage the direct connections between clients. If the use case is one-to-one and your target devices support H.264 hardware-assisted encoders, consider using H.264. (See Video codecs.)

Factors determining support for 1080p

Enabling 1080p resolution does not equate to high quality unless these factors can be met. In order to support 1080p you need the following:

WebRTC video encoders (such as the encoder in Chrome) actively evaluate CPU and bandwidth to see if the proper resolution can be achieved and dynamically adjust based on device capabilities. This can mean that while a desired 1080p resolution is configured for publishing, the encoder will have to adjust and try its best based on the device capabilities, diminished CPU, or diminished bandwidth conditions.

The encoder behavior may be different based on whether there are bandwidth or CPU limitations.

The encoder may reduce the frame rate to meet diminished performance, which will mean that the video will appear to freeze since less video frames are produced by the encoder to cope with these situations. (For example, if the encoder reduces the frame rate to 5 to 6 frames per second, because of lack of resources, the video may become undesirable.)

Depending on the content hint provided for the video, the encoder will be biased to maintain liveliness or resolution. For details on content hints, see the following content:

Also, a subscribing client can set the preferred resolution of the consumed video (in a relayed session) to a lower resolution:

Scalable video for routed sessions

The Vonage Video API supports scalable video with the VP8 codec. It is generally preferred to enable scalable video for 1080p for sessions with a large number of subscribers, even though it will require higher amounts of CPU and bandwidth.

Enabling scalable video will avoid penalizing the Quality of Experience (QoE) for all subscribers if one or more subscribers cannot receive the highest quality level.

The additional encoded simulcast layers will provide the Video API Media Router the option to stream lower-quality video streams to subscribers that are having difficulty supporting 1080p, while allowing the highest 1080p quality layer to subscribers that can support 1080p.

For scalable video, 1080p streams require higher publisher bandwidths (recommended up to 6Mbps) to support the multiple resolution quality layers encoded and streamed from the device.

Determine whether scalable video simulcast layers are available

Scalable video simulcast layers support determined by the client device or browser. Scalable video is only available in streams published by clients that use:

Scalable video is only supported for VP8 streams. It is not supported for H.264 or VP9 streams.

It should be noted that there is a difference between simulcast layers for 1080p (FHD) and 720p (HD), which do not overlap, and this difference should be considered in resolution selection for application experience

When 720p resolution is selected, three layers will be encoded based on 720p as highest resolution:

When 1080p resolution is selected, three layers will be encoded based on 1080p as highest resolution:

Note that if the device is set for 1080p resolution, it will produce a scalable video layer at 540p. The 540p layer is a smaller dimension than the top 720p layer. Applications should consider this tradeoff if the 1080p layer cannot reach endpoints.