视频监控客户端-GB28181之转码库-转码格式支持H265、H264、MPEG4、MPEG2

视频监控客户端-GB28181之转码库-转码格式支持H265、H264、MPEG4、MPEG2

如需交流可联系QQ:123011785
转码库的基本内容是通过ffmepg的函数进行转码,主要针对市面上的基本码流格式进行转码,可以根据分辨率进行码流转换,适用于手机端码流推送,转码效率基本在10:1的比例。
也可以转码成不同格式的码流,支持 H265、H264、MPEG4、MPEG2
转码时间基本在1s内完成。
下面粘贴下头文件源码:
#ifndef __STREAMTRANS_H_
#define __STREAMTRANS_H_

#ifndef __int64
#define __int64 long long
#endif

typedef enum
{
	STREAMTRANS_MODE_NONE,
	STREAMTRANS_MODE_DEC,
	STREAMTRANS_MODE_FILTER,
	STREAMTRANS_MODE_ENC,

}StreamTransMode_E;

typedef enum
{
	STREAM_YUV420 = -1,
	STREAM_NONE = 0,
	STREAM_MPEG2 = 2,	//值对应FFMEPG
	STREAM_MPEG4 = 13,
	STREAM_H264 = 28,
	STREAM_H265 = 174

}StreamCodec_E;

typedef struct _StreamTransIn
{
	StreamTransMode_E	eMode;			//转换模式 解码 滤镜 编码
	unsigned char*		pBufIn[3];		//输入码流
	int					nSizeIn[3];		//输入码流大小
	StreamCodec_E		eType;			//码流的编码类型
	int					nWidth;			//图像分辨率宽度
	int					nHeight;		//图像分辨率高度
	int					nFps;			//图像帧率
	char*				strFilter;		//滤镜描述
}StreamTransIn;

typedef struct _StreamTransOut
{
	unsigned char*	pBufOut[3];     //输出流
	int				nSizeOut[3];	//输出流大小
	__int64			pts;			//输出流PTS(显示时间戳)
	__int64			dts;			//输出流DTS(解码时间戳)
	StreamCodec_E	eType;			//码流的编码类型
	int				nWidth;			//图像分辨率宽度
	int				nHeight;		//图像分辨率高度
	int				nFps;			//图像帧率
	int				nMbps;			//图像码率
}StreamTransOut;

#ifdef __cplusplus
extern "C"{
#endif
#include "libavcodec/avcodec.h"
#include "libswscale/swscale.h"
#include "libavformat/avformat.h"
#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavfilter/avfiltergraph.h"
#include "libavfilter/buffersink.h"
#include "libavfilter/buffersrc.h"
	//打开转码句柄
	long STREAMTRANS_Open(void);

	//关闭转码句柄
	long STREAMTRANS_Close(long Handle);

	//开始转换
	long STREAMTRANS_Trans(long Handle, StreamTransIn* pIn, StreamTransOut* pOut);

	//拷贝数据结构(内部自动alloc数据空间)
	StreamTransIn* STREAMTRANS_CloneYUV(StreamTransOut* src);


#ifdef __cplusplus
}
#endif

#endif



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值