TSINGSEE青犀视频平台接入海康解码器SDK实时解码流程

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
", 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
", NET_DVR_GetLastError()); 
NET_DVR_Logout(lUserID); 
NET_DVR_Cleanup()

 

原文地址:https://www.cnblogs.com/TSINGSEE/p/15294401.html