RTCRtpCapabilities - 用于描述 RTCRtpSender 或 RTCRtpReceiver 的功能
RTCRtpCapabilities
字典是一种数据类型,用于描述 RTCRtpSender
或 RTCRtpReceiver
的功能,是 RTCRtpSender.getCapabilities()
或 RTCRtpReceiver.getCapabilities()
静态函数调用后的返回值,这两个函数均返回一个 RTCRtpCapabilities
对象数组。
RTCRtpCapabilities
对象包含匹配 RTCRtpCodecCapability
对象的数组(每个对象描述一个编解码器的功能)和该编解码器支持的 RTP 标头扩展的数组。
属性
codecs
一个包含 RTCRtpCodecCapability
对象的数组,每个对象描述了 RTCRtpSender
或 RTCRtpReceiver
支持的编解码器。此数组中有一些特殊的条目,下面在编解码器数组部分中进行了介绍。
headerExtensions
匹配 RTCRtpHeaderExtensionCapability
字典的对象数组。每个对象都包含一个表示 uri
的 DOMString
,用于指定标头扩展名的 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/red
或 video/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 的定义 |
候选推荐 | - |
桌面浏览器兼容性
暂无兼容数据