• 大小: 23.65MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-06
  • 语言: 其他
  • 标签: Qt  FFmpeg  RTSP  

资源简介

博客文章《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\object_script.FFmpegLibTest.Debug

     文件        313  2019-07-08 19:47  FFmpegLibTest\bin\object_script.FFmpegLibTest.Release

     文件   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_Player.cpp

     文件       5619  2019-07-08 20:06  FFmpegLibTest\bin\release\moc_RTSP_Player.o

     文件       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_Player.o

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

评论

共有 条评论