2016-04-10 70 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(及其部件)集成。