我正在使用libcurl在c编程中实现RTSP客户端。
为了正确配置RTP / RTCP会话,我需要具有RTSP服务器的传输端口(向其发送RTCP RR)。
我一直在查看文档,但没有成功。
我想这可能是可能的。我对吗?我一直在尝试使用" curl_easy_getinfo"方法,但我没有看到所需的参数来处理我的要求。
也许我需要解析来自RTSP服务器的整个回复(以某种方式从libcurl收到的服务器获取回复字符串)。但是,至少,我需要知道没有别的办法。并且,如果没有其他方法,这将是获得此类回复字符串的最佳方式?
答案 0 :(得分:1)
在rtsp示例rtsp.c中,libcurl用户解析RTSP答案。
要获取RTP和RTCP端口,您需要解析SETUP答案的Transport
标题。
这可以通过以下方式实现:
int rtpport=0;
int rtcpport=0;
char *t=strstr(rtspheader, "server_port=");
if (t != NULL)
{
if (sscanf(t, "server_port=%d-%d", &rtpport, &rtcpport) == 2)
{
printf("Server ports RTP:%d RTCP:%d\n",rtpport, rtcpport);
}
}