Я создал сервер rtsp/h264/mjpeg. Это работает хорошо. Но теперь я должен получить запрос для каждого нового подключенного клиента. Например, я должен получить запрашиваемое разрешение от запроса клиента: RTSP: //192.116.10.20: 8554/поток ширины = 1920 & высоты = 1280Вывод параметров запроса GStreamer и URI для каждого нового клиента
Я судимый сделать это, используя следующий код:
....
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 [и]: // [пользователь: ПАРОЛЬ @] хост [: порт]/abspath
После соединения с VLC с RTSP запроса [запроса?]: // 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 для клиента с «запросом», заполненным до «width = 1920 & height = 1280»?