首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QtGstreamer camerabin2使用

QtGstreamer camerabin2使用
EN

Stack Overflow用户
提问于 2016-04-05 10:57:15
回答 1查看 723关注 0票数 2

我正在olimex a13板上工作,只有eglfs,即,没有窗口系统。因为有了这个Qt Multimedia,视频和摄像机无法工作,因为Qt使用Gstreamer,而Gstreamer又需要X。所以我使用的是QtGstreamer库,也就是这里

我跟踪了示例并创建了一个媒体播放器,它正在按预期工作。现在,我想做一个相机,并使用camerabin2,这是从坏的插件

这是我的密码:

代码语言:javascript
复制
//init QGst
QGst::init(&argc, &argv);
//create video surface
QGst::Quick::VideoSurface* videoSurface = new QGst::Quick::VideoSurface(&engine);

CameraPlayer player;
player.setVideoSink(videoSurface->videoSink());

//摄影记者

代码语言:javascript
复制
void open() 
{
    if (!m_pipeline) {
        m_pipeline = QGst::ElementFactory::make("camerabin").dynamicCast<QGst::Pipeline>();
        if (m_pipeline) {
            m_pipeline->setProperty("video-sink", m_videoSink);
            //watch the bus for messages
            QGst::BusPtr bus = m_pipeline->bus();
            bus->addSignalWatch();
            QGlib::connect(bus, "message", this, &CameraPlayer::onBusMessage);
            //QGlib::connect(bus, "image-done", this, &CameraPlayer::onImageDone);
        } else {
            qCritical() << "Failed to create the pipeline";
        }
    }
}
//-----------------------------------
void CameraPlayer::setVideoSink(const QGst::ElementPtr & sink)
{
    m_videoSink = sink;
}

//-----------------------------------
void CameraPlayer::start()
{
    m_pipeline->setState(QGst::StateReady);
    m_pipeline->setState(QGst::StatePlaying);
}

然后我打电话给cameraPlayer.start(),它不起作用,也就是说,没有视频。我是不是漏掉了什么?有人用QtGstreamer来传送摄像头吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-03 12:52:20

我意识到一些插件(多文件墨水)丢失了。使用Qt参数和gstreamer启动我的--gst-debug-level=4应用程序,然后报告缺少插件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36424474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档