QT QMediaPlayer网路拉流
本文用于介绍如何通过Qt提供的一个跨平台媒体播放器类QMediaPlayer实现网络拉流。我用的是海康摄像头在萤石云的链接。
一、安装解码库LAVFilters解码库
下载地址:https://github.com/Nevcairiel/LAVFilters/releases
下载LAVFilters-0.77.1-Installer.exe

下载后直接运行安装即可。
二、示例程序
在.pro文件中添加
QT += multimedia multimediawidgets

以下是.h文件和.cpp文件
代码如下(示例):
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtMultimedia/QMediaPlayer>
#include <QtMultimedia/QMediaPlaylist>
#include <QtMultimediaWidgets/QVideoWidget>
#include <QMainWindow>
#include<QDebug>
#include<QVBoxLayout>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QHBoxLayout *m_layout= new QHBoxLayout(this);
QMediaPlayer *m_player = new QMediaPlayer(this);
m_player->setMedia(QMediaContent(QUrl("https://xxxx")));//我这里的拉流地址是萤石云flv流畅格式的
QVideoWidget *m_videoW = new QVideoWidget(this);
m_videoW->resize(500,800);
m_layout->addWidget(m_videoW);
this->setLayout(m_layout);
m_player->setVideoOutput(m_videoW);
m_videoW->show();
m_player->play();
}
MainWindow::~MainWindow()
{
delete ui;
}
该文介绍了如何利用Qt的QMediaPlayer类结合LAVFilters解码库,在Windows平台上实现从海康摄像头的萤石云链接进行网络视频流播放。首先需要下载并安装LAVFilters解码库,然后在Qt项目中添加多媒体模块支持,创建QMediaPlayer对象,设置媒体源为萤石云的FLV流畅格式链接,并通过QVideoWidget显示视频流。

4019

被折叠的 条评论
为什么被折叠?



