资源简介
博客文章《Qt+FFmpeg播放RTSP H264视频流(3)- RTSP视频流播放》
(https://blog.csdn.net/eastcnme/article/details/94850984)完整demo代码。
可以直接运行测试。
代码片段和文件信息
#include “FFmpegLibTestFrm.h“
#include “ui_FFmpegLibTestFrm.h“
#include “UsernameAndPasswordFrm.h“
#include “MyHelper.h“
#include
extern “C“
{
#include
#include
#include
#include
#include
#include
#include
}
extern QString g_username;
extern QString g_password;
FFmpegLibTestFrm::FFmpegLibTestFrm(QWidget *parent) :
QMainWindow(parent)
ui(new Ui::FFmpegLibTestFrm)
{
ui->setupUi(this);
m_ffmpeg = new MyFFmpeg;
connect(m_ffmpeg SIGNAL(MyFFmpegSigGetOneframe(QImage)) this SLOT(SlotGetOneframe(QImage)));
ui->labVideo->setstyleSheet(“QLabel{border:2px solid green}“);
ui->labVideo->installEventFilter(this);
ui->btnPlayer->setEnabled(true);
}
FFmpegLibTestFrm::~FFmpegLibTestFrm()
{
delete ui;
}
void FFmpegLibTestFrm::MyFFmpegTest()
{
MyFFmpeg *ffmpeg = new MyFFmpeg();
QString rtspUrl = “rtsp://192.168.88.168:554/0“;
ffmpeg->MyFFmpegSetUrl(rtspUrl);
if (ffmpeg->MyFFmpegInit() == 0) {
int i;
for (i = 0; i < 5; i++) {
ffmpeg->MyFFmpepReadframe();
}
} else {
qDebug(“MyFFmpegInit fail!\n“);
}
delete ffmpeg;
}
void FFmpegLibTestFrm::PlayStop()
{
if (m_player)
{
m_player->PlayerStop();
}
if (m_playThread)
{
m_playThread->quit();
m_playThread->wait(1000);
delete m_playThread;
m_playThread = nullptr;
}
if (m_player)
{
delete m_player;
m_player = nullptr;
}
}
void FFmpegLibTestFrm::PlayStart()
{
this->PlayStop();
m_playThread = new QThread();
m_player = new RTSP_Player(m_ffmpeg);
m_player->SetPlayerUrl(m_playUrl);
connect(this SIGNAL(SigPlayStart()) m_player SLOT(PlayerStart()));
connect(m_player SIGNAL(SigOpenUrlResult(int)) this SLOT(SlotOpenUrlResult(int)));
m_player->moveToThread(m_playThread);
m_playThread->start();
}
void FFmpegLibTestFrm::PlayProcess()
{
this->PlayStart();
emit SigPlayStart();
}
void FFmpegLibTestFrm::SlotOpenUrlResult(int result)
{
if (result == RTSP_Player::FFmpegInitFail)
{
this->PlayStop();
QString rtspUrl = ui->txtRTSPURL->text().trimmed();
QString errMsg = “打开“ + rtspUrl + “失败“;
MyHelper::ShowMessageBoxError(errMsg);
ui->btnPlayer->setText(“start“);
}
else if (result == RTSP_Player::FFmpegInitSucc)
{
ui->btnPlayer->setText(“stop“);
}
else if (result == RTSP_Player::FFmpegStoped)
{
ui->btnPlayer->setText(“start“);
}
else
{
#if 0
this->PlayStop();
if (result == -825242872) {
UsernameAndPasswordFrm *adminFrm = new UsernameAndPasswordFrm();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1163 2019-07-01 13:08 FFmpegLibTest\bin\.qmake.stash
文件 464 2019-07-01 13:08 FFmpegLibTest\bin\ffmpeglibtest_plugin_import.cpp
文件 32415 2019-07-08 19:47 FFmpegLibTest\bin\Makefile
文件 96922 2019-07-08 19:47 FFmpegLibTest\bin\Makefile.Debug
文件 99251 2019-07-08 19:47 FFmpegLibTest\bin\Makefile.Release
文件 293 2019-07-08 19:47 FFmpegLibTest\bin\ob
文件 313 2019-07-08 19:47 FFmpegLibTest\bin\ob
文件 33576960 2019-06-29 05:24 FFmpegLibTest\bin\release\avcodec-58.dll
文件 1394688 2019-06-29 05:24 FFmpegLibTest\bin\release\avdevice-58.dll
文件 7217664 2019-06-29 05:24 FFmpegLibTest\bin\release\avfilter-7.dll
文件 9776640 2019-06-29 05:24 FFmpegLibTest\bin\release\avformat-58.dll
文件 768000 2019-06-29 05:24 FFmpegLibTest\bin\release\avutil-56.dll
文件 17894912 2019-07-08 20:12 FFmpegLibTest\bin\release\FFmpegLibTest.exe
文件 21850 2019-07-08 20:12 FFmpegLibTest\bin\release\FFmpegLibTestFrm.o
文件 1865 2019-07-01 13:08 FFmpegLibTest\bin\release\ffmpeglibtest_plugin_import.o
文件 1448 2019-07-08 20:06 FFmpegLibTest\bin\release\main.o
文件 4984 2019-07-08 20:06 FFmpegLibTest\bin\release\moc_FFmpegLibTestFrm.cpp
文件 10148 2019-07-08 20:06 FFmpegLibTest\bin\release\moc_FFmpegLibTestFrm.o
文件 4168 2019-07-08 20:06 FFmpegLibTest\bin\release\moc_MyFFmpeg.cpp
文件 4663 2019-07-08 20:06 FFmpegLibTest\bin\release\moc_MyFFmpeg.o
文件 9894 2019-07-01 13:08 FFmpegLibTest\bin\release\moc_predefs.h
文件 4624 2019-07-08 20:06 FFmpegLibTest\bin\release\moc_RTSP_Pla
文件 5619 2019-07-08 20:06 FFmpegLibTest\bin\release\moc_RTSP_Pla
文件 3736 2019-07-08 20:06 FFmpegLibTest\bin\release\moc_UsernameAndPasswordFrm.cpp
文件 9092 2019-07-08 20:06 FFmpegLibTest\bin\release\moc_UsernameAndPasswordFrm.o
文件 7629 2019-07-08 20:06 FFmpegLibTest\bin\release\MyFFmpeg.o
文件 123392 2019-06-29 05:24 FFmpegLibTest\bin\release\postproc-55.dll
文件 3071 2019-07-08 20:06 FFmpegLibTest\bin\release\RTSP_Pla
文件 311296 2019-06-29 05:24 FFmpegLibTest\bin\release\swresample-3.dll
文件 506368 2019-06-29 05:24 FFmpegLibTest\bin\release\swscale-5.dll
............此处省略158个文件信息
相关资源
- Computer Vision with OpenCV3 and Qt5完整版
- Qt+gstreamer 视频播放器
- andriod-MQTT客户端
- Computer Vision with OpenCV 3 and Qt5
- Qt实现简单版炫舞小游戏
- OMG的DDS标准的使用
- AQTime 6.20 破解版 (四)
- DH_VIDEO_demo.rar
- QT实现头像图片剪切框
- Qt词典软件源代码
- 基于TCP、QT带虚拟键盘的多功能聊天系
- QVision-基于Qt的计算机视觉库
- GB28181转RTSP、RTMP和HLS
-
fr
ameLessWinApiQt无边框窗口调用winAP - QT聊天系统
- OpenCV345_build_MinGW32bit
- Qt+pcl+vtk 屏幕选点
- QxEntityEditor_1.2.5_setup_win64
- IEC-104规约Qt实现
- 基于QT和windows api实现的远程桌面控制
- FFmpeg录屏
- labelImg_qt5py3_mac_latest 2.zip
- ffmpeg.exe+ffprobe.exe+ffplay.exe
- OpenCV 3和Qt5计算机视觉应用开发英文版
- 海康工业相机二次开发源码 + OpenCV3
- QT5开发及各种
- 嵌入式linux下QT开发的mp3播放器源码
- GSL库(64bit)在QT5.50中使用+VS2013编译
- PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x64.exe
- 编译器mingw4.4.0 Qt
评论
共有 条评论