2016-04-05 15 views
2

Sadece eglfs ile çalışıyorum, eglfs i.e, pencereleme sistemi yok. Bu Qt Multimedia şeyler nedeniyle video ve kamera QtGstreamer kullanıyor ve X gerekir. Bu yüzden here olan QtGstreamer kitaplığı kullanıyorum.QtGstreamer camerabin2 kullanımı

examples'u takip ettim ve beklendiği gibi çalışan bir ortam yürütücüsü oluşturdum. Şimdi, plugins numaralı telefondan camerabin2 numaralı telefonu kullanarak fotoğraf makinesi kullanmak istiyorum.

//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); 
} 

Sonra yani çalışmıyor cameraPlayer.start(), hiçbir videoyu çağırır:

Bu benim kodudur. Burada bir şey mi eksik? Hiç kimse web kamerası için QtGstreamer kullandı mı? Şimdiden teşekkürler.

+0

Bu sorunu çözmeyi başardınız mı? Aynı sorunu yaşıyorum, videomda video görüntüsü yok. – Luca

+0

@Luca, lütfen cevabımı kontrol edin. Teşekkürler – ramtheconqueror

cevap

1

Bazı eklentilerin (multifilesink) eksik olduğunu anladım. Qt uygulamamı --gst-debug-level=4 argümanında ve gstreamer numaralı telefondan başlattıktan sonra, eksik eklentiler hakkında rapor verdim.

+0

Bahşiş için teşekkürler! Bu gece bunu deneyeceğim ve sorunumu çözüp çözmediğini göreceğim! – Luca