TSINGSEE青犀视频接入海康解码器SDK解码远程文件流程

上一篇我们分享了海康解码器SDK实时解码流程,如果大家有兴趣可以去阅读了解一下,海康解码器同时还能够解码远程文件,本文我们分享一下海康解码器SDK解码远程文件的流程。

登录解码器后需要先配置解码器显示通道参数,设置显示通道关联的解码通道,否则无法正常启动解码。

相关接口:NET_DVR_MatrixGetDisplayCfg_V41、NET_DVR_MatrixSetDisplayCfg_V41。

设置解码远程录像文件:首先通过 NET_DVR_RemoteControl(命令:NET_DVR_DEC_PLAY_REMOTE_FILE),设置按时间或者按文件名回放远程设备的录像文件,然后调用 NET_DVR_MatrixSetRemotePlayControl 启动解码。

流程代码如下:

//初始化 SDK 
NET_DVR_Init(); 
//注册设备 
NET_DVR_DEVICEINFO_V30 struDeviceInfo={0}; 
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={0}; 
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(); 
return; 
} 
else 
{ 
printf("Starting number of decoding channel: %d
",struDecoderCapability.byStartChan); 
printf("The total number of VGA output: %d
",struDecoderCapability.struVgaInfo.byChanNums); 
printf("Starting number of VGA output: %d
",struDecoderCapability.struVgaInfo.byStartChan); 
for (i=0;i<MAX_DISPNUM_V41;i++) 
{ 
if (struDecoderCapability.struDispMode[i].byDispChanType==1&&struDecoderCapability.struDispMode[i].byDispChanSeq==1) 
{ 
//获取 VGA 1 输出支持的画面分割模式 
for (j=0;j<MAX_WINDOWS_NUM;j++) 
{ 
if (struDecoderCapability.struDispMode[i].byDispMode[j]>0) 
{ 
byDispMode=struDecoderCapability.struDispMode[i].byDispMode[j]; 
printf("The VGA1 supports the window mode: %d screen(s)
",byDispMode); 
}

在TSINGSEE青犀视频开发的流媒体平台中,EasyNVR、EasyDSS都已经是成熟稳定的视频流媒体平台,可以直接下载测试,EasyRTC的重制版还正在开发当中,其架构有了新的方向,在不久之后新的版本也会上线和大家见面,TSINGSEE青犀视频云边端架构全平台都欢迎大家测试和了解。

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