TSINGSEE青犀視頻平台前端設備可以接入不同設備,包括NVR、攝像頭、編碼器等,EasyGBS還可以接入我們獨立開發的國標推流平台EasyGBD。一般接入NVR和接入攝像頭的項目現場比較多,但也有部分用戶是將海康編碼器設備接入平台。
本文我們和大家分享一下海康解碼器SDK實時解碼的流程,大家可以對此有個大致了解。
登錄解碼器后需要先配置解碼器顯示通道參數,設置顯示通道關聯的解碼通道,否則無法正常啟動設備網絡。
相關接口:NET_DVR_MatrixGetDisplayCfg_V41、NET_DVR_MatrixSetDisplayCfg_V41。
調用 NET_DVR_MatrixStartDynamic_V41 即啟動主動解碼,解碼器從設備直接取流獲取通過流媒體取流進行解碼並且上牆顯示,取流方式、通道或者流 ID 等都在該接口中指定。如果顯示通道配置中的分辨率和制式沒有指定,則必須指定一個有效的分辨率或制式,否則無法正常動態解碼。
解碼器直接輪巡解碼,通過 NET_DVR_MatrixSetLoopDecChanInfo_V41 設置輪巡組,然后調用NET_DVR_MatrixSetLoopDecChanEnable 啟動輪巡。
以下為部分代碼:
void main()
{
int i=0,j=0;
BYTE byDispMode;
//初始化 SDK
NET_DVR_Init();
//注冊設備
NET_DVR_DEVICEINFO_V30 struDeviceInfo;
memset(&struDeviceInfo, 0, sizeof(NET_DVR_DEVICEINFO_V30));//存放設備參數的結構體
LONG lUserID = NET_DVR_Login_V30("172.6.22.178", 8000, "admin", "12345", &struDeviceInfo);
if (lUserID < 0)
{
printf("Login error, %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
return;
}
//獲取解碼器能力集
NET_DVR_MATRIX_ABILITY_V41 struDecoderCapability;
if (!NET_DVR_GetDeviceAbility(lUserID,MATRIXDECODER_ABILITY_V41,NULL,0,(char *)&struDecoderCapability,
sizeof(struDecoderCapability)))
{
printf("NET_DVR_GetDeviceAbility error, %d\n", NET_DVR_GetLastError());
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup()