RTCRtpCapabilities - 用于描述 RTCRtpSender 或 RTCRtpReceiver 的功能

RTCRtpCapabilities 字典是一种数据类型,用于描述 RTCRtpSenderRTCRtpReceiver 的功能,是 RTCRtpSender.getCapabilities()RTCRtpReceiver.getCapabilities() 静态函数调用后的返回值,这两个函数均返回一个 RTCRtpCapabilities 对象数组。

RTCRtpCapabilities 对象包含匹配 RTCRtpCodecCapability 对象的数组(每个对象描述一个编解码器的功能)和该编解码器支持的 RTP 标头扩展的数组。

属性

codecs

一个包含 RTCRtpCodecCapability 对象的数组,每个对象描述了 RTCRtpSenderRTCRtpReceiver 支持的编解码器。此数组中有一些特殊的条目,下面在编解码器数组部分中进行了介绍。

headerExtensions

匹配 RTCRtpHeaderExtensionCapability 字典的对象数组。每个对象都包含一个表示 uriDOMString,用于指定标头扩展名的 URI,如 RFC 5285 中所述。

描述

编解码器数组

codecs 数组是匹配 RTCRtpCodecCapability 字典对象的数组。这些对象中的每一个都描述一个编解码器及其基本功能。其属性是:

channels 可选

一个无符号整数值,指示编解码器支持的最大通道数;例如,仅支持单声道声音的编解码器的值将为 1;立体声编解码器将带有 2,依此类推。

clockRate

一个无符号长整数,以赫兹(Hz)指定编解码器的时钟速率。 IANA 维护一个编解码器及其参数列表,包括其时钟速率。

mimeType

一个 DOMString,指示编解码器的 MIME 媒体类型和子类型。有关可能在此处引用的潜在编解码器的详细信息,请参见 WebRTC 使用的编解码器

sdpFmtpLine 可选

一个 DOMString,会在 SDP 中对应于编解码器的 a=fmtp 行中提供格式特定的参数字段(如果存在该行)。如果没有参数字段,则忽略此属性。

浏览器只会分别报告不同的功能组合。如果可以将两组能力描述为一组,那么它们将是一组。这意味着,例如,如果 H.264 编解码器有两个条目(mimeType 标识为 video/H264),那么功能对象中有其他值表明它们在某些方面有何不同。

RTP 使用的 MIME 类型字符串不同于其他地方使用的字符串。有关这些类型的完整 IANA 注册中心,请参见 RFC 3555, section 4

应该始终存在三个特殊条目,它们代表传输的基础组件。这些组件是:

RED (REDundant Audio Data 冗余音频数据)

RED 条目的媒体类型可能会有所不同,因为它有多个版本,但是它将以 red 结尾,例如 video/redvideo/fwdred。可以在 RFC 2198 中找到基本的 RED 标准。如果支持不同的格式,则可能有多个 RED 条目。在这种情况下,每个媒体都将具有唯一的媒体类型。

FEC (Forward Error Correction 前向纠错)

FEC 组件处理纠错数据;由于存在可用的标准高级版本,其媒体类型也可能有所不同,但始终以 fec 结尾。一个可能的值为 video/ulpfec(通用错误连接模型)。如果支持多个格式,则也可能有多个 FEC 条目。

RTX (Retransmission 重传)

该组件负责数据的重传;媒体类型应为 video/rtx。 RTX 只有一个条目,并且没有 sdpFmtpLine 属性。

看到这些出现在列表中不要感到惊讶;如果您只对用于媒体本身的实际编解码器感兴趣,请准备忽略它们。

规范

规范 状态 备注
WebRTC 1.0: Real-time Communication Between Browsers
RTCRtpCapabilities 的定义
候选推荐 -

桌面浏览器兼容性

暂无兼容数据