| | |
| | | import com.ruoyi.device.camera.mapper.ArdCamerasMapper; |
| | | import com.ruoyi.device.hiksdk.common.global.globalVariable; |
| | | import com.ruoyi.device.camera.domain.ArdCameras; |
| | | import com.ruoyi.device.hiksdk.config.MinioClientSingleton; |
| | | import com.ruoyi.device.hiksdk.domain.recordInfo; |
| | | import com.ruoyi.device.hiksdk.util.hikSdkUtil.GisUtil; |
| | | import com.ruoyi.device.hiksdk.util.hikSdkUtil.HCNetSDK; |
| | |
| | | } |
| | | |
| | | @Override |
| | | @SdkOperate |
| | | public void recordToMinio(CameraCmd cmd) { |
| | | try { |
| | | String cameraId = cmd.getCameraId(); |
| | |
| | | } |
| | | Integer userId = globalVariable.loginMap.get(cameraId); |
| | | String path = ""; |
| | | //强制I帧结构体对象 |
| | | HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //新建结构体对象 |
| | | netDvrIFrame.read(); |
| | | netDvrIFrame.dwChannel = channelNum; //因为上文代码中设置了通道号,按照上文中的设置 |
| | | netDvrIFrame.byStreamType = 0; |
| | | netDvrIFrame.dwSize = netDvrIFrame.size(); |
| | | netDvrIFrame.write(); |
| | | |
| | | if(!hCNetSDK.NET_DVR_RemoteControl(userId,3402,netDvrIFrame.getPointer(),netDvrIFrame.dwSize)){ |
| | | log.error("强制I帧 错误码为: " + hCNetSDK.NET_DVR_GetLastError()); |
| | | } |
| | | //预览参数 |
| | | NET_DVR_PREVIEWINFO previewinfo = new NET_DVR_PREVIEWINFO(); |
| | | previewinfo.read(); |
| | |
| | | if (!user_real_Map.containsKey(userId)) { |
| | | lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null); |
| | | if (lRealHandle == -1) { |
| | | int iErr = hCNetSDK.NET_DVR_GetLastError(); |
| | | log.error("取流失败" + iErr); |
| | | log.error("取流失败" + hCNetSDK.NET_DVR_GetLastError()); |
| | | return; |
| | | } |
| | | log.info("取流成功"); |
| | |
| | | user_real_Map.put(userId, info); |
| | | } |
| | | recordInfo info = user_real_Map.get(userId); |
| | | if (!hCNetSDK.NET_DVR_SaveRealData_V30(info.getLRealHandle(), 1, info.getRecordPath())) { |
| | | if (!hCNetSDK.NET_DVR_SaveRealData_V30(info.getLRealHandle(), 2, info.getRecordPath())) { |
| | | log.error("保存视频文件到临时文件夹失败 错误码为: " + hCNetSDK.NET_DVR_GetLastError()); |
| | | return; |
| | | } |
| | |
| | | String ObjectName = cmd.getRecordObjectName(); |
| | | String ContentType = "video/MP4"; |
| | | FileInputStream stream = new FileInputStream(info.getRecordPath()); |
| | | String url = ""; |
| | | boolean b = MinioUtils.uploadObject(BucketName, ObjectName, stream, stream.available(), ContentType); |
| | | if (b) { |
| | | log.info("上传文件成功!" + BucketName + "/" + ObjectName); |
| | | log.info("上传文件成功!" + MinioClientSingleton.domainUrl + "/"+ BucketName + "/" + ObjectName); |
| | | user_real_Map.remove(userId); |
| | | } |
| | | } |