QtGstreamer camerabin2用法

时间:2016-04-05 10:57:16

标签: c++ qt gstreamer qtgstreamer

我在eglfs板上工作只有Qt Multimedia,即没有窗口系统。由于此Qt内容,视频和相机无法使用Gstreamer X,而QtGstreamer需要camerabin2。所以我使用//init QGst QGst::init(&argc, &argv); //create video surface QGst::Quick::VideoSurface* videoSurface = new QGst::Quick::VideoSurface(&engine); CameraPlayer player; player.setVideoSink(videoSurface->videoSink()); here

我跟随examples并创建了一个按预期工作的媒体播放器。现在,我想要使用来自错误pluginsvoid 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()

// cameraplayer.cpp

QtGstreamer

然后我打电话给{{1}},但是没有视频。我在这里错过了什么吗?有人用{{1}}来播放网络摄像头吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我意识到一些插件(multifilesink)丢失了。使用Qt参数和--gst-debug-level=4启动了我的gstreamer应用程序,然后报告了有关插件丢失的信息。