1、添加配置文件控制推流参数;

2、解决遥控器解码时帧序混乱的问题(gop_size = 1);
3、完善代码;
This commit is contained in:
tangchao0503
2024-01-29 17:21:07 +08:00
parent 2e4679aaef
commit a91f5f5b04
6 changed files with 445 additions and 385 deletions

View File

@ -24,28 +24,6 @@ extern "C"
#include "libavdevice/avdevice.h"
}
class Encode
{
public:
Encode();
void initffmpeg(int width, int height);
FILE *fp;
AVCodecContext *avcodeccontext;
void savedata(AVFrame *frame);
void encode(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt, FILE *outfile);
AVPacket m_avpacket;
AVFrame *inpic;
AVFrame *outpic;
bool isinit;
int index1;
private:
};
using namespace cv;
class rgbImage :public QObject
{
@ -55,7 +33,8 @@ public:
rgbImage(QWidget* pParent = NULL);
~rgbImage();
void SetRgbImageWidthAndHeight(int BandCount, int Sample, int FrameNumber);
void SetRgbImageWidthAndHeight(int BandCount, int Width, int height);
void SetRgbBandNumber(int redBandNumber, int greenBandNumber, int blueBandNumber);
void FillRgbImage(unsigned short *datacube);
void FillFocusGrayImage(unsigned short *datacube);
void FillFocusGrayQImage(unsigned short * datacube);
@ -71,24 +50,16 @@ public:
cv::Mat *m_matFocusGrayImage;//用于调焦时,显示一帧的灰度图
//cv::Mat m_matFocusGrayImage;//用于调焦时,显示一帧的灰度图
CvVideoWriter *m_frame_writer;
VideoWriter m_VideoWriter;
// VideoWriter m_video("appsrc ! autovideoconvert ! filesink location=/media/nvme/delete/live.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25.0, Size(640, 480));
// VideoWriter video("test.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25.0, Size(640, 480));//
//控制该填充rgb图像第几帧数据
//以下两种情况需要重置为01调用函数SetRgbImageWidthAndHeight2每次开始填充数据前
int m_iFrameCounter;
int m_iFramerate;//
protected:
private:
@ -99,15 +70,15 @@ private:
void initffmpeg();
int m_iRedBandNumber;
int m_iGreenBandNumber;
int m_iBlueBandNumber;
public slots:
signals :
void sendstr(QString str);
void sendstr1(QString str);
void refreslabelimg(QImage* img1);
};
#endif //XIMEAAIRBORNESYSTEM_RGBIMAGE_H