【问题标题】:Play a Live video Stream using Qt使用 Qt 播放实时视频流
【发布时间】:2014-02-22 06:09:06
【问题描述】:

下面给出的是使用 Qt 播放视频文件的代码。我不想播放视频,而是想播放来自 IP 摄像机的实时视频流。另一种方法是在 Qt 中嵌入 VLC 播放器,并提供该项目的链接here。问题是我不知道如何在 Qt 中包含播放器。那么我该如何进行呢?

#include <QApplication>
#include <QtMultimediaWidgets/QVideoWidget>
#include <QtMultimedia/QMediaPlayer>
#include <QtMultimedia/QMediaPlaylist>
#include <QFile>
#include <QHBoxLayout>
#include "DemoPlayer.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget *widget=new QWidget;
    widget->resize(400,300);

    QMediaPlayer *player=new QMediaPlayer;
    QVideoWidget *vw= new QVideoWidget;
    QHBoxLayout *layout=new QHBoxLayout;

    layout->addWidget(vw);
    widget->setLayout(layout);
    player->setVideoOutput(vw);
    player->setMedia(QUrl::fromLocalFile("C:/Users/Administrator/Desktop/1minute.mp4"));
    player->play();
    widget->show();
    qDebug()<<player->availableMetaData()<<player->currentMedia().canonicalUrl();

    return a.exec();
}

【问题讨论】:

  • 上面的代码工作得很好......请让你的问题更清楚一点
  • @Metoo 现在检查问题。
  • @Metoo 我有,无法将其添加到应用程序,我是 Qt 新手,所以我不知道该怎么做。如果您知道如何添加它,请告诉我如何添加它,或者如果有任何教程告诉我,因为我找不到任何。
  • 您是否在支持 X11 的系统上,即 Linux、Mac(在某种程度上)?顺便说一句,metoo 提供的链接本身已经是一个教程......

标签: c++ qt video video-streaming


【解决方案1】:

遵循此代码。您可以使用有效的窗口 id 将小部件嵌入到另一个小部件中。 How to show output video of other application in Qt? 你可以使用 qx11embedwidget 和 qx11embedwidgetcontainer QX11EmbedWidget and QX11EmbedContainer

【讨论】:

  • 链接打不开。你确定它是一个有效的链接吗?
  • 只检查qx11EmbedWidget和QX11EmbedContainer..你能打开堆栈溢出线程吗..?
  • 我可以打开主题,但无法打开答案中提供的链接。这就是问题所在。
  • 对我来说也是。但您可以开始搜索 QX11EmbedWidget。您正在寻找的所需小部件容器
  • QX11EmbedWidget 类提供了一个 XEmbed 客户端小部件。 XEmbed 是一种 X11 协议,支持将一个小部件从一个应用程序嵌入到另一个应用程序。 XEmbed 客户端小部件是嵌入到容器中的窗口。容器是嵌入(或吞噬)外部应用程序的图形位置。
猜你喜欢
  • 2010-12-23
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 2016-07-31
  • 1970-01-01
相关资源
最近更新 更多