You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PayloadAPP/Src/Video/ffmpegpushstream.h

33 lines
811 B
C++

#ifndef FFMPEGPUSHSTREAM_H
#define FFMPEGPUSHSTREAM_H
#include "ffmpeginclude.h"
#include <QDebug>
#include <QObject>
class FFmpegPushStream : public QObject {
Q_OBJECT
public:
explicit FFmpegPushStream(QObject *parent = nullptr);
/**
* @brief 设置推流地址
* @param url 远端推流地址
*/
void setRemoteIP(QString url);
signals:
private:
AVFormatContext *inputFormatCtx = nullptr; //
AVFormatContext *outputFormatCtx = NULL; //
AVCodecContext *encoderCtx = nullptr; //
const AVCodec *encoder = nullptr; // 编码器
int videoIndex = -1;
QString pushStreamIP; // 推流地址
bool mInitStatus = false;
public slots:
int pushStream(AVPacket *pkt, int frm_cnt);
int openNetworkStream(AVFormatContext *inputFormatCtx);
};
#endif // FFMPEGPUSHSTREAM_H