| < draft-ietf-rtcweb-video-05.txt | draft-ietf-rtcweb-video-06.txt > | |||
|---|---|---|---|---|
| Network Working Group A.B. Roach | Network Working Group A.B. Roach | |||
| Internet-Draft Mozilla | Internet-Draft Mozilla | |||
| Intended status: Standards Track March 17, 2015 | Intended status: Standards Track June 12, 2015 | |||
| Expires: September 18, 2015 | Expires: December 14, 2015 | |||
| WebRTC Video Processing and Codec Requirements | WebRTC Video Processing and Codec Requirements | |||
| draft-ietf-rtcweb-video-05 | draft-ietf-rtcweb-video-06 | |||
| Abstract | Abstract | |||
| This specification provides the requirements and considerations for | This specification provides the requirements and considerations for | |||
| WebRTC applications to send and receive video across a network. It | WebRTC applications to send and receive video across a network. It | |||
| specifies the video processing that is required, as well as video | specifies the video processing that is required, as well as video | |||
| codecs and their parameters. | codecs and their parameters. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 33 ¶ | skipping to change at page 1, line 33 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on September 18, 2015. | This Internet-Draft will expire on December 14, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 12 ¶ | skipping to change at page 2, line 12 ¶ | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 3. Pre and Post Processing . . . . . . . . . . . . . . . . . . . 2 | 3. Pre and Post Processing . . . . . . . . . . . . . . . . . . . 2 | |||
| 3.1. Camera Source Video . . . . . . . . . . . . . . . . . . . 3 | 3.1. Camera Source Video . . . . . . . . . . . . . . . . . . . 3 | |||
| 3.2. Screen Source Video . . . . . . . . . . . . . . . . . . . 3 | 3.2. Screen Source Video . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Stream Orientation . . . . . . . . . . . . . . . . . . . . . 3 | 4. Stream Orientation . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 5. Mandatory to Implement Video Codec . . . . . . . . . . . . . 4 | 5. Mandatory to Implement Video Codec . . . . . . . . . . . . . 4 | |||
| 6. Codec-Specific Considerations . . . . . . . . . . . . . . . . 5 | 6. Codec-Specific Considerations . . . . . . . . . . . . . . . . 5 | |||
| 6.1. VP8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 6.1. VP8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 6.2. H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 6.2. H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 7 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 7 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 8 | 10.2. Informative References . . . . . . . . . . . . . . . . . 8 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 1. Introduction | 1. Introduction | |||
| One of the major functions of WebRTC endpoints is the ability to send | One of the major functions of WebRTC endpoints is the ability to send | |||
| and receive interactive video. The video might come from a camera, a | and receive interactive video. The video might come from a camera, a | |||
| screen recording, a stored file, or some other source. This | screen recording, a stored file, or some other source. This | |||
| specification defines how the video is used and discusses special | specification provides the requirements and considerations for WebRTC | |||
| considerations for processing the video. It also covers the video- | applications to send and receive video across a network. It | |||
| related algorithms WebRTC devices need to support. | specifies the video processing that is required, as well as video | |||
| codecs and their parameters. | ||||
| Note that this document only discusses those issues dealing with | Note that this document only discusses those issues dealing with | |||
| video codec handling. Issues that are related to transport of media | video codec handling. Issues that are related to transport of media | |||
| streams across the network are specified in | streams across the network are specified in | |||
| [I-D.ietf-rtcweb-rtp-usage]. | [I-D.ietf-rtcweb-rtp-usage]. | |||
| 2. Terminology | 2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| 3. Pre and Post Processing | 3. Pre and Post Processing | |||
| This section provides guidance on pre- or post-processing of video | This section provides guidance on pre- and post-processing of video | |||
| streams. | streams. | |||
| Unless specified otherwise by the SDP or codec, the color space | Unless specified otherwise by the SDP or codec, the color space | |||
| SHOULD be sRGB [SRGB]. For clarity, this the color space indicated | SHOULD be sRGB [SRGB]. For clarity, this is the color space | |||
| by codepoint 1 from "ColourPrimaries" as defined in [IEC23001-8]. | indicated by codepoint 1 from "ColourPrimaries" as defined in | |||
| [IEC23001-8]. | ||||
| Unless specified otherwise by the SDP or codec, the video scan | Unless specified otherwise by the SDP or codec, the video scan | |||
| pattern for video codecs is Y'CbCr 4:2:0. | pattern for video codecs is Y'CbCr 4:2:0. | |||
| 3.1. Camera Source Video | 3.1. Camera Source Video | |||
| This document imposes no normative requirements on camera capture; | This document imposes no normative requirements on camera capture; | |||
| however, implementors are encouraged to take advantage of the | however, implementors are encouraged to take advantage of the | |||
| following features, if feasible for their platform: | following features, if feasible for their platform: | |||
| skipping to change at page 4, line 48 ¶ | skipping to change at page 4, line 51 ¶ | |||
| "WebRTC-Compatible Endpoint" as they are used in this section, please | "WebRTC-Compatible Endpoint" as they are used in this section, please | |||
| refer to [I-D.ietf-rtcweb-overview]. | refer to [I-D.ietf-rtcweb-overview]. | |||
| WebRTC Browsers MUST implement the VP8 video codec as described in | WebRTC Browsers MUST implement the VP8 video codec as described in | |||
| [RFC6386] and H.264 Constrained Baseline as described in [H264]. | [RFC6386] and H.264 Constrained Baseline as described in [H264]. | |||
| WebRTC Non-Browsers that support transmitting and/or receiving video | WebRTC Non-Browsers that support transmitting and/or receiving video | |||
| MUST implement the VP8 video codec as described in [RFC6386] and | MUST implement the VP8 video codec as described in [RFC6386] and | |||
| H.264 Constrained Baseline as described in [H264]. | H.264 Constrained Baseline as described in [H264]. | |||
| To promote the use of non-royalty bearing video codecs, | NOTE: To promote the use of non-royalty bearing video codecs, | |||
| participants in the RTCWEB working group, and any successor | participants in the RTCWEB working group, and any successor | |||
| working groups in the IETF, intend to monitor the evolving | working groups in the IETF, intend to monitor the evolving | |||
| licensing landscape as it pertains to the two mandatory-to- | licensing landscape as it pertains to the two mandatory-to- | |||
| implement codecs. If compelling evidence arises that one of the | implement codecs. If compelling evidence arises that one of the | |||
| codecs is available for use on a royalty-free basis, the working | codecs is available for use on a royalty-free basis, the working | |||
| group plans to revisit the question of which codecs are required | group plans to revisit the question of which codecs are required | |||
| for Non-Browsers, with the intention being that the royalty-free | for Non-Browsers, with the intention being that the royalty-free | |||
| codec will remain mandatory to implement, and the other will | codec will remain mandatory to implement, and the other will | |||
| become optional. | become optional. | |||
| skipping to change at page 5, line 36 ¶ | skipping to change at page 5, line 38 ¶ | |||
| this attribute by limiting the encoded resolution to the indicated | this attribute by limiting the encoded resolution to the indicated | |||
| maximum size, as the receiver may not be capable of handling higher | maximum size, as the receiver may not be capable of handling higher | |||
| resolutions. | resolutions. | |||
| Additionally, codecs may include codec-specific means of signaling | Additionally, codecs may include codec-specific means of signaling | |||
| maximum receiver abilities with regards to resolution, frame rate, | maximum receiver abilities with regards to resolution, frame rate, | |||
| and bitrate. | and bitrate. | |||
| Unless otherwise signaled in SDP, recipients of video streams MUST be | Unless otherwise signaled in SDP, recipients of video streams MUST be | |||
| able to decode video at a rate of at least 20 fps at a resolution of | able to decode video at a rate of at least 20 fps at a resolution of | |||
| at least 320x240. These values are selected based on the | at least 320 pixels by 240 pixels. These values are selected based | |||
| recommendations in [HSUP1]. | on the recommendations in [HSUP1]. | |||
| Encoders are encouraged to support encoding media with at least the | Encoders are encouraged to support encoding media with at least the | |||
| same resolution and frame rates cited above. | same resolution and frame rates cited above. | |||
| 6.1. VP8 | 6.1. VP8 | |||
| For the VP8 codec, defined in [RFC6386], endpoints MUST support the | For the VP8 codec, defined in [RFC6386], endpoints MUST support the | |||
| payload formats defined in [I-D.ietf-payload-vp8]. | payload formats defined in [I-D.ietf-payload-vp8]. | |||
| In addition to the [RFC6236] mechanism, VP8 encoders MUST limit the | In addition to the [RFC6236] mechanism, VP8 encoders MUST limit the | |||
| streams they send to conform to the values indicated by receivers in | streams they send to conform to the values indicated by receivers in | |||
| the corresponding max-fr and max-fs SDP attributes. | the corresponding max-fr and max-fs SDP attributes. | |||
| Unless otherwise signaled, implementations that use VP8 MUST encode | ||||
| and decode pixels with a implied 1:1 (square) aspect ratio. | ||||
| 6.2. H.264 | 6.2. H.264 | |||
| For the [H264] codec, endpoints MUST support the payload formats | For the [H264] codec, endpoints MUST support the payload formats | |||
| defined in [RFC6184]. In addition, they MUST support Constrained | defined in [RFC6184]. In addition, they MUST support Constrained | |||
| Baseline Profile Level 1.2, and they SHOULD support H.264 Constrained | Baseline Profile Level 1.2, and they SHOULD support H.264 Constrained | |||
| High Profile Level 1.3. | High Profile Level 1.3. | |||
| Implementations of the H.264 codec have utilized a wide variety of | Implementations of the H.264 codec have utilized a wide variety of | |||
| optional parameters. To improve interoperability the following | optional parameters. To improve interoperability the following | |||
| parameter settings are specified: | parameter settings are specified: | |||
| skipping to change at page 7, line 11 ¶ | skipping to change at page 7, line 13 ¶ | |||
| ITU-T T.35" and "User data unregistered" messages. Even if they do | ITU-T T.35" and "User data unregistered" messages. Even if they do | |||
| not act on them, implementations MUST be prepared to receive such | not act on them, implementations MUST be prepared to receive such | |||
| messages without any ill effects. | messages without any ill effects. | |||
| Unless otherwise signaled, implementations that use H.264 MUST encode | Unless otherwise signaled, implementations that use H.264 MUST encode | |||
| and decode pixels with a implied 1:1 (square) aspect ratio. | and decode pixels with a implied 1:1 (square) aspect ratio. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| This specification does not introduce any new mechanisms or security | This specification does not introduce any new mechanisms or security | |||
| concerns beyond what the other documents it references. In WebRTC, | concerns beyond what is in the other documents it references. In | |||
| video is protected using DTLS/SRTP. A complete discussion of the | WebRTC, video is protected using DTLS/SRTP. A complete discussion of | |||
| security can be found in [I-D.ietf-rtcweb-security] and | the security considerations can be found in | |||
| [I-D.ietf-rtcweb-security-arch]. Implementors should consider | [I-D.ietf-rtcweb-security] and [I-D.ietf-rtcweb-security-arch]. | |||
| whether the use of variable bit rate video codecs are appropriate for | Implementors should consider whether the use of variable bit rate | |||
| their application, keeping in mind that the degree of inter-frame | video codecs are appropriate for their application, keeping in mind | |||
| change (and, by inference, the amount of motion in the frame) may be | that the degree of inter-frame change (and, by inference, the amount | |||
| deduced by an eavesdropper based on the video stream's bit rate. | of motion in the frame) may be deduced by an eavesdropper based on | |||
| the video stream's bit rate. | ||||
| Implementors making use of H.264 are also advised to take careful | Implementors making use of H.264 are also advised to take careful | |||
| note of the "Security Considerations" section of [RFC6184], paying | note of the "Security Considerations" section of [RFC6184], paying | |||
| special regard to the normative requirement pertaining to SEI | special regard to the normative requirement pertaining to SEI | |||
| messages. | messages. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This document requires no actions from IANA. | This document requires no actions from IANA. | |||
| 9. Acknowledgements | 9. Acknowledgements | |||
| The author would like to thank Gaelle Martin-Cocher, Stephan Wenger, | The author would like to thank Gaelle Martin-Cocher, Stephan Wenger, | |||
| and Bernard Aboba for their detailed feedback and assistance with | and Bernard Aboba for their detailed feedback and assistance with | |||
| this document. Thanks to Cullen Jennings for providing text and | this document. Thanks to Cullen Jennings for providing text and | |||
| review. This draft includes text from draft-cbran-rtcweb-codec. | review, and to Russ Housley for a careful final review. This draft | |||
| includes text from draft-cbran-rtcweb-codec. | ||||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [H264] ITU-T Recommendation H.264, "Advanced video coding for | [H264] ITU-T Recommendation H.264, "Advanced video coding for | |||
| generic audiovisual services (V9)", February 2014, | generic audiovisual services (V9)", February 2014, | |||
| <http://www.itu.int/rec/T-REC-H.264-201304-I>. | <http://www.itu.int/rec/T-REC-H.264>. | |||
| [HSUP1] ITU-T Recommendation H.Sup1, "Application profile - Sign | [HSUP1] ITU-T Recommendation H.Sup1, "Application profile - Sign | |||
| language and lip-reading real-time conversation using low | language and lip-reading real-time conversation using low | |||
| bit rate video communication", May 1999, | bit rate video communication", May 1999, | |||
| <http://www.itu.int/rec/T-REC-H.Sup1>. | <http://www.itu.int/rec/T-REC-H.Sup1>. | |||
| [I-D.ietf-payload-vp8] | [I-D.ietf-payload-vp8] | |||
| Westin, P., Lundin, H., Glover, M., Uberti, J., and F. | Westin, P., Lundin, H., Glover, M., Uberti, J., and F. | |||
| Galligan, "RTP Payload Format for VP8 Video", draft-ietf- | Galligan, "RTP Payload Format for VP8 Video", draft-ietf- | |||
| payload-vp8-11 (work in progress), February 2014. | payload-vp8-16 (work in progress), June 2015. | |||
| [I-D.ietf-rtcweb-overview] | [I-D.ietf-rtcweb-overview] | |||
| Alvestrand, H., "Overview: Real Time Protocols for | Alvestrand, H., "Overview: Real Time Protocols for | |||
| Browser-based Applications", draft-ietf-rtcweb-overview-12 | Browser-based Applications", draft-ietf-rtcweb-overview-13 | |||
| (work in progress), October 2014. | (work in progress), November 2014. | |||
| [IEC23001-8] | [IEC23001-8] | |||
| ISO/IEC 23001-8:2013/DCOR1, "Coding independent media | ISO/IEC 23001-8:2013/DCOR1, "Coding independent media | |||
| description code points", 2013, <http://standards.iso.org/ | description code points", 2013, <http://standards.iso.org/ | |||
| ittf/PubliclyAvailableStandards/ | ittf/PubliclyAvailableStandards/ | |||
| c062088_ISO_IEC_23001-8_2013.zip>. | c062088_ISO_IEC_23001-8_2013.zip>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| skipping to change at page 8, line 47 ¶ | skipping to change at page 9, line 6 ¶ | |||
| Project; Technical Specification Group Services and System | Project; Technical Specification Group Services and System | |||
| Aspects; IP Multimedia Subsystem (IMS); Multimedia | Aspects; IP Multimedia Subsystem (IMS); Multimedia | |||
| Telephony; Media handling and interaction (Release 12)", | Telephony; Media handling and interaction (Release 12)", | |||
| December 2014, <http://www.3gpp.org/DynaReport/26114.htm>. | December 2014, <http://www.3gpp.org/DynaReport/26114.htm>. | |||
| 10.2. Informative References | 10.2. Informative References | |||
| [I-D.ietf-rtcweb-rtp-usage] | [I-D.ietf-rtcweb-rtp-usage] | |||
| Perkins, C., Westerlund, M., and J. Ott, "Web Real-Time | Perkins, C., Westerlund, M., and J. Ott, "Web Real-Time | |||
| Communication (WebRTC): Media Transport and Use of RTP", | Communication (WebRTC): Media Transport and Use of RTP", | |||
| draft-ietf-rtcweb-rtp-usage-06 (work in progress), | draft-ietf-rtcweb-rtp-usage-24 (work in progress), May | |||
| February 2013. | 2015. | |||
| [I-D.ietf-rtcweb-security-arch] | [I-D.ietf-rtcweb-security-arch] | |||
| Rescorla, E., "WebRTC Security Architecture", draft-ietf- | Rescorla, E., "WebRTC Security Architecture", draft-ietf- | |||
| rtcweb-security-arch-09 (work in progress), February 2014. | rtcweb-security-arch-11 (work in progress), March 2015. | |||
| [I-D.ietf-rtcweb-security] | [I-D.ietf-rtcweb-security] | |||
| Rescorla, E., "Security Considerations for WebRTC", draft- | Rescorla, E., "Security Considerations for WebRTC", draft- | |||
| ietf-rtcweb-security-06 (work in progress), January 2014. | ietf-rtcweb-security-08 (work in progress), February 2015. | |||
| Author's Address | Author's Address | |||
| Adam Roach | Adam Roach | |||
| Mozilla | Mozilla | |||
| \ | \ | |||
| Dallas | Dallas | |||
| US | US | |||
| Phone: +1 650 903 0800 x863 | Phone: +1 650 903 0800 x863 | |||
| End of changes. 18 change blocks. | ||||
| 31 lines changed or deleted | 38 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||