2016-04-05 32 views
2

私はolimex a13ボード上で、ちょうどeglfs、つまりウィンドウシステムなしで作業しています。このためQt MultimediaのスタッフビデオとカメラはQtとして使用されていません。GstreamerにはXが必要です。だから私はですQtGstreamerライブラリを使用しています。QtGstreamer camerabin2用法

私はexamplesに続き、期待どおりに動作しているメディアプレーヤーを作成しました。さて、私はカメラをしてを使って、悪いからpluginsです。

//init QGst 
QGst::init(&argc, &argv); 
//create video surface 
QGst::Quick::VideoSurface* videoSurface = new QGst::Quick::VideoSurface(&engine); 

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

//cameraplayer.cpp

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を使用していますか?前もって感謝します。

+0

この問題を解決できましたか?私は同じ問題を抱えています。つまり、私のビデオシンクにビデオが表示されていません。 – Luca

+0

@ルーカ、私の答えをチェックしてください。ありがとう – ramtheconqueror

答えて

1

いくつかのプラグイン(マルチファイルシンク)が欠落していることに気付きました。 Qtアプリケーションを--gst-debug-level=4引数で開始し、gstreamerが不足しているプラ​​グインについて報告しました。

+0

ヒントをありがとう!私は今夜​​これを試して、それが私の問題を解決するかどうかを見てみましょう! – Luca