RTSP正在获取流数据

RTSP getting stream data

本文关键字:数据 获取 RTSP      更新时间:2023-10-16

我有一个IP摄像机,可以通过RTSP向我提供媒体数据。

我开发了一个获取媒体数据的应用程序。

我使用C++和Qt3。

我创建了套接字。将其连接到我的设备IP端口=554。

我首先查询

设置rtsp://192.168.4.160/ufirststreamRTSP/1.0\r\nCSeq:1\r\n传输:RTP/AVP;client_port=554\r\n\r\n

得到一个答案:

RTSP/1.0 200 OKCSeq:1日期:2012年3月24日星期六17:24:59 GMT传输:RTP/AVP;单播;destination=192.168.4.186;source=192.168.4.160;client_port=0-1;server_port=2000-2001会议:413F4DDB

我解析它以获取会话值,然后执行下一个查询:

播放rtsp://192.168.4.160/ufirststreamRTSP/1.0CSeq:1会议:413F4DDB

服务器说:

RTSP/1.0 200 OKCSeq:1日期:2012年3月24日星期六格林尼治标准时间17:25:02会议:413F4DDBRTP信息:url=rtsp://192.168.4.160/ufirststream/track1;seq=6716;rtptime=406936171

如何获取媒体数据???我原以为PLAY方法会让服务器给我一个流,但它只给了我一个rtsp的url和其他信息。。。

我需要一个来自相机的二进制流,你能给我下一步的建议吗??

SETUP请求的Transport标头指示将使用哪个协议发送流,client_port指示客户端将侦听的端口。

尝试打开两个连续的UDP端口,并将该范围作为client_port=port1-port2而不是554传递。这两个端口将用于RTP和RTCP流(视频和控制数据)。

此外,RTP端口号应该是偶数,RTCP端口应该是下一个奇数(如果您希望端口范围是随机的,而不是用户选择的,请参阅该问题)。