2016-04-10 68 views
0

我正在嘗試構建一個簡單的qt應用程序來播放實時視頻流。流式視頻不在我的應用中播放。我用qt播放了本地文件,但我無法播放實時視頻流。我發現這個鏈接,但他們並沒有幫助我: -使用Qt MultiMedia和Widgets播放網絡流媒體視頻

Play a Live video Stream using Qt

Qt Stream IP Camera Video

下面是代碼: -

#include <QApplication> 
#include <QtMultimediaWidgets/QVideoWidget> 
#include <QtMultimedia/QMediaPlayer> 
int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    QMediaPlayer *player = new QMediaPlayer; 
    QMediaContent *mc=new QMediaContent(QUrl("http://192.168.42.129:8080/video")); 
    player->setMedia(*mc); 
    player->setVolume(50); 
    QVideoWidget *videoWidget = new QVideoWidget; 
    videoWidget->resize(700,700); 
    videoWidget->show(); 
    player->setVideoOutput(videoWidget); 
    player->play(); 

    qDebug()<<player->availableMetaData()<<player->currentMedia().canonicalUrl(); 
    qDebug()<<player->errorString(); 

    return a.exec(); 
} 

我用我的Android手機應用程序流式傳輸視頻。流媒體視頻在VLC媒體播放器,Opera Browser,Mozilla瀏覽器上播放。我已經嘗試過不同的格式,如MOV,MKV,WEBM(該應用說MP4不支持我手機中的硬件渲染器)。請幫忙,堅持一會兒。

編輯 -我不想使用任何其他類似libVLC的庫,因爲我注意到流式視頻在vlc媒體播放器中滯後。它可能有一些性能問題。

回答

0

我想出了一個辦法。我無法使用QMultimedia小部件。我必須使用外部庫,如libvlcvlc-qt。他們有良好的API,通常沒有性能問題(正如我之前所想的)。他們很容易與Qt(及其部件)集成。