rtspPlayer.rar


博客文章《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!
“);
    }

    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  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个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)