跳到主要内容

6. 编解码器特定考虑 (Codec-Specific Considerations)

SDP 允许使用 [RFC6236] 中描述的机制, 以独立于编解码器的方式指示偏好的视频分辨率. WebRTC 端点 MAY 发送 "a=imageattr" 属性, 以指示其希望接收的最大分辨率. 发送方 SHOULD 解释并遵循该属性, 将编码分辨率限制为所指示的最大尺寸, 因为接收方可能无法处理更高分辨率.

此外, 编解码器也可以包含编解码器特定的方法, 用于通告接收方在分辨率、帧率和比特率方面的最大能力.

除非 SDP 中另有信令, 视频流接收方 MUST 能够以至少 20 fps 的速率解码分辨率至少为 320 x 240 像素的视频. 这些值基于 [HSUP1] 中的建议选取.

鼓励编码器支持以上述至少相同的分辨率和帧率对媒体进行编码.

6.1. VP8

对于 [RFC6386] 中定义的 VP8 编解码器, 端点 MUST 支持 [RFC7741] 中定义的载荷格式.

除 [RFC6236] 机制之外, VP8 编码器 MUST 限制其发送的流, 使其符合接收方在相应 max-fr 和 max-fs SDP 属性中指示的值.

除非另有信令, 使用 VP8 的实现 MUST 按隐含的 1:1 (正方形) 宽高比编码和解码像素.

6.2. H.264

对于 [H264] 编解码器, 端点 MUST 支持 [RFC6184] 中定义的载荷格式. 此外, 它们 MUST 支持 Constrained Baseline Profile Level 1.2, 并 SHOULD 支持 H.264 Constrained High Profile Level 1.3.

H.264 编解码器的实现使用了多种可选参数. 为提高互操作性, 指定以下参数设置:

packetization-mode: MUST 支持 packetization-mode 1. 其他模式 MAY 通过协商后使用.

profile-level-id: 实现 MUST 在 SDP 中包含该参数, 并且在收到该参数时 MUST 解释它.

max-mbps, max-smbps, max-fs, max-cpb, max-dpb, and max-br:

这些参数允许实现声明其能够以高于其级别 (通过 profile-level-id 设置) 所通告的速率和值支持 H.264 的某些特性. 实现 MAY 在其 SDP 中包含这些参数, 但在收到这些参数时 SHOULD 解释它们, 以便发送尽可能高质量的视频.

sprop-parameter-sets: H.264 允许序列和图像信息以带内和带外两种方式发送. WebRTC 实现 MUST 以带内方式信令此信息. 这意味着 WebRTC 实现 MUST NOT 在其生成的 SDP 中包含该参数.

H.264 编解码器 MAY 发送补充增强信息 (Supplemental Enhancement Information, SEI) "filler payload" 和 "full frame freeze" 消息, 并 MUST 支持对这些消息的正确解释. "full frame freeze" 消息用于视频切换 MCU, 以确保在不同输入流之间切换时解码显示画面保持稳定.

当 SDP 中未信令视频方向 (video orientation, CVO) RTP 头扩展的使用时, H.264 实现 MAY 发送 Display Orientation SEI 消息, 并 SHOULD 支持对这些消息的正确解释.

实现 MAY 发送并处理 "User data registered by Rec. ITU-T T.35" 和 "User data unregistered" 消息. 即使不处理这些消息, 实现也 MUST 准备好接收它们且不产生任何不良影响.

除非另有信令, 使用 H.264 的实现 MUST 按隐含的 1:1 (正方形) 宽高比编码和解码像素.