使用Qt多媒体和小工具播放网络流媒体视频

Playing a network streaming video using Qt MultiMedia and Widgets

本文关键字:播放 网络 流媒体 视频 工具 Qt 多媒体 使用      更新时间:2023-10-16

我正在尝试构建一个简单的qt应用程序,它将播放实时视频流。流媒体视频未在我的应用程序中播放。我已经使用qt播放了一个本地文件,但我无法播放实时视频流。我找到了这些链接,但它们对我没有帮助:-

使用Qt 播放实时视频流

Qt流IP摄像机视频

这是代码:-

#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();
}

我正在使用安卓手机中的一个应用程序来流式传输视频。流式视频正在VLC媒体播放器、Opera浏览器、Mozilla浏览器上播放。我尝试过不同的格式,比如MOV、MKV、WEBM(应用程序说我手机中的硬件渲染器不支持MP4)。请帮忙,卡住了一段时间。

EDIT-我不想使用像libVLC这样的任何其他库,因为我注意到流媒体视频在vlc媒体播放器中滞后。它可能存在一些性能问题。

我想出了一个办法。我无法使用QMultedia小部件。我不得不使用像libvlc或vlc-qt这样的外部库。它们有很好的API,通常没有性能问题(正如我之前所想的那样)。它们很容易与Qt(及其小部件)集成。