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()