国标28181Server开发,基于sip集成gbsdk,接入海康大华摄像头

目前安防摄像头基本都支持国标协议接入,本文提供一个国标sdk,可接入摄像头,目前支持预览,其他功能待开发

demo源码下载路径如下 https://download.csdn.net/download/zqw_4181/11986919

只有demo源码,不含gbsdk代码

sdk头文件如下

typedef void (__stdcall *pfngb_streamback)(unsigned char *pbuf, int len, char *pparam, int iparam, void* puser);

 

/**
* @brief 初始化函数
* @param in const char* pcServerId, 国标服务ID
* @param in const char *pcServerIp, 服务IP
* @param in int port,服务监听端口
* @param const char *pcRealm, 鉴权参数
* @return int,成功返回0, 失败返回非0
*/
int RR_GB_EXPORT  RR_GB_Init(const char* pcServerId, const char *pcServerIp, int port, const char *pcRealm);

/**
* @brief 实时视频预览函数
* @param in const char* pcDevId, 国标设备ID
* @param in const char *pcChanId 设备通道国标ID
* @param in pfngb_streamback pfn, 码流回调函数, 码流类型为PS流
* @param in void *puser, 用户输入参数
* @return int,成功返回大于0,失败返回小于0
* @note 返回值为预览session,唯一性,后续操作关闭视频需要用到
*/
int RR_GB_EXPORT RR_GB_RealPlay(const char* pcDevId, const char *pcChanId, pfngb_streamback pfn, void *puser);

/**
* @brief 视频关闭函数
* @param in int session, 会话session,rr_gb_video_real_play返回值
* @return int,成功返回0 失败返回非0
*/
int RR_GB_EXPORT RR_GB_StopRealPlay(int session);

调用这几个接口即可实现摄像头国标预览。

 

demo代码如下

#include "stdio.h"
#include "windows.h"
#include "include/rr_gb_interface.h"
#include

void __stdcall streamback(unsigned char *pbuf, int len, char *pparam, int iparam, void* puser)
{
    static FILE *fp = fopen("gbps.dav", "wb+");
    fwrite(pbuf, 1, len , fp);

    return;
}

int main()
{
    printf("hello world\n");
    int iret = 0;
    std::string serid = "34010000002000000001";
    std::string serip = "172.18.31.19";
    int port = 5060;
    std::string realm = "3401000000";

    std::string strGbDevId = "34010000001320000001";
    std::string strGbChanId = "34010000001320000002";

    iret = RR_GB_Init(serid.c_str(), serip.c_str(), port, realm.c_str());
    if(0 != iret)
    {
        printf("Faild to sip init err:%d\n", iret);
        return -1;
    }
    
    int session = 0;
    int op;
    while(1)
    {
        op = getchar();
        switch(op)
        {
        case 'q':
            break;
        case 'p':
            {
                session = RR_GB_RealPlay(strGbDevId.c_str(), strGbChanId.c_str(), streamback, NULL);
            }
            break;
        case 'b':
            {
                RR_GB_StopRealPlay(session);
            }
            break;
        default:
            continue;
        }
    }

    system("pause");

    return 0;
}

 

设备需要配置设备ID和sip服务ID,如下是大华摄像头的配置。

国标28181Server开发,基于sip集成gbsdk,接入海康大华摄像头_第1张图片

 

配置完成之后,在build/debug里面启动test.exe,然后在设备界面注册使能,让设备注册到test,

国标28181Server开发,基于sip集成gbsdk,接入海康大华摄像头_第2张图片

注册上来之后,打印这些信息。

然后在控制台输入p,就可以拉流了,并会在当前目录生成ps.dav文件

国标28181Server开发,基于sip集成gbsdk,接入海康大华摄像头_第3张图片

 

你可能感兴趣的:(音视频)