【发布时间】:2014-04-13 21:18:52
【问题描述】:
如果我正在接收 rtp 流,我应该向哪个端口发送 rtcp 接收器报告?例如,如果我使用 SDP 通过 SIP 与服务器协商仅接收流,我只会指定用于接收 rtp 和 rtcp 流的端口。服务器应该如何响应。它只需要发送 rtp sterams。因此它可以选择套接字末端的任何端口。它应该如何指定它将监听 rtcp 接收器报告的 rtcp 端口?
【问题讨论】:
标签: video-streaming sip rtp
如果我正在接收 rtp 流,我应该向哪个端口发送 rtcp 接收器报告?例如,如果我使用 SDP 通过 SIP 与服务器协商仅接收流,我只会指定用于接收 rtp 和 rtcp 流的端口。服务器应该如何响应。它只需要发送 rtp sterams。因此它可以选择套接字末端的任何端口。它应该如何指定它将监听 rtcp 接收器报告的 rtcp 端口?
【问题讨论】:
标签: video-streaming sip rtp
通常,RTCP 端口是用于 RTP 的端口号的下一个端口号。例如,如果 RTP 端口是 30000,那么端口 30001 将用于 RTCP。
在您提到的情况下,您可以等到从服务器收到 RTP 数据包,然后将 RTCP 接收器报告发送到 RTP 端口号 + 1。
【讨论】:
通常,它是协商的 RTP 端口的下一个端口号。
这种“RTP + 1 = RTCP”规则的罕见例外是当 SIP 会话通过网络地址转换设备时,并且涉及端口映射。
RFC 3605 解释了处理这种情况的 SDP 扩展。
【讨论】:
根据RFC3264,recvonly 流和 sendrecv 流没有区别。 RTCP消息可以发送到RTP端口号+1。
对于 recvonly 和 sendrecv 流,端口号和地址在 要约表明要约人希望在哪里接收媒体 溪流。对于 sendonly RTP 流,地址和端口号 间接指示提供者希望在哪里接收 RTCP 报告。 除非另有明确指示,否则报告将发送至 端口号比指示的数字大一号。
【讨论】: