我創建了rtsp/h264/mjpeg服務器。它運作良好。但現在我必須爲每個新連接的客戶端查詢。例如,我有從客戶端獲得的查詢請求解析:RTSP://192.116.10.20:8554 /流寬度= 1920 &高度= 1280爲每個新客戶端提取GStreamer和URI查詢參數
我已經tryed使用下面的代碼來做到這一點:
....
gulong clientConnectedConfigureId = g_signal_connect(m_server, "client-connected", (GCallback)ClientConnected, this);
....
static void ClientConnected(GstRTSPServer *gstrtspserver, GstRTSPClient *arg1, gpointer user_data)
{
GstRTSPConnection *connection = gst_rtsp_client_get_connection(arg1);
if(!connection)
{
return;
}
GstRTSPUrl *uri = gst_rtsp_connection_get_url(connection);
if(!uri)
{
return;
}
gchar *urlString = gst_rtsp_url_get_request_uri (uri);
std::stringstream ssTemp;
ssTemp << "ClientConnected - urlString = " << urlString;
InternalLog::Debug(ssTemp.str());
g_free(urlString);
}
GstRTSPUrl包含下列成員: // RTSP [U]:// [用戶命令:passwd @]主機[:端口]/ABSPATH
與查詢RTSP從VLC連接之後[查詢?]:// 192.116.10.20:8554/stream?width=1920 & height = 1280結果如下:
ClientConnected - urlString = RTSP://192.116.10.20:61099(空)
GstRTSPUrl僅包含主機= 192.116.10.20和端口= 61099。其他字段如「abspath」或「query」等於NULL。
在netstat實用程序中,我看到端口61099是VLC應用程序的客戶端端口。它連接到端口8554.
如何才能接收rtsp查詢客戶端與「查詢」填充到「寬度= 1920 &高度= 1280」?