【发布时间】:2019-10-17 05:25:44
【问题描述】:
我正在尝试编写一个 C 应用程序来连接 VLC RTSP(通过 RTP)流并将帧保存为图像。 我使用 GStreamer RTSP 库:https://gstreamer.freedesktop.org/documentation/gst-plugins-base-rtsp-1.0/index.html?gi-language=c
我已经编写了一些如下所示的简单代码,但应用程序等待来自 VLC 的消息。我不确定这是否是一种很好的连接方式,但我现在陷入困境。也许我应该先向 VLC 发送一些东西,但我不知道该怎么做。谁能帮助或指出一些如何使用 GStreamer RTSP 的资源/示例?
#include <gstreamer-1.0/gst/rtsp/rtsp.h>
#include <stdio.h>
int main()
{
GstRTSPUrl *gstUrl = NULL;
const char* url = "rtsp://10.30.1.163:8554/test.sdp";
if(gst_rtsp_url_parse(url, &gstUrl) == GST_RTSP_OK) {
printf("URL PARSE");
GstRTSPConnection *gstRTSPConnection = NULL;
if(gst_rtsp_connection_create(gstUrl, &gstRTSPConnection) == GST_RTSP_OK) {
printf("Connection created\n");
GstRTSPMessage *message = NULL;
gst_rtsp_message_new(&message);
GstRTSPResult result = gst_rtsp_connection_connect_with_response(gstRTSPConnection, NULL, message);
if(result == GST_RTSP_ETIMEOUT){
printf("Timeout\n");
} else if(result == GST_RTSP_OK) {
printf("Connected\n");
printf("%s\n", gst_rtsp_connection_get_ip(gstRTSPConnection));
printf("Is tunelled: %d\n", gst_rtsp_connection_is_tunneled(gstRTSPConnection));
gst_rtsp_connection_receive(gstRTSPConnection, message, NULL);
}
}
}
return 0;
}
【问题讨论】:
标签: gstreamer vlc rtsp rtp sdp