Skip to main content

4. 流方向 (Stream Orientation)

在某些情况下——尤其是涉及移动设备的情况——摄像头的方向可能与编码器使用的方向不匹配。更重要的是,方向可能会在通话过程中发生变化,要求接收者改变渲染流的方向。

虽然发送者可以选择简单地改变帧的预编码方向,但这可能不实际或不高效 (特别是在摄像头接口返回预压缩视频帧的情况下)。请注意,这种行为的可能性增加了另一组情况,在这些情况下,屏幕的分辨率可能会在视频流中途发生变化,这是对第 3.2 节中提到的情况的补充。

为了适应这些情况,能够以默认方向以外的方向生成媒体的 WebRTC 实现必须 (MUST) 支持生成 [TS26.114] 第 7.4.5 节中描述的视频方向协调 (Coordination of Video Orientation, CVO) 机制的 R0 和 R1 位,并且当对等方表示支持该机制时,必须 (MUST) 为所有方向发送它们。它们可以 (MAY) 支持发送 CVO 扩展中的其他位,包括更高分辨率的旋转位。所有实现应该 (SHOULD) 支持 R0 和 R1 位的解释,并且可以 (MAY) 支持其他 CVO 位。

此外,某些编解码器支持方向的带内信令 (例如,H.264 和 H.265 [H265] 中的 SEI "Display Orientation" 消息)。如果已协商 CVO,则发送者不得 (MUST NOT) 使用此类编解码器特定的机制。但是,当 SDP 中未发出对 CVO 的支持信号时,此类实现可以 (MAY) 改为使用编解码器特定的机制。