Network Working Group H. T. Alvestrand
Internet-Draft Google
Intended status: Informational August 26, 2012
Expires: February 25, 2013

Resolution Constraints in Web Real Time Communications


This document specifies the constraints necessary for a Javascript application to successfully indicate to a browser that supports WebRTC what resolutions it desires on a video stream.

Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http:/⁠/⁠⁠drafts/⁠current/⁠.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on February 25, 2013.

Copyright Notice

Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http:/⁠/⁠⁠license-⁠info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

Table of Contents

1. Introduction

There are a number of scenarios where it's useful for a WebRTC application to indicate to the WebRTC implementation in the supported browser what the desired characteristics of a video stream are. These include, but are not limited to:

Similar considerations apply for framerate.

1.1. Disposition of this text

This draft is written in order to get something specific out to refer to during spec-writing and implementation. The text may eventually get merged into either the IETF document on SDP usage by RTCWEB, or the W3C WEBRTC document on PeerConnection.

2. Usage considerations

These constraints are usable in several places:

All of the constraints may be meaningful in both "mandatory" and "optional" forms.

3. Usage examples

See Section 4 for the actual definition of the constraints used here.

3.1. Examples with GetUserMedia

A constraint saying that we absolutely must have a minimum resolution of 1024x768:

   video: { mandatory: { minWidth: 1024, minHeight: 768 } }
}, successCallback, errorCallback);

A constraint saying that we'd prefer 60 frames per second, if available, and if we can get that, we'd like to limit the max resolution, but in all cases, the screen must be clamped to a 4:3 aspect ratio - 16:9 or odd aspect ratios are not acceptable to this application:

   video: {
     mandatory: { minAspectRatio: 1.333, maxAspectRatio: 1.334 },
     optional [
       { minFrameRate: 60 },
       { maxWidth: 640 },
       { maxHeigth: 480 }
}, successCallback, errorCallback);

3.2. Possible SDP mappings

This document does not specify or constrain how constraints get reflected into SDP (if they do); that's an implementor decision.

The examples below are thought exercises, based on [I-D.lennox-mmusic-sdp-source-selection] and [I-D.alvestrand-rtcweb-resolution].

An optional constraint has been applied to an incoming stream where both upper and lower are constrained to 320x200. The stream has been assigned to a hardware video decoder that can decode most resolutions up to 1024x768, in any aspect ratio, but only if all divisions are divisible by 4. The incoming stream has SSRC 1234.

Line breaks are added for readability.

a=remote-ssrc:1234 imageattr:* [x=320,y=200,q=1.0] \

4. IANA Considerations

This document requests IANA to register constraints in the "RTCWeb Media Constraints" registry created by [I-D.burnett-rtcweb-constraints-registry]. NOTE: The registrations assume that this document is updated to no longer have "video" as part of the name, but have "video" as a field-of-use in the registration.

The definitions of width, height and aspect ratio are taken from [RFC6236].

The contact person is Harald Alvestrand <>.

Change control for the registration is with the IETF, as designated by the IESG.

Note that MinFramerate defines a lower bound for the a=framerate attribute, which is itself defined as an upper limit; this means that even if a high framerate is negotiated, the actual framerate used may be lower due to temporary considerations (for instance CPU or bandwidth, or simply lack of movement in the picture).

5. Security Considerations

No security considerations particular to these specific constraints have so far been identified.

6. Acknowledgements

Special thanks are given to Dan Burnett, Cullen Jennings, the IETF RTCWEB WG and the W3C WEBRTC WG for strongly influencing this memo.

7. References

7.1. Normative References

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4566] Handley, M., Jacobson, V. and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006.
[RFC6236] Johansson, I. and K. Jung, "Negotiation of Generic Image Attributes in the Session Description Protocol (SDP)", RFC 6236, May 2011.
[I-D.burnett-rtcweb-constraints-registry] Burnett, D, "IANA Registry for RTCWeb Media Constraints", Internet-Draft draft-burnett-rtcweb-constraints-registry-01, April 2012.

7.2. Informative References

[I-D.lennox-mmusic-sdp-source-selection] Lennox, J and H Schulzrinne, "Mechanisms for Media Source Selection in the Session Description Protocol (SDP)", Internet-Draft draft-lennox-mmusic-sdp-source-selection-02, October 2010.
[I-D.alvestrand-rtcweb-resolution] Alvestrand, H, "RTCWEB Resolution Negotiation", Internet-Draft draft-alvestrand-rtcweb-resolution-00, April 2012.
[W3C.WD-mediacapture-streams-20120628] Burnett, D. and A. Narayanan, "Media Capture and Streams", World Wide Web Consortium WD WD-mediacapture-streams-20120628, June 2012.
[W3C.WD-webrtc-20120821] Bergkvist, A., Burnett, D., Jennings, C. and A. Narayanan, "WebRTC 1.0: Real-time Communication Between Browsers", World Wide Web Consortium WD WD-webrtc-20120821, August 2012.

Author's Address

Harald Alvestrand Google EMail: