【问题标题】:Gstreamer rtsp server linking in Qt CreatorQt Creator中的Gstreamer rtsp服务器链接
【发布时间】:2013-01-31 23:47:42
【问题描述】:

我已安装 Gstreamer sdk 并尝试编译此代码:

#include <gst/gst.h>
#include <gst/rtsp-server/rtsp-server.h>

int main (int argc, char *argv[])
{
  GMainLoop *loop;
  GstRTSPServer *server;
  GstRTSPMediaMapping *mapping;
  GstRTSPMediaFactory *factory;

  gst_init (&argc, &argv);
  loop = g_main_loop_new (NULL, FALSE);
  server = gst_rtsp_server_new ();
  mapping = gst_rtsp_server_get_media_mapping (server);
  factory = gst_rtsp_media_factory_new ();
  gst_rtsp_media_factory_set_launch (factory,
        "( videotestsrc is-live=1 ! x264enc ! rtph264pay )");

  gst_rtsp_media_factory_set_shared (factory, TRUE);
  gst_rtsp_media_mapping_add_factory (mapping, "/test", factory);
  g_object_unref (mapping);
  gst_rtsp_server_attach (server, NULL);
  g_main_loop_run (loop);

  return 0;
}

我遇到了类似this question 的错误,

在函数'main'中:

test-launch01.c:(.text+0x64): 未定义的引用

`gst_rtsp_server_new' test-launch01.c:(.text+0x74): 未定义

对“gst_rtsp_server_get_media_mapping”的引用

test-launch01.c:(.text+0x7d): 未定义的引用

`gst_rtsp_media_factory_new' test-launch01.c:(.text+0x95): undefined

对“gst_rtsp_media_factory_set_shared”的引用

test-launch01.c:(.text+0xad): 未定义的引用

`gst_rtsp_media_factory_set_launch' test-launch01.c:(.text+0xc9):

对“gst_rtsp_media_mapping_add_factory”的未定义引用

test-launch01.c:(.text+0xe9): 未定义的引用

`gst_rtsp_server_attach' collect2: ld 返回 1 个退出状态

我正在使用 Qt Creator,这是我的 .pro 文件:

QT += 核心

QT -= gui

TARGET = gstreamer CONFIG += 控制台配置 -= app_bundle

CONFIG+=link_pkgconfig

PKGCONFIG += gstreamer-0.10

模板 = 应用程序

SOURCES += main.cpp

包含路径 += /home/kato/ew-gst-sdk-linux-x86_64-2012.03-0/include/gstreamer-0.10

INCLUDEPATH += /usr/include/glib-2.0 INCLUDEPATH += /usr/lib/x86_64-linux-gnu/glib-2.0/include INCLUDEPATH += /usr/include/libxml2

LIBS += -L/home/kato/ew-gst-sdk-linux-x86_64-2012.03-0/lib \ -lgstreamer-0.10 \ -lgstrtsp-0.10

链接到 pkg-config gstreamer-rtsp-0.10 --libs 正确吗??

我遇到了同样的错误。

【问题讨论】:

    标签: c qt rtsp gstreamer


    【解决方案1】:

    我的 .pro 文件是:

        QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    TARGET = Gestion_Flux_Video
    TEMPLATE = app
    
    
    SOURCES += main.cpp\
            mainwindow.cpp \
        streaming.cpp
    
    HEADERS  += mainwindow.h \
        streaming.h
    
    FORMS    += mainwindow.ui
    
    INCLUDEPATH += /opt/gstreamer-sdk/include \
            /opt/gstreamer-sdk/include/gstreamer-0.10 \
            /opt/gstreamer-sdk/lib/glib-2.0/include \
            /opt/gstreamer-sdk/include/glib-2.0 \
            /opt/gstreamer-sdk/include/libxml2
    
    LIBS += -L/opt/gstreamer-sdk/lib -lglib-2.0 \
                                    -lgstreamer-0.10 \
                                    -lgobject-2.0 \
                                    -lgtk-x11-2.0 \
                                    -lgstrtsp-0.10 \
                                    -lgstapp-0.10 \
            -L/opt/gstreamer-sdk/include/gstreamer-0.10/gst/rtsp-server -lgstrtspserver-0.10
    

    编译对我来说很好。

    【讨论】:

    • 所以您可以在本地查看视频流,还是也设置为远程?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多