gpt4 book ai didi

android - RTSP、RTCP 和 RTP 端口号

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:28 25 4
gpt4 key购买 nike

我试图了解 spydroid ( https://code.google.com/p/spydroid-ipcamera/ ) 的工作原理,以便为我的手机编写一个类似的应用程序。基于 spydroid,这里是我对 RTSP、RTCP 和 RTP 的理解。

RTSP 在指定端口上运行并设置所有内容。

RTCP 可以在任何端口上运行。有一个客户端端口和一个服务器端口。这是RTP的控制流程

RTP 可以在任何端口上运行。有一个客户端端口和一个服务器端口。这包含音频和视频流。这很令人困惑,因为它似乎实际上并没有在此端口上发送音频和视频。在 spydroid 中,它在端口 5006 上发送视频,在 5004 上发送音频。

Spydroid 正在通过 RTSP 发送此消息以确认端口...传输:RTP/AVP/UDP;单播;destination=123.456.789.00;client_port=65234-65235;server_port=44580-44581;ssrc=ba98a863;mode=play

我认为这是在说客户端(在我的例子中是 VLC)正在监听 65234,使用 UDP 获取 RTP 消息,使用 65235 获取 RTCP 消息。此外,spydroid 正在监听 44580 的 RTP 和 44581 的 RTCP。这样对吗?

现在在 RTSP 的 DESCRIBE 序列中,spydroid 告诉客户端 m=video 5006 RTP/AVP 96 我认为这意味着它将通过端口 5006 通过 UDP 发送视频。

我在上面的句子中所说的一切听起来都正确吗?

我真正想知道的是如何将这些信息转发到正确的端口。客户端端口由 VLC 自动分配。我尝试运行此命令... vlc "rtsp://192.168.1.104:8086"--rtp-client-port=58866 但 VLC 似乎忽略了它并选择了它自己的端口。所以我转发了端口 8086、5004 和 5006,但我不知道要为 RTP 和 RTCP 连接转发哪个端口,因为它每次都在变化。我可以完成这项工作的唯一方法是将所有端口转发到我的计算机。 (我有一个 linksys 路由器,它有一个 DMZ 选项)但这是一个糟糕的解决方案。有人可以指导我正确的方向吗?

此外,很高兴知道我正在这样做,因为我正在通过互联网通过外部 IP 地址发送所有内容。 spydroid 旨在用于局域网。

最佳答案

我不知道 RTSP 如何工作以及如何配置 VLC,但我对 RTP 略知一二。我猜测客户端端口意味着 spydroid 将发送数据包的位置,而服务器端口是它将用作源端口的端口。所以在 UDP 级别,RTP 数据包看起来像:

| SRC_PORT=44580 | DST_PORT=65234 | ... RTP_数据包 |

下一个:m=video 5006 RTP/AVP 96根据 SDP 标准,5006 是 spydroid 监听传入 RTP 数据包的端口(不知道为什么)并且 RTP 负载类型为 96。

因此,检查让 VLC 监听端口 65234 并将 {44580, 65234} 数据包转发到您的 PC 是否有效。您提供的信息有点令人困惑,而且似乎自相矛盾。因此,不能据此得出任何具体的结论。

关于android - RTSP、RTCP 和 RTP 端口号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16003442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com