Hikmicro Sdk

Hikmicro does not offer a single monolithic SDK. Instead, it bifurcates its offering based on the device category:


To decide if the Hikmicro SDK is right for you, compare it to the alternatives.

| Feature | Hikmicro SDK | FLIR (Teledyne) SDK | Seek Thermal SDK | InfiRay SDK | | :--- | :--- | :--- | :--- | :--- | | Radiometric data | High (16-bit raw) | Very High (18-bit) | Medium (14-bit) | High (16-bit) | | Documentation | Medium / Gaps | Excellent | Good | Poor / Chinese-heavy | | Price of hardware | $$ (Mid-range) | $$$$ (Expensive) | $ (Budget) | $ (Budget) | | Ease of integration | Moderate (Requires NDA) | Easy (Public SDK) | Easy (Public GitHub) | Hard (Direct factory support) | | MSX (Edge overlay) | Yes | Yes (Patent protected) | No | No |

Verdict: The Hikmicro SDK offers the best price-to-performance ratio for radiometric data. You get near-FLIR capabilities at half the cost, but you sacrifice open documentation and must navigate the NDA process. hikmicro sdk


The SDK is platform-dependent.

#include "HCNetSDK.h"

void CALLBACK ThermalDataCallback(LONG lRealHandle, DWORD dwDataType, BYTE pBuffer, DWORD dwBufSize, void pUser) if (dwDataType == NET_DVR_THERMAL_DATA) NET_DVR_THERMAL_DATA thermal = (NET_DVR_THERMAL_DATA)pBuffer; unsigned short* rawData = thermal->pRawDataBuffer;

    // Get scale factor
    NET_DVR_THERMAL_PARAM param;
    NET_DVR_GetThermalParam(lRealHandle, ¶m);
    float scale = param.fScaleFactor;
    float offset = param.fOffset;
// Compute temperature at center pixel
    int centerIdx = (thermal->iHeight/2) * thermal->iWidth + (thermal->iWidth/2);
    float tempC = rawData[centerIdx] * scale + offset;
    printf("Center temperature: %.2f°C\n", tempC);

int main() NET_DVR_Init(); NET_DVR_SetConnectTime(2000, 1);

NET_DVR_USER_LOGIN_INFO login = 0;
strcpy(login.sDeviceAddress, "192.168.1.100");
login.wPort = 8000;
strcpy(login.sUserName, "admin");
strcpy(login.sPassword, "password");
NET_DVR_DEVICEINFO_V40 devInfo;
LONG lUserID = NET_DVR_Login_V40(&login, &devInfo);
NET_DVR_PREVIEWINFO preview = 0;
preview.hPlayWnd = NULL; // no display window
preview.lChannel = 1;
preview.dwStreamType = 1; // main stream
preview.bBlocked = TRUE;
preview.byProtoType = 0; // TCP
LONG lRealHandle = NET_DVR_RealPlay_V40(lUserID, &preview, ThermalDataCallback, NULL);
Sleep(10000); // stream for 10 sec
NET_DVR_StopRealPlay(lRealHandle);
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
return 0;


The HIKMICRO SDK is not a single universal kit but a family of interfaces. The primary one is the HIKMICRO Device Network SDK (often labeled HIKMICRO_NetSDK).

Underlying Tech Stack:

Key Sub-modules:


Site and all tools designed and maintained by Andy Saurin hikmicro sdk