Network Working Group A.B. Roach
Internet-Draft Mozilla
Intended status: Standards Track July 01, 2014
Expires: January 02, 2015
WebRTC Video Processing and Codec Requirements
draft-ietf-rtcweb-video-00
Abstract
This specification provides the requirements and consideration for
WebRTC applications to send and receive video across a network. It
specifies the video processing that is required, codecs and their
parameters, and types of RTP packetization that need to be supported.
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://datatracker.ietf.org/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 January 02, 2015.
Copyright Notice
Copyright (c) 2014 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://trustee.ietf.org/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.
Roach Expires January 02, 2015 [Page 1]
Internet-Draft WebRTC Video July 2014
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Pre and Post Processing . . . . . . . . . . . . . . . . . . . 2
3.1. Camera Source Video . . . . . . . . . . . . . . . . . . . 3
3.2. Screen Source Video . . . . . . . . . . . . . . . . . . . 3
4. Codec Considerations . . . . . . . . . . . . . . . . . . . . 3
4.1. VP8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.2. H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.3. VP9 . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.4. H.265 . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5. Dealing with Packet Loss . . . . . . . . . . . . . . . . . . 4
6. Mandatory to Implement Video Codec . . . . . . . . . . . . . 4
6.1. Temperature of Working Group . . . . . . . . . . . . . . 4
7. Security Considerations . . . . . . . . . . . . . . . . . . . 5
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 6
10.1. Normative References . . . . . . . . . . . . . . . . . . 6
10.2. Informative References . . . . . . . . . . . . . . . . . 7
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction
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
screen recording, a stored file, or some other source. This
specification defines how the video is used and discusses special
considerations for processing the video. It also covers the video-
related algorithms WebRTC devices need to support.
2. Terminology
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 [RFC2119].
3. Pre and Post Processing
This section provides guidance on pre- or post-processing of video
streams.
Unless specified otherwise by the SDP or Codec, the color space
SHOULD be TBD.
TODO: What color space is our default?
Roach Expires January 02, 2015 [Page 2]
Internet-Draft WebRTC Video July 2014
3.1. Camera Source Video
To support a quality experience with no application level adjustment
from the Javascript running in the browsers, WebRTC endpoints are
REQUIRED to support:
o Automatic focus, if applicable for the camera in use
o Automatic white balance
o Automatic light level control
TODO: What other processing should be specified here?
3.2. Screen Source Video
If the video source is some portion of a computer screen (e.g.,
desktop or application sharing), then the considerations in this
section also apply.
TODO: What do we need to specify here?
4. Codec Considerations
WebRTC endpoints are not required to support all the codecs in this
section.
However, to foster interoperability between endpoints that have
codecs in common, if they do support one of the listed codecs, then
they need to meet the requirements specified in the subsection for
that codec.
All codecs MUST support at least 10 frames per second (fps) and
SHOULD support 30 fps. All codecs MUST support a minimum resolution
of 320X240.
TODO: These are strawman values. Are they adequate?
4.1. VP8
If VP8, defined in [RFC6386], is supported, then the endpoint MUST
support the payload formats defined in [I-D.ietf-payload-vp8]. In
addition it MUST support the 'bilinear' and 'none' reconstruction
filters.
4.2. H.264
Roach Expires January 02, 2015 [Page 3]
Internet-Draft WebRTC Video July 2014
If [H264] is supported, then the device MUST support the payload
formats defined in [RFC6184]. In addition, they MUST support
Constrained Baseline Profile Level 1.2, and they SHOULD support H.264
Constrained High Profile Level 1.3.
TODO: What packetization modes MUST be supported?
4.3. VP9
If VP9, as defined in [I-D.grange-vp9-bitstream], is supported, then
the device MUST support the payload formats defined in TODO.
TODO: The grange-vp9-bitstream draft does not really specify VP9 at
all, is there a better reference?
4.4. H.265
If [H265] is supported, then the device MUST support the payload
formats defined in [I-D.ietf-payload-rtp-h265].
5. Dealing with Packet Loss
This section provides recommendations on how to encode video to be
robust to packet loss.
TODO: What do we want to require in terms of FEC, RTX, interleaving,
etc?
6. Mandatory to Implement Video Codec
Note: This section is here purely as a placeholder and there is not
yet WG Consensus on Mandatory to Implement video codecs. The WG has
agreed not to discuss this topic until September 29, 2014 so that the
WG can focus on getting other work done. Please, save your comments
on this topic until that time.
The currently recorded working group consensus is that all
implementations MUST support a single, specified mandatory-to-
implement codec. The remaining decision point is a selection of this
single codec.
6.1. Temperature of Working Group
Roach Expires January 02, 2015 [Page 4]
Internet-Draft WebRTC Video July 2014
To capture the conversation so far, this section summarizes the
result of a straw poll that the working group undertook in December
2013 and January 2014. Respondants were asked to answer "Yes,"
"Acceptable," or "No" for each option. The options were collected
from the working group at large prior to the initiation of the straw
poll.
Yes Acc No
--- --- ---
1. All entities MUST support H.264 48% 11% 41%
2. All entities MUST support VP8 41% 17% 42%
3. All entities MUST support both H.264 and VP8 9% 38% 53%
4. Browsers MUST support both H.264 and VP8, other
entities MUST support at least one of H.264
and VP8 11% 34% 55%
5. All entities MUST support at least one of
H.264 and VP8 10% 16% 74%
6. All entities MUST support H.261 5% 23% 72%
7. There is no MTI video codec 12% 30% 58%
8. All entities MUST support H.261 and allentities
MUST support at least one of H.264 and VP8 4% 28% 68%
9. All entities MUST support Theora 7% 26% 67%
10. All entities MUST implement at least two of
{VP8, H.264, H.261} 5% 30% 65%
11. All entities MUST implement at least two of
{VP8, H.264, H.263} 5% 25% 70%
12. All entities MUST support decoding using both
H.264 and VP8, and MUST support encoding using
at least one of H.264 or VP8 7% 20% 73%
13. All entities MUST support H.263 6% 19% 75%
14. All entities MUST implement at least two of
{VP8, H.264, Theora} 6% 27% 67%
15. All entities MUST support decoding using Theora 1% 15% 84%
16. All entities MUST support Motion JPEG 1% 25% 74%
7. Security Considerations
This specification does not introduce any new mechanisms or security
concerns beyond what the other documents it references. In WebRTC,
video is protected using DTLS/SRTP. A complete discussion of the
security can be found in [I-D.ietf-rtcweb-security] and
[I-D.ietf-rtcweb-security-arch]. Implementers should consider
whether the use of variable bit rate video codecs are appropriate for
their application based on [RFC6562].
8. IANA Considerations
Roach Expires January 02, 2015 [Page 5]
Internet-Draft WebRTC Video July 2014
This document requires no actions from IANA.
9. Acknowledgements
The authors would like to thank <GET YOUR NAME HERE - PLEASE SEND
COMMENTS>. Thanks to Cullen Jennings for providing text and review.
This draft includes text from draft-cbran-rtcweb-codec.
10. References
10.1. Normative References
[H264] ITU-T Recommendation H.264, "Advanced video coding for
generic audiovisual services", April 2013.
[H265] ITU-T Recommendation H.265, "High efficiency video
coding", April 2013.
[I-D.grange-vp9-bitstream]
Grange, A. and H. Alvestrand, "A VP9 Bitstream Overview",
draft-grange-vp9-bitstream-00 (work in progress), February
2013.
[I-D.ietf-payload-rtp-h265]
Wang, Y., Sanchez, Y., Schierl, T., Wenger, S., and M.
Hannuksela, "RTP Payload Format for High Efficiency Video
Coding", draft-ietf-payload-rtp-h265-04 (work in
progress), May 2014.
[I-D.ietf-payload-vp8]
Westin, P., Lundin, H., Glover, M., Uberti, J., and F.
Galligan, "RTP Payload Format for VP8 Video", draft-ietf-
payload-vp8-11 (work in progress), February 2014.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4175] Gharai, L. and C. Perkins, "RTP Payload Format for
Uncompressed Video", RFC 4175, September 2005.
[RFC4421] Perkins, C., "RTP Payload Format for Uncompressed Video:
Additional Colour Sampling Modes", RFC 4421, February
2006.
[RFC6184] Wang, Y.-K., Even, R., Kristensen, T., and R. Jesup, "RTP
Payload Format for H.264 Video", RFC 6184, May 2011.
Roach Expires January 02, 2015 [Page 6]
Internet-Draft WebRTC Video July 2014
[RFC6386] Bankoski, J., Koleszar, J., Quillio, L., Salonen, J.,
Wilkins, P., and Y. Xu, "VP8 Data Format and Decoding
Guide", RFC 6386, November 2011.
[RFC6562] Perkins, C. and JM. Valin, "Guidelines for the Use of
Variable Bit Rate Audio with Secure RTP", RFC 6562, March
2012.
10.2. Informative References
[I-D.ietf-rtcweb-security-arch]
Rescorla, E., "WebRTC Security Architecture", draft-ietf-
rtcweb-security-arch-09 (work in progress), February 2014.
[I-D.ietf-rtcweb-security]
Rescorla, E., "Security Considerations for WebRTC", draft-
ietf-rtcweb-security-06 (work in progress), January 2014.
Author's Address
Adam Roach
Mozilla
\
Dallas
US
Phone: +1 650 903 0800 x863
Email: adam@nostrum.com
Roach Expires January 02, 2015 [Page 7]