c++ - 使用 Qt MultiMedia 和 Widgets 播放网络流媒体视频

标签 c++ qt video

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

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 浏览器、Mozilla 浏览器上播放。我尝试过不同的格式,如 MOV、MKV、WEBM(该应用程序显示我手机中的硬件渲染器不支持 MP4)。请帮忙,坚持了一会儿。

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

最佳答案

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

关于c++ - 使用 Qt MultiMedia 和 Widgets 播放网络流媒体视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36530362/

相关文章:

javascript - 在 Angular js 中嵌入来自 json 响应的 Youtube 视频 url 和 Vimeo 视频 url 时的问题

html - 增加视频分辨率但不增加可见尺寸

PHP fseek 与远程视频或替代方案

c++ - Qt : pass values from a window to another

c++ - 如何在 C++ 中选择数组中的不同数字?

python - 对齐 qTableWidget 中的可检查项目

qt - QTreeView中选择慢,为什么?

python - PySide6.1 与 matplotlib 3.4 不兼容

c++ - 文件可以以 0x80 字符结尾吗?

c++ - 异常时的可移植 C++ 堆栈跟踪