資源簡介
博客文章《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個文件信息
評論
共有 條評論