draft-ietf-rtcweb-audio-09.txt | draft-ietf-rtcweb-audio-10.txt | |||
---|---|---|---|---|
Network Working Group JM. Valin | Network Working Group JM. Valin | |||
Internet-Draft Mozilla | Internet-Draft Mozilla | |||
Intended status: Standards Track C. Bran | Intended status: Standards Track C. Bran | |||
Expires: May 8, 2016 Plantronics | Expires: August 12, 2016 Plantronics | |||
November 5, 2015 | February 9, 2016 | |||
WebRTC Audio Codec and Processing Requirements | WebRTC Audio Codec and Processing Requirements | |||
draft-ietf-rtcweb-audio-09 | draft-ietf-rtcweb-audio-10 | |||
Abstract | Abstract | |||
This document outlines the audio codec and processing requirements | This document outlines the audio codec and processing requirements | |||
for WebRTC endpoints. | for WebRTC endpoints. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
skipping to change at page 1, line 32 | skipping to change at page 1, line 32 | |||
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 May 8, 2016. | This Internet-Draft will expire on August 12, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
skipping to change at page 2, line 16 | skipping to change at page 2, line 16 | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
3. Codec Requirements . . . . . . . . . . . . . . . . . . . . . 2 | 3. Codec Requirements . . . . . . . . . . . . . . . . . . . . . 2 | |||
4. Audio Level . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 4. Audio Level . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
5. Acoustic Echo Cancellation (AEC) . . . . . . . . . . . . . . 4 | 5. Acoustic Echo Cancellation (AEC) . . . . . . . . . . . . . . 4 | |||
6. Legacy VoIP Interoperability . . . . . . . . . . . . . . . . 5 | 6. Legacy VoIP Interoperability . . . . . . . . . . . . . . . . 5 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 6 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 6 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 6 | 10.2. Informative References . . . . . . . . . . . . . . . . . 6 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
1. Introduction | 1. Introduction | |||
An integral part of the success and adoption of the Web Real Time | An integral part of the success and adoption of the Web Real Time | |||
Communications (WebRTC) will be the voice and video interoperability | Communications (WebRTC) will be the voice and video interoperability | |||
between WebRTC applications. This specification will outline the | between WebRTC applications. This specification will outline the | |||
audio processing and codec requirements for WebRTC endpoint | audio processing and codec requirements for WebRTC endpoints. | |||
implementations. | ||||
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", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in RFC | "OPTIONAL" in this document are to be interpreted as described in RFC | |||
2119 [RFC2119]. | 2119 [RFC2119]. | |||
3. Codec Requirements | 3. Codec Requirements | |||
To ensure a baseline level of interoperability between WebRTC | To ensure a baseline level of interoperability between WebRTC | |||
endpoints, a minimum set of required codecs are specified below. If | endpoints, a minimum set of required codecs are specified below. If | |||
other suitable audio codecs are available for the browser to use, it | other suitable audio codecs are available for the WebRTC endpoint to | |||
is RECOMMENDED that they are also be included in the offer in order | use, it is RECOMMENDED that they are also be included in the offer in | |||
to maximize the possibility to establish the session without the need | order to maximize the possibility to establish the session without | |||
for audio transcoding. | the need for audio transcoding. | |||
WebRTC endpoints are REQUIRED to implement the following audio | WebRTC endpoints are REQUIRED to implement the following audio | |||
codecs: | codecs: | |||
o Opus [RFC6716] with the payload format specified in | o Opus [RFC6716] with the payload format specified in | |||
[I-D.ietf-payload-rtp-opus]. | [I-D.ietf-payload-rtp-opus]. | |||
o G.711 PCMA and PCMU with the payload format specified in section | o G.711 PCMA and PCMU with the payload format specified in section | |||
4.5.14 of [RFC3551]. | 4.5.14 of [RFC3551]. | |||
o [RFC3389] comfort noise (CN). Receivers MUST support RFC3389 CN | o [RFC3389] comfort noise (CN). WebRTC endpoints MUST support | |||
for streams encoded with G.711 or any other supported codec that | RFC3389 CN for streams encoded with G.711 or any other supported | |||
does not provide its own CN. Since Opus provides its own CN | codec that does not provide its own CN. Since Opus provides its | |||
mechanism, the use of RFC3389 CN with Opus is NOT RECOMMENDED. | own CN mechanism, the use of RFC3389 CN with Opus is NOT | |||
Use of DTX/CN by senders is OPTIONAL. | RECOMMENDED. Use of DTX/CN by senders is OPTIONAL. | |||
o The audio/telephone-event media format as specified in [RFC4733]. | o The audio/telephone-event media format as specified in [RFC4733]. | |||
WebRTC endpoints are REQUIRED to be able to generate and consume | The endpoints MAY send DTMF events at any time and SHOULD suppress | |||
the following events: | in-band DTMF tones, if any. WebRTC endpoints are REQUIRED to be | |||
able to generate and consume the following events: | ||||
+------------+--------------------------------+-----------+ | +------------+--------------------------------+-----------+ | |||
|Event Code | Event Name | Reference | | |Event Code | Event Name | Reference | | |||
+------------+--------------------------------+-----------+ | +------------+--------------------------------+-----------+ | |||
| 0 | DTMF digit "0" | RFC4733 | | | 0 | DTMF digit "0" | RFC4733 | | |||
| 1 | DTMF digit "1" | RFC4733 | | | 1 | DTMF digit "1" | RFC4733 | | |||
| 2 | DTMF digit "2" | RFC4733 | | | 2 | DTMF digit "2" | RFC4733 | | |||
| 3 | DTMF digit "3" | RFC4733 | | | 3 | DTMF digit "3" | RFC4733 | | |||
| 4 | DTMF digit "4" | RFC4733 | | | 4 | DTMF digit "4" | RFC4733 | | |||
| 5 | DTMF digit "5" | RFC4733 | | | 5 | DTMF digit "5" | RFC4733 | | |||
| 6 | DTMF digit "6" | RFC4733 | | | 6 | DTMF digit "6" | RFC4733 | | |||
| 7 | DTMF digit "7" | RFC4733 | | | 7 | DTMF digit "7" | RFC4733 | | |||
| 8 | DTMF digit "8" | RFC4733 | | | 8 | DTMF digit "8" | RFC4733 | | |||
| 9 | DTMF digit "9" | RFC4733 | | | 9 | DTMF digit "9" | RFC4733 | | |||
| 10 | DTMF digit "*" | RFC4733 | | | 10 | DTMF digit "*" | RFC4733 | | |||
| 11 | DTMF digit "#" | RFC4733 | | | 11 | DTMF digit "#" | RFC4733 | | |||
| 12 | DTMF digit "A" | RFC4733 | | ||||
| 13 | DTMF digit "B" | RFC4733 | | ||||
| 14 | DTMF digit "C" | RFC4733 | | ||||
| 15 | DTMF digit "D" | RFC4733 | | ||||
+------------+--------------------------------+-----------+ | +------------+--------------------------------+-----------+ | |||
For all cases where the endpoint is able to process audio at a | For all cases where the endpoint is able to process audio at a | |||
sampling rate higher than 8 kHz, it is RECOMMENDED that Opus be | sampling rate higher than 8 kHz, it is RECOMMENDED that Opus be | |||
offered before PCMA/PCMU. For Opus, all modes MUST be supported on | offered before PCMA/PCMU. For Opus, all modes MUST be supported on | |||
the decoder side. The choice of encoder-side modes is left to the | the decoder side. The choice of encoder-side modes is left to the | |||
implementer. Endpoints MAY use the offer/answer mechanism to signal | implementer. Endpoints MAY use the offer/answer mechanism to signal | |||
a preference for a particular mode or ptime. | a preference for a particular mode or ptime. | |||
For additional information on implementing codecs other than the | For additional information on implementing codecs other than the | |||
skipping to change at page 4, line 40 | skipping to change at page 4, line 45 | |||
5. Acoustic Echo Cancellation (AEC) | 5. Acoustic Echo Cancellation (AEC) | |||
It is plausible that the dominant near to mid-term WebRTC usage model | It is plausible that the dominant near to mid-term WebRTC usage model | |||
will be people using the interactive audio and video capabilities to | will be people using the interactive audio and video capabilities to | |||
communicate with each other via web browsers running on a notebook | communicate with each other via web browsers running on a notebook | |||
computer that has built-in microphone and speakers. The notebook-as- | computer that has built-in microphone and speakers. The notebook-as- | |||
communication-device paradigm presents challenging echo cancellation | communication-device paradigm presents challenging echo cancellation | |||
problems, the specific remedy of which will not be mandated here. | problems, the specific remedy of which will not be mandated here. | |||
However, while no specific algorithm or standard will be required by | However, while no specific algorithm or standard will be required by | |||
WebRTC compatible endpoints, echo cancellation will improve the user | WebRTC-compatible endpoints, echo cancellation will improve the user | |||
experience and should be implemented by the endpoint device. | experience and should be implemented by the endpoint device. | |||
WebRTC endpoints SHOULD include an AEC or some other form of echo | WebRTC endpoints SHOULD include an AEC or some other form of echo | |||
control. On general purpose platforms (e.g. PC), it is common for | control. On general purpose platforms (e.g. PC), it is common for | |||
the audio capture ADC and the audio playback DAC to use different | the audio capture ADC and the audio playback DAC to use different | |||
clocks. In these cases, such as when a webcam is used for capture | clocks. In these cases, such as when a webcam is used for capture | |||
and a separate soundcard is used for playback, the sampling rates are | and a separate soundcard is used for playback, the sampling rates are | |||
likely to differ slightly. Endpoint AECs SHOULD be robust to such | likely to differ slightly. Endpoint AECs SHOULD be robust to such | |||
conditions, unless they are shipped along with hardware that | conditions, unless they are shipped along with hardware that | |||
guarantees capture and playback to be sampled from the same clock. | guarantees capture and playback to be sampled from the same clock. | |||
skipping to change at page 5, line 18 | skipping to change at page 5, line 22 | |||
typically used in NLPs. Similarly, endpoints SHOULD have the ability | typically used in NLPs. Similarly, endpoints SHOULD have the ability | |||
to detect the presence of a headset and disable echo cancellation. | to detect the presence of a headset and disable echo cancellation. | |||
For some applications where the remote endpoint may not have an echo | For some applications where the remote endpoint may not have an echo | |||
canceller, the local endpoint MAY include a far-end echo canceller, | canceller, the local endpoint MAY include a far-end echo canceller, | |||
but if that is the case, it SHOULD be disabled by default. | but if that is the case, it SHOULD be disabled by default. | |||
6. Legacy VoIP Interoperability | 6. Legacy VoIP Interoperability | |||
The codec requirements above will ensure, at a minimum, voice | The codec requirements above will ensure, at a minimum, voice | |||
interoperability capabilities between WebRTC endpoints applications | interoperability capabilities between WebRTC endpoints and legacy | |||
and legacy phone systems that support G.711. | phone systems that support G.711. | |||
7. IANA Considerations | 7. IANA Considerations | |||
This document makes no request of IANA. | This document makes no request of IANA. | |||
Note to RFC Editor: this section may be removed on publication as an | Note to RFC Editor: this section may be removed on publication as an | |||
RFC. | RFC. | |||
8. Security Considerations | 8. Security Considerations | |||
End of changes. 12 change blocks. | ||||
22 lines changed or deleted | 26 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |