博客文章《Qt+FFmpeg播放RTSP H264视频流(3)- RTSP视频流播放》
(https://blog.csdn.net/eastcnme/article/details/94850984)完整demo代码。
可以直接运行测试。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1163 2019-07-01 13:08 FFmpegLibTestin.qmake.stash
文件 464 2019-07-01 13:08 FFmpegLibTestinffmpeglibtest_plugin_import.cpp
文件 32415 2019-07-08 19:47 FFmpegLibTestinMakefile
文件 96922 2019-07-08 19:47 FFmpegLibTestinMakefile.Debug
文件 99251 2019-07-08 19:47 FFmpegLibTestinMakefile.Release
文件 293 2019-07-08 19:47 FFmpegLibTestinobject_script.FFmpegLibTest.Debug
文件 313 2019-07-08 19:47 FFmpegLibTestinobject_script.FFmpegLibTest.Release
文件 33576960 2019-06-29 05:24 FFmpegLibTestin
eleaseavcodec-58.dll
文件 1394688 2019-06-29 05:24 FFmpegLibTestin
eleaseavdevice-58.dll
文件 7217664 2019-06-29 05:24 FFmpegLibTestin
eleaseavfilter-7.dll
文件 9776640 2019-06-29 05:24 FFmpegLibTestin
eleaseavformat-58.dll
文件 768000 2019-06-29 05:24 FFmpegLibTestin
eleaseavutil-56.dll
文件 17894912 2019-07-08 20:12 FFmpegLibTestin
eleaseFFmpegLibTest.exe
文件 21850 2019-07-08 20:12 FFmpegLibTestin
eleaseFFmpegLibTestFrm.o
文件 1865 2019-07-01 13:08 FFmpegLibTestin
eleaseffmpeglibtest_plugin_import.o
文件 1448 2019-07-08 20:06 FFmpegLibTestin
eleasemain.o
文件 4984 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_FFmpegLibTestFrm.cpp
文件 10148 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_FFmpegLibTestFrm.o
文件 4168 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_MyFFmpeg.cpp
文件 4663 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_MyFFmpeg.o
文件 9894 2019-07-01 13:08 FFmpegLibTestin
eleasemoc_predefs.h
文件 4624 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_RTSP_Player.cpp
文件 5619 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_RTSP_Player.o
文件 3736 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_UsernameAndPasswordFrm.cpp
文件 9092 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_UsernameAndPasswordFrm.o
文件 7629 2019-07-08 20:06 FFmpegLibTestin
eleaseMyFFmpeg.o
文件 123392 2019-06-29 05:24 FFmpegLibTestin
eleasepostproc-55.dll
文件 3071 2019-07-08 20:06 FFmpegLibTestin
eleaseRTSP_Player.o
文件 311296 2019-06-29 05:24 FFmpegLibTestin
eleaseswresample-3.dll
文件 506368 2019-06-29 05:24 FFmpegLibTestin
eleaseswscale-5.dll
............此处省略158个文件信息
#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!
“);
}
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 FFmpegLibTestin.qmake.stash
文件 464 2019-07-01 13:08 FFmpegLibTestinffmpeglibtest_plugin_import.cpp
文件 32415 2019-07-08 19:47 FFmpegLibTestinMakefile
文件 96922 2019-07-08 19:47 FFmpegLibTestinMakefile.Debug
文件 99251 2019-07-08 19:47 FFmpegLibTestinMakefile.Release
文件 293 2019-07-08 19:47 FFmpegLibTestinob
文件 313 2019-07-08 19:47 FFmpegLibTestinob
文件 33576960 2019-06-29 05:24 FFmpegLibTestin
eleaseavcodec-58.dll
文件 1394688 2019-06-29 05:24 FFmpegLibTestin
eleaseavdevice-58.dll
文件 7217664 2019-06-29 05:24 FFmpegLibTestin
eleaseavfilter-7.dll
文件 9776640 2019-06-29 05:24 FFmpegLibTestin
eleaseavformat-58.dll
文件 768000 2019-06-29 05:24 FFmpegLibTestin
eleaseavutil-56.dll
文件 17894912 2019-07-08 20:12 FFmpegLibTestin
eleaseFFmpegLibTest.exe
文件 21850 2019-07-08 20:12 FFmpegLibTestin
eleaseFFmpegLibTestFrm.o
文件 1865 2019-07-01 13:08 FFmpegLibTestin
eleaseffmpeglibtest_plugin_import.o
文件 1448 2019-07-08 20:06 FFmpegLibTestin
eleasemain.o
文件 4984 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_FFmpegLibTestFrm.cpp
文件 10148 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_FFmpegLibTestFrm.o
文件 4168 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_MyFFmpeg.cpp
文件 4663 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_MyFFmpeg.o
文件 9894 2019-07-01 13:08 FFmpegLibTestin
eleasemoc_predefs.h
文件 4624 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_RTSP_Pla
文件 5619 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_RTSP_Pla
文件 3736 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_UsernameAndPasswordFrm.cpp
文件 9092 2019-07-08 20:06 FFmpegLibTestin
eleasemoc_UsernameAndPasswordFrm.o
文件 7629 2019-07-08 20:06 FFmpegLibTestin
eleaseMyFFmpeg.o
文件 123392 2019-06-29 05:24 FFmpegLibTestin
eleasepostproc-55.dll
文件 3071 2019-07-08 20:06 FFmpegLibTestin
eleaseRTSP_Pla
文件 311296 2019-06-29 05:24 FFmpegLibTestin
eleaseswresample-3.dll
文件 506368 2019-06-29 05:24 FFmpegLibTestin
eleaseswscale-5.dll
............此处省略158个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)