现在市面上的国标设备端SDK,基本上都是收费的,一个是这个东西比较小众,还有一个就是确实有一些研发成本,于是,在前段时间,我就将我们之前一直对外收费的EasyGBD国标GB28181设备端的SDK免费了,SDK地址在:https://github.com/EasyDarwin/EasyGBD/tree/main
简单看一下EasyGBD的接口:
//创建GB28181设备端资源
/*
pDeviceInfo: 设备端信息, 为NULL则从当前目录中读取config.xml
callbackPtr: 回调函数
userPtr: 用户自定义指针,用于在回调函数中回调给调用者
*/
int GB28181DEVICE_API libGB28181Device_Create(GB28181_DEVICE_INFO_T *pDeviceInfo, GB28181DeviceCALLBACK callbackPtr, void *userPtr);
int GB28181DEVICE_API libGB28181Device_Create2(char* serverIP, int serverPort, char* serverId, char* serverDomain,
char* deviceId, int localSipPort, int channelNum,
GB28181_CHANNEL_INFO_T*pChannel,
char* password, int protocol,
int regExpires, int heartbeatInterval, int heartbeatCount,
GB28181DeviceCALLBACK callbackPtr, void* userPtr);
//指定视频格式
/*
codec:
#define EASY_SDK_VIDEO_CODEC_H264 0x1C //H264
#define EASY_SDK_VIDEO_CODEC_H265 0xAE //H265
width: 可选
height: 可选
framerate: 可选
*/
int GB28181DEVICE_API libGB28181Device_SetVideoFormat(int channelId, unsigned int codec, int width, int height, int framerate);
//指定音频格式
/*
audioDstCodec:
#define EASY_SDK_AUDIO_CODEC_AAC 0x15002 // AAC
#define EASY_SDK_AUDIO_CODEC_G711U 0x10006 // G711 ulaw
#define EASY_SDK_AUDIO_CODEC_G711A 0x10007 // G711 alaw
samplerate: 采样率
channels: 声道数
bitPerSample: 采样精度
*/
int GB28181DEVICE_API libGB28181Device_SetAudioFormat(int channelId, unsigned int audioDstCodec, int samplerate, int channels, int bitPerSamples);
//设置通道实时经纬度信息
int GB28181DEVICE_API libGB28181Device_SetLotLat(int channelId, double longitude, double latitude);
//推送视频数据
/*
framedata: 视频帧数据
framesize: 视频帧大小
keyframe: 关键帧填1, 否则填0
*/
int GB28181DEVICE_API libGB28181Device_AddVideoData(int channelId, char* framedata, int framesize, int keyframe);
//推送音频数据
/*
audioSrcCodec: 当前音频源格式
#define EASY_SDK_AUDIO_CODEC_G711U 0x10006 // G711 ulaw
#define EASY_SDK_AUDIO_CODEC_G711A 0x10007 // G711 alaw
#define EASY_SDK_AUDIO_CODEC_PCM 0x00007 // PCM
如果audioSrcCodec和libGB28181Device_SetAudioFormat中指定的audioDstCodec不一致时, 则会自动进行转换,
但仅限于从PCM转为G711,即此处的audioSrcCodec为PCM, 而audioDstCodec为G711
framedata: 音频帧数据
framesize: 音频帧大小
nbsamples: 同音频帧大小
*/
int GB28181DEVICE_API libGB28181Device_AddAudioData(int channelId, unsigned int audioSrcCodec, char* framedata, int framesize, int nbsamples);
//释放资源
int GB28181DEVICE_API libGB28181Device_Release();
EasyGBD是一套国标GB/T 28181设备端功能组件,EasyGBD是GB/T 28181 Device的简称,是国标GB28181协议的设备端,EasyGBD支持Windows、Linux、Android、iOS、ARM全部平台,EasyGBD兼容国标GB28181-2011、GB28181-2016、GB28181-2022全部功能。
详细更多的信息,也可以进EasyDarwin网站观望:www.easydarwin.org
标签:libGB28181Device,GB28181,CODEC,int,国标,API,SDK From: https://blog.csdn.net/xiejiashu/article/details/142288135