- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图了解 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/
不幸的是,我仍然坚持使用 RTP/RTCP 通信来正确访问我的 IP 摄像机。 我想做什么 相机有一个我想读取的内部缓冲区。所以我通过 RTSP 与相机通信并告诉它流式传输数据。当相机通过整个缓冲区时
我正在使用基于 WinPCap 构建的 SharpPCap 来捕获 UDP 流量。我的最终目标是从 H.323 捕获音频数据并将这些电话对话保存为 WAV 文件。但首先是第一件事——我需要弄清楚我的
我正在做一些依赖于 Wi-Fi RAK5206 电子板的 C++ 项目。我正在使用 ffmpeg 库来获取视频和音频流,我遇到了可以启动和停止流四次的问题,但是当我想启动第五次时,我得到了错误。错误描
我试图了解 spydroid ( https://code.google.com/p/spydroid-ipcamera/ ) 的工作原理,以便为我的手机编写一个类似的应用程序。基于 spydroid
我的 VOIP Android 应用程序有 C/Native 库,它执行登录/注销等所有业务逻辑。 问题是当设备屏幕被锁定时,应用程序(c 代码)无法从服务器接收任何数据包。我用 Wireshark
我正在使用 Tcpdump 在我的网络接口(interface)上捕获数据包。在 Wireshark 中,我可以看到 RTP 和 RTCP 事务在同一个端口上进行。我正在使用 Libpcap 编写一个
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 2 年前。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我正在使用 ffmpeg C 库。我需要拦截来自相机的 RTCP 数据包,以便从发件人报告中获取时间戳。 ffmpeg 中是否有任何方法或结构可以提供此信息?我完全被卡住了,但我无法解决这个问题。 任
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
一点背景知识:我正在尝试记录通过 mediasoup v2 SFU 进行的 webrtc 调用。我正在使用 mediasoup 的 room.createRtpStreamer()生成将 RTP/RT
我尝试制作 Android WebRTC 应用 我在 Android Oreo 和 Pie 上测试过,该应用运行良好。 但是在 Android Lollipop 和 Marshmallow 上,当我调
我正在使用 Java 应用程序使用 JAIN SIP java API 与 Nuance 语音服务器建立 SIP session 。然后,我通过发送一些 MRCP 命令(例如 GET_PARAMS、S
我正在尝试根据 http://www.csee.umbc.edu/~pmundur/courses/CMSC691C/lab5-kurose-ross.html 在 Java 中实现 RTSP 协议(
我是一名优秀的程序员,十分优秀!