| | |
| | | private static HCNetSDK hCNetSDK;
|
| | |
|
| | | @Override
|
| | | public void loadHCNetSDKLib() {
|
| | | public boolean init() {
|
| | | try {
|
| | | log.debug("开始加载sdk库文件路径");
|
| | | if (Platform.isWindows()) {
|
| | |
| | | ptrByteArraySsl.write();
|
| | | hCNetSDK.NET_DVR_SetSDKInitCfg(4, ptrByteArraySsl.getPointer());
|
| | | }
|
| | | return true;
|
| | | } catch (Exception ex) {
|
| | | log.error("加载库文件异常:" + ex.getMessage());
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | String cameraId = cmd.getCameraId();
|
| | | Integer channelNum = cmd.getChanNo();
|
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) {
|
| | | return null;
|
| | | return new HashMap<>();
|
| | | }
|
| | | Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId);
|
| | |
|
| | |
| | | NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS();
|
| | | m_ptzPosCurrent.wAction = 1;
|
| | | try {
|
| | | String p = String.valueOf(ptz.get("p") * 10);
|
| | | String t = String.valueOf(ptz.get("t") * 10);
|
| | | String z = String.valueOf(ptz.get("z") * 10);
|
| | | String p = String.valueOf((int)(ptz.get("p") * 10));
|
| | | String t = String.valueOf((int)(ptz.get("t") * 10));
|
| | | String z = String.valueOf((int)(ptz.get("z") * 10));
|
| | | m_ptzPosCurrent.wPanPos = (short) (Integer.parseInt(p, 16));
|
| | | m_ptzPosCurrent.wTiltPos = (short) (Integer.parseInt(t, 16));
|
| | | m_ptzPosCurrent.wZoomPos = (short) (Integer.parseInt(z, 16));
|
| | |
| | | GlobalVariable.previewMap.remove(cameraId);
|
| | | }
|
| | | log.debug("录像停止");
|
| | | //存入minio
|
| | | String BucketName = "record";
|
| | | String ObjectName =IdUtils.simpleUUID() + ".mp4";
|
| | | FileInputStream stream = new FileInputStream(path);
|
| | | boolean b = MinioUtil.uploadObject(BucketName, ObjectName, stream, stream.available(), "video/MP4");
|
| | | if (b) {
|
| | | url = MinioUtil.getBucketObjectUrl(BucketName, ObjectName);
|
| | | log.debug("上传文件成功!" + url);
|
| | | }
|
| | | }
|
| | | return url;
|
| | | } catch (Exception ex) {
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public void recordStart(CameraCmd cmd) {
|
| | | public boolean recordStart(CameraCmd cmd) {
|
| | | try {
|
| | | String cameraId = cmd.getCameraId();
|
| | | Integer channelNum = cmd.getChanNo();
|
| | | String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4");
|
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) {
|
| | | return;
|
| | | return false;
|
| | | }
|
| | | Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId);
|
| | | //强制I帧结构体对象
|
| | |
| | | int lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null);
|
| | | if (lRealHandle == -1) {
|
| | | log.error("取流失败" + hCNetSDK.NET_DVR_GetLastError());
|
| | | return;
|
| | | return false;
|
| | | }
|
| | | log.debug("取流成功");
|
| | | GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName());
|
| | | GlobalVariable.previewMap.put(cameraId, lRealHandle);
|
| | | if (!hCNetSDK.NET_DVR_SaveRealData_V30(GlobalVariable.previewMap.get(cameraId), 2, path)) {
|
| | | log.error("保存视频文件到临时文件夹失败 错误码为: " + hCNetSDK.NET_DVR_GetLastError());
|
| | | return;
|
| | | return false;
|
| | | }
|
| | | log.debug("录像开始");
|
| | | return true;
|
| | | } catch (Exception ex) {
|
| | | log.error("开始录像异常" + ex.getMessage());
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|