C++ android中的RTSP客户端

C++ android中的RTSP客户端,c++,android,client,rtsp,C++,Android,Client,Rtsp,我正在用Android编写一个RTSP客户端。我能够收到所有请求的回复 i、 e 描述它发送回200行吗 带有传输的安装程序:RTP/AVP:unicast:client_port=4568:4569返回了200 OK消息 发送PLAY,并收到OK消息 之后如何获得音频和视频帧 我在博客上搜索过,但都说要在客户端监听,但我没有收到任何数据包 请让我知道我做得是否正确。您可能知道也可能不知道,但是Android已经使用VideoView内置了对RTSP的支持 这可能会缩短您的开发时间……或者,如

我正在用Android编写一个RTSP客户端。我能够收到所有请求的回复 i、 e

  • 描述它发送回200行吗
  • 带有传输的安装程序:RTP/AVP:unicast:client_port=4568:4569返回了200 OK消息
  • 发送PLAY,并收到OK消息
  • 之后如何获得音频和视频帧

    我在博客上搜索过,但都说要在客户端监听,但我没有收到任何数据包


    请让我知道我做得是否正确。

    您可能知道也可能不知道,但是Android已经使用VideoView内置了对RTSP的支持


    这可能会缩短您的开发时间……或者,如果您试图滚动自己的RTSP堆栈,则可能完全没有用。

    RTSP仅用于启动流媒体。它为您提供了真实流的SDP描述。您必须管理RTCP连接和每个通道(音频/视频)的RTP连接。要使用的端口是“客户端端口”


    从头开始编写RTSP/RTCP/RTP堆栈相当复杂。您可以查看在C++中实现这样一个栈的库。

    在网络上设置一个嗅探器,您应该看到目标IP端口4568的UDP包。 使用合适的嗅探器,您将能够看到rtsp对话框。也许你在答案中遗漏了什么

    您还应该检查安装响应的内容,以查看您请求的端口是否被接受

    检查事项:

    • 在UDP中侦听
    • 防火墙规则
    • 播放请求的范围:不要指定任何以确保服务器将播放某些内容

    如果您在路由器或防火墙后面,您可能不会收到任何信息,因为您的路由器/防火墙不知道如何处理传入的UDP数据包

    请首先尝试在局域网内安装本地Darwin流媒体服务器。这样防火墙就不重要了。流媒体将工作

    如果要从外部服务器尝试,请执行以下操作:

    1) 检查服务器响应中提到的客户端端口,有些服务器建议与请求的端口不同。您必须使用服务器建议的端口

    2) 如果端口正确,则可以从每个UDP端口向服务器发送64字节的空数据包(称为“开门器”)


    3) 如果以上两种方法都不能解决问题,请检查服务器端日志。服务器可能正在关闭UDP端口。

    它不能与设备和模拟器一起工作。它在PLAYER_INIT和PVMFFailure中失败。我发现它不适用于模拟器,但适用于我接触过的所有设备。其中一些要求您在清单中设置唤醒锁定权限(图中所示),我在清单文件中设置了唤醒锁定权限。它仍然会因PVMFFailure而失败。设置响应是正确的,即,它在200 OK时成功。如何使用嗅探器?在Android平台上使用它有什么文档吗?“如果你在路由器或防火墙后面,你可能不会收到任何东西,因为你的路由器/防火墙不知道如何处理传入的UDP数据包”——如何处理这种情况?现在我在防火墙后面