增加sdk接口getGisInfo
调整ptz的websocket上传增加视场角
| | |
| | | String path = sdk.record(cmd); |
| | | return toAjaxString(path, "手动录像"); |
| | | } |
| | | @ApiOperation("获取相机架设参数") |
| | | @PostMapping("/getCameraSetupCFG") |
| | | @Log(title = "获取相机架设参数", businessType = BusinessType.CONTROL) |
| | | @ApiOperationSupport(includeParameters = {"cmd.cameraId", "cmd.channelNum", "cmd.enable"}) |
| | | public @ResponseBody |
| | | AjaxResult getCameraSetupCFG(@RequestBody CameraCmd cmd) { |
| | | cmd.setOperator(SecurityUtils.getUserId()); |
| | | return AjaxResult.success(sdk.getGisInfo(cmd)); |
| | | } |
| | | } |
| | |
| | | public static final int NET_DVR_SET_DDNSCFG_EX = 275;//设置扩展DDNS参数 |
| | | public static final int NET_DVR_SET_PTZPOS = 292; //云台设置PTZ位置 |
| | | public static final int NET_DVR_GET_PTZPOS = 293; //云台获取PTZ位置 |
| | | public static final int NET_DVR_SET_PTZLOCKCFG=3288;//设置云台锁定信息 |
| | | public static final int NET_DVR_GET_PTZLOCKCFG=3287;//获取云台锁定信息 |
| | | public static final int NET_DVR_PTZ_INITIALPOSITIONCTRL=3283;//零方位角控制 |
| | | public static final int NET_DVR_SET_PTZLOCKCFG = 3288;//设置云台锁定信息 |
| | | public static final int NET_DVR_GET_PTZLOCKCFG = 3287;//获取云台锁定信息 |
| | | public static final int NET_DVR_PTZ_INITIALPOSITIONCTRL = 3283;//零方位角控制 |
| | | public static final int NET_DVR_GET_PTZSCOPE = 294;//云台获取PTZ范围 |
| | | public static final int NET_DVR_SET_BASICPARAMCFG = 3271;//设置PTZ基本参数信息 |
| | | public static final int NET_DVR_COMPLETE_RESTORE_CTRL = 3420; //设置完全恢复出厂值 |
| | |
| | | public static final int NET_DVR_GET_CURTRIGGERMODE = 3130; //获取设备当前触发模式 |
| | | public static final int NET_ITC_GET_TRIGGERCFG = 3003; //获取触发参数 |
| | | public static final int NET_ITC_SET_TRIGGERCFG = 3004; //设置触发参数 |
| | | public static final int NET_DVR_CAMERA_SETUPCFG = 3007; //获取相机架设参数 |
| | | public static final int NET_ITC_GET_VIDEO_TRIGGERCFG = 3017; //获取视频电警触发参数 |
| | | public static final int NET_ITC_SET_VIDEO_TRIGGERCFG = 3018; //设置视频电警触发参数 |
| | | |
| | |
| | | public short wTiltPos;//垂直参数 |
| | | public short wZoomPos;//变倍参数 |
| | | } |
| | | |
| | | //PTZ锁定信息 |
| | | public static class NET_DVR_PTZ_LOCKCFG extends HIKSDKStructure { |
| | | public int dwSize;//结构体大小 |
| | | public byte byWorkMode;//云台锁定控制:0- 解锁,1- 锁定 |
| | | public byte[] byRes = new byte[127]; |
| | | } |
| | | |
| | | //相机架设信息 |
| | | public static class NET_DVR_GET_CAMERA_SETUPCFG extends HIKSDKStructure { |
| | | public int dwSize;//结构体大小 |
| | | public short wSetupHeight;//架设高度,取值范围:[0,20] |
| | | public byte byLensType;//镜头焦距类型:0- 未知,1- 8mm,2- 12mm,3- 16mm,4- 25mm,5- 35mm,6- 50mm |
| | | public byte bySetupHeightUnit;//架设高度单位:0- 米(m),1- 厘米(cm) |
| | | public int dwSceneDis;//图像下边缘位置与相机之间的水平距离,单位:厘米 |
| | | public float fPitchAngle;//相机俯仰角度,取值范围:[-180, 180],单位:度 |
| | | public float fInclineAngle;//相机倾斜角度,取值范围:[-180, 180],单位:度 |
| | | public float fRotateAngle;//相机旋转角度,取值范围:[-180, 180],单位:度 |
| | | public short wVideoDetCoefficient;//视频测试系数,取值范围:[0,300] |
| | | public byte byErectMethod;//架设方式:0-正装,1-侧装 |
| | | public byte byCameraViewAngle;//摄像机安装视野角度:0- 垂直(默认),1- 倾斜 |
| | | public int dwHorizontalDistance;//摄像机与出入口水平距离,取值范围:1~1000,默认:30,单位:cm,摄像机角度为倾斜时有效 |
| | | public byte byDetailLensType;//镜头类型,取值范围:1~100,默认:28,单位:0.1mm |
| | | public byte[] byRes = new byte[3]; |
| | | public float fHorFieldAngle;//摄像机水平视场角角度,取值范围:[0,360],单位:度 |
| | | public float fVerFieldAngle;//摄像机垂直视场角角度,取值范围:[0,360],单位:度 |
| | | public byte[] byRes1 = new byte[24]; |
| | | } |
| | | |
| | | //零方位角控制信息 |
| | | public static class NET_DVR_INITIALPOSITIONCTRL extends HIKSDKStructure { |
| | | public int dwSize ;//结构体大小 |
| | | public int dwSize;//结构体大小 |
| | | public short dwChan;//设备通道号 |
| | | public byte byWorkMode;//工作模式:0- 设置,1- 调用,2- 清除 |
| | | public byte[] byRes = new byte[127]; |
| | | } |
| | | |
| | | //球机位置信息 |
| | | public static class NET_DVR_PTZ_BASICPARAMCFG extends HIKSDKStructure { |
| | | public short dwSize;//结构体大小 |
| | |
| | | boolean NET_DVR_InquiryRecordTimeSpan(int lUserID, int dwChannel, NET_DVR_RECORD_TIME_SPAN_INQUIRY lpInquiry, NET_DVR_RECORD_TIME_SPAN lpResult); |
| | | |
| | | boolean NET_DVR_StartGetDevState(NET_DVR_CHECK_DEV_STATE pParams); |
| | | |
| | | //强制I帧参数结构体。 |
| | | public static class NET_DVR_I_FRAME extends HIKSDKStructure{ |
| | | public static class NET_DVR_I_FRAME extends HIKSDKStructure { |
| | | public int dwSize; |
| | | public byte[] sStreamID = new byte[32]; //流IDs SDK 中对 STREAM_ID_LEN进行了定义,赋值32 |
| | | public int dwChannel;//通道号 |
| | | public byte byStreamType; //码流类型:0-主码流,1-子码流,2-码流3,3-虚拟码流,以此类推 |
| | | public byte[] byRes = new byte[63]; //保留,置为0 按照SDK要求进行对应赋值 |
| | | } |
| | | |
| | | //gps相关结构定义 |
| | | public static class TimeSegParam extends HIKSDKStructure { |
| | | //GPS数据查找起始时间 |
| | |
| | | } |
| | | |
| | | public static final int NET_DVR_GET_GISINFO = 3711; |
| | | //GIS信息 |
| | | |
| | | //GIS信息 |
| | | public static class NET_DVR_GIS_INFO extends HIKSDKStructure { |
| | | public int dwSize; |
| | | public float fAzimuth; |
| | |
| | | public float fMinVerticalValue; |
| | | public float fMaxVerticalValue; |
| | | public byte[] byRes = new byte[220]; |
| | | } |
| | | |
| | | public static class NET_DVR_CHANNEL extends HIKSDKStructure { |
| | | public short wDVRPort; |
| | | public byte[] byRes1 = new byte[2]; |
| | | public int dwChannel; |
| | | public byte[] byRes2 = new byte[32]; |
| | | } |
| | | |
| | | //GBT28181协议的设备编码通道配置 |
| | |
| | | public byte[] byRes = new byte[6]; |
| | | } |
| | | } |
| | | |
| | | //播放库函数声明,PlayCtrl.dll |
| | | interface PlayCtrl extends Library { |
| | | public static final int STREAME_REALTIME = 0; |
| | |
| | | |
| | | //获取相机通道信息 |
| | | public List<ArdChannel> getCameraChannelList(ArdCameras camera); |
| | | //获取GIS信息数据 |
| | | public Map<String,Object> getGisInfo(CameraCmd cmd); |
| | | } |
| | |
| | | NET_DVR_FOCUSMODE_CFG focusmodeCfg = new NET_DVR_FOCUSMODE_CFG(); |
| | | Pointer point = focusmodeCfg.getPointer(); |
| | | IntByReference ibrBytesReturned = new IntByReference(0); |
| | | focusmodeCfg.byFocusMode=1; |
| | | focusmodeCfg.byAutoFocusMode=0; |
| | | focusmodeCfg.byFocusMode = 1; |
| | | focusmodeCfg.byAutoFocusMode = 0; |
| | | focusmodeCfg.write(); |
| | | boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, focusmodeCfg.size(), ibrBytesReturned); |
| | | if (bool) { |
| | |
| | | log.debug("设置聚焦模式成功"); |
| | | return bool; |
| | | } |
| | | |
| | | /** |
| | | * @描述 获取聚焦模式 |
| | | * @参数 [userId, channelNum] |
| | |
| | | log.debug("录像停止"); |
| | | //存入minio |
| | | String BucketName = cmd.getRecordBucketName(); |
| | | String ObjectName = cmd.getRecordObjectName()+".mp4"; |
| | | String ObjectName = cmd.getRecordObjectName() + ".mp4"; |
| | | FileInputStream stream = new FileInputStream(path); |
| | | boolean b = MinioUtil.uploadObject(BucketName, ObjectName, stream, stream.available(), "video/MP4"); |
| | | if (b) { |
| | |
| | | // 获取通道号 |
| | | for (int iChannum = 0; iChannum < chanNum; iChannum++) { |
| | | ArdChannel ardChannel = new ArdChannel(); |
| | | int channum = iChannum + startDChan+1; |
| | | int channum = iChannum + startDChan + 1; |
| | | HCNetSDK.NET_DVR_PICCFG_V40 strPicCfg = new HCNetSDK.NET_DVR_PICCFG_V40(); |
| | | strPicCfg.dwSize = strPicCfg.size(); |
| | | strPicCfg.write(); |
| | |
| | | } |
| | | return channelList; |
| | | } |
| | | |
| | | /** |
| | | * @描述 获取GIS信息数据 |
| | | * @参数 [userId, channelNum] |
| | | * @返回值 boolean |
| | | * @创建人 刘苏义 |
| | | * @创建时间 2023/1/17 16:36 |
| | | * @修改人和其它信息 0-解锁 1-锁定 |
| | | */ |
| | | @Override |
| | | public Map<String, Object> getGisInfo(CameraCmd cmd) { |
| | | String cameraId = cmd.getCameraId(); |
| | | Integer channelNum = cmd.getChannelNum(); |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | | return new HashMap<>(); |
| | | } |
| | | // 获取参数 |
| | | Integer userId = GlobalVariable.loginMap.get(cameraId); |
| | | HCNetSDK.NET_DVR_STD_CONFIG struStdCfg = new HCNetSDK.NET_DVR_STD_CONFIG(); |
| | | HCNetSDK.NET_DVR_GIS_INFO struGisInfo = new HCNetSDK.NET_DVR_GIS_INFO(); |
| | | struStdCfg.read(); |
| | | IntByReference lchannel = new IntByReference(channelNum); |
| | | struStdCfg.lpCondBuffer = lchannel.getPointer(); |
| | | struStdCfg.dwCondSize = 4; |
| | | struStdCfg.lpOutBuffer = struGisInfo.getPointer(); |
| | | struStdCfg.dwOutSize = struGisInfo.size(); |
| | | struStdCfg.write();//设置前之前要write() |
| | | boolean bool = hCNetSDK.NET_DVR_GetSTDConfig(userId, NET_DVR_GET_GISINFO, struStdCfg); |
| | | if (!bool) { |
| | | int code = hCNetSDK.NET_DVR_GetLastError(); |
| | | log.error("获取GIS信息数据失败,请稍后重试" + code); |
| | | return new HashMap<>(); |
| | | } else { |
| | | struGisInfo.read(); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("p", struGisInfo.struPtzPos.fPanPos); |
| | | map.put("t", struGisInfo.struPtzPos.fTiltPos<0?struGisInfo.struPtzPos.fTiltPos+360:struGisInfo.struPtzPos.fTiltPos); |
| | | map.put("z", struGisInfo.struPtzPos.fZoomPos); |
| | | map.put("fHorFieldAngle", struGisInfo.fHorizontalValue);// 水平视场角 |
| | | map.put("fVerFieldAngle", struGisInfo.fVerticalValue);// 垂直视场角 |
| | | return map; |
| | | } |
| | | } |
| | | } |
| | |
| | | package com.ruoyi.inspect.controller; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | |
| | | @GetMapping("/listByStartTime") |
| | | public TableDataInfo listByStartTime(ArdVideoInspectRecord ardVideoInspectRecord) { |
| | | startPage(); |
| | | List list = ardVideoInspectRecordService.selectArdVideoInspectRecordListByStartTime(ardVideoInspectRecord); |
| | | List<HashMap> list = ardVideoInspectRecordService.selectArdVideoInspectRecordListByStartTime(ardVideoInspectRecord); |
| | | return getDataTable(list); |
| | | } |
| | | |
| | |
| | | package com.ruoyi.inspect.mapper; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import com.ruoyi.inspect.domain.ArdVideoInspectRecord; |
| | | |
| | |
| | | * @return 视频巡检记录集合 |
| | | */ |
| | | public List<ArdVideoInspectRecord> selectArdVideoInspectRecordList(ArdVideoInspectRecord ardVideoInspectRecord); |
| | | |
| | | @SuppressWarnings("MybatisXMapperMethodInspection") |
| | | public List selectArdVideoInspectRecordListByStartTime(ArdVideoInspectRecord ardVideoInspectRecord); |
| | | public List<HashMap> selectArdVideoInspectRecordListByStartTime(ArdVideoInspectRecord ardVideoInspectRecord); |
| | | |
| | | /** |
| | | * 新增视频巡检记录 |
| | |
| | | package com.ruoyi.inspect.service.impl; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper; |
| | | import com.ruoyi.inspect.domain.ArdVideoInspectRecord; |
| | | import com.ruoyi.inspect.service.IArdVideoInspectRecordService; |
| | | import javax.annotation.Resource; |
| | | |
| | | /** |
| | | * 视频巡检记录Service业务层处理 |
| | |
| | | */ |
| | | @Service |
| | | public class ArdVideoInspectRecordServiceImpl implements IArdVideoInspectRecordService { |
| | | @Autowired |
| | | @Resource |
| | | private ArdVideoInspectRecordMapper ardVideoInspectRecordMapper; |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List selectArdVideoInspectRecordListByStartTime(ArdVideoInspectRecord ardVideoInspectRecord) { |
| | | public List<HashMap> selectArdVideoInspectRecordListByStartTime(ArdVideoInspectRecord ardVideoInspectRecord) { |
| | | return ardVideoInspectRecordMapper.selectArdVideoInspectRecordListByStartTime(ardVideoInspectRecord); |
| | | } |
| | | |
| | |
| | | * @Version: 1.0 |
| | | **/ |
| | | |
| | | import com.ruoyi.common.utils.ConfigUtils; |
| | | import com.ruoyi.common.utils.DictUtils; |
| | | import com.ruoyi.common.utils.file.ImageUtils; |
| | | import com.sun.imageio.plugins.common.ImageUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | | import java.sql.*; |
| | | import java.util.Collection; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | |
| | | |
| | | @Slf4j |
| | | @Component |
| | |
| | | public static String IP = "http://112.98.126.2:7030/"; |
| | | |
| | | @Get(IP + "${url}") |
| | | String GET(@DataVariable("url") String url, @Header("x-auth-token") String token, @JSONBody String body); |
| | | String GET(@Var("url") String url, @Header("x-auth-token") String token, @JSONBody String body); |
| | | |
| | | @Post(IP + "${url}") |
| | | String POST(@DataVariable("url") String url, @Header("x-auth-token") String token, @JSONBody String body); |
| | | String POST(@Var("url") String url, @Header("x-auth-token") String token, @JSONBody String body); |
| | | |
| | | @Delete(IP + "${url}") |
| | | String DELETE(@DataVariable("url") String url, @Header("x-auth-token") String token, @JSONBody String body); |
| | | String DELETE(@Var("url") String url, @Header("x-auth-token") String token, @JSONBody String body); |
| | | |
| | | |
| | | |
| | |
| | | video.addEventListener('loadedmetadata', function () { |
| | | adjustGridItemSize(gridItem, gridItem.videoWidth, gridItem.videoHeight); |
| | | }); |
| | | video.addEventListener("click", function() { |
| | | video.addEventListener("click", function () { |
| | | loadingMessage.style.display = "block"; |
| | | video.play().then(function() { |
| | | video.play().then(function () { |
| | | loadingMessage.style.display = "none"; |
| | | }).catch(function(error) { |
| | | }).catch(function (error) { |
| | | console.error("Error playing the video:", error); |
| | | loadingMessage.style.display = "none"; |
| | | }); |
| | |
| | | } |
| | | |
| | | |
| | | let mediamtxHost = "192.168.1.12" |
| | | var chanMap = new Map(); |
| | | window.onload = function () { |
| | | changeGrid(2, 2); |
| | | chanMap.set("video1", "http://127.0.0.1:8889/164/"); |
| | | chanMap.set("video2", "http://127.0.0.1:8889/165/"); |
| | | chanMap.set("video3", "http://127.0.0.1:8889/245/"); |
| | | chanMap.set("video4", "http://127.0.0.1:8889/164/"); |
| | | chanMap.set("video5", "http://127.0.0.1:8889/165/"); |
| | | chanMap.set("video6", "http://127.0.0.1:8889/245/"); |
| | | chanMap.set("video7", "http://127.0.0.1:8889/164/"); |
| | | chanMap.set("video8", "http://127.0.0.1:8889/165/"); |
| | | chanMap.set("video9", "http://127.0.0.1:8889/245/"); |
| | | chanMap.set("video1", "http://" + mediamtxHost + ":8889/164/"); |
| | | chanMap.set("video2", "http://" + mediamtxHost + ":8889/165/"); |
| | | chanMap.set("video3", "http://" + mediamtxHost + ":8889/245/"); |
| | | chanMap.set("video4", "http://" + mediamtxHost + ":8889/164/"); |
| | | chanMap.set("video5", "http://" + mediamtxHost + ":8889/165/"); |
| | | chanMap.set("video6", "http://" + mediamtxHost + ":8889/245/"); |
| | | chanMap.set("video7", "http://" + mediamtxHost + ":8889/164/"); |
| | | chanMap.set("video8", "http://" + mediamtxHost + ":8889/165/"); |
| | | chanMap.set("video9", "http://" + mediamtxHost + ":8889/245/"); |
| | | console.log(chanMap); |
| | | } |
| | | const linkToIceServers = (links) => ( |
| | |
| | | }) |
| | | } |
| | | |
| | | |
| | | </script> |
| | | </body> |
| | | </html> |
| | |
| | | # needed when server and clients are on different LANs. |
| | | # TURN/TURNS servers are needed when a direct connection between server and |
| | | # clients is not possible. All traffic is routed through them. stun:stun.l.google.com:19302 |
| | | - url: stun:stun.l.google.com:19302 |
| | | - url: stun:192.168.1.15:3478 |
| | | # if user is "AUTH_SECRET", then authentication is secret based. |
| | | # the secret must be inserted into the password field. |
| | | username: '' |
| | |
| | | List<SysUser> SysUserList = sysUserService.selectAllAppUserList(new SysUser()); |
| | | if (SysUserList.size() > 0) { |
| | | for (SysUser sysUser : SysUserList) { |
| | | Boolean appOnlineState = sysUser.getAppOnlineState().equals("1"); |
| | | Boolean online = rongCloudService.checkOnline(sysUser.getUserId()); |
| | | if (!appOnlineState.equals(online)) { |
| | | sysUser.setAppOnlineState(online ? "1" : "0"); |
| | | sysUserService.updateUserProfile(sysUser); |
| | | String state = sysUser.getAppOnlineState();//获取当前用户的在线状态 |
| | | Boolean online = rongCloudService.checkOnline(sysUser.getUserId());//从融云获取在线状态 |
| | | if (state != null) { |
| | | Boolean appOnlineState = state.equals("1"); |
| | | if (appOnlineState == online) { |
| | | continue; |
| | | } |
| | | } |
| | | sysUser.setAppOnlineState(online ? "1" : "0"); |
| | | sysUserService.updateUserProfile(sysUser); |
| | | } |
| | | } |
| | | } catch (Exception ex) { |
| | |
| | | RedisCache redisCache = SpringUtils.getBean(RedisCache.class); |
| | | IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class); |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | ArdCameras ardCameras = new ArdCameras(); |
| | | ardCameras.setGdtype("1"); |
| | | List<Object> Objects = redisCache.getListKey(CacheConstants.CAMERA_LIST_KEY); |
| | | if (Objects.size() > 0) { |
| | | for (Object obj : Objects) { |
| | | ArdCameras camera = (ArdCameras) obj; |
| | | if(!"1".equals(camera.getGdtype())) |
| | | { |
| | | continue; |
| | | } |
| | | CameraCmd cmd = new CameraCmd(); |
| | | cmd.setCameraId(camera.getId()); |
| | | cmd.setChannelNum(1); |
| | |
| | | { |
| | | continue; |
| | | } |
| | | Map<String, Object> ptz = hikClientService.getPtz(cmd); |
| | | Map<String, Object> ptz = hikClientService.getGisInfo(cmd); |
| | | if (StringUtils.isNull(ptz)) { |
| | | continue; |
| | | } |
| | |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@dailymotion/vast-client": { |
| | | "version": "4.0.1", |
| | | "resolved": "https://registry.npmjs.org/@dailymotion/vast-client/-/vast-client-4.0.1.tgz", |
| | | "integrity": "sha512-oRUCc06bWdX/1f2Eha/od5WCj+MLHiD6rgyAudgjOUyWXhCcbkUTZeejBSQsLft0nFnd+5nrDqGkBD8mrEVd/Q==", |
| | | "dependencies": { |
| | | "@xmldom/xmldom": "^0.8.3" |
| | | }, |
| | | "engines": { |
| | | "node": ">=12.22.1" |
| | | } |
| | | }, |
| | | "node_modules/@dailymotion/vmap": { |
| | | "version": "3.3.1", |
| | | "resolved": "https://registry.npmjs.org/@dailymotion/vmap/-/vmap-3.3.1.tgz", |
| | | "integrity": "sha512-0+JbHbK/ePKtQYAyrZWr7q/ec2hA355hOm5qwlNUt175ml6IBqKsSSjpz9cLe+0sYCKZGega7ED6gc+uoR5pbQ==", |
| | | "engines": { |
| | | "node": ">=12.22.1" |
| | | } |
| | | }, |
| | | "node_modules/@eslint/eslintrc": { |
| | | "version": "0.2.2", |
| | | "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", |
| | |
| | | "engines": { |
| | | "node": ">=8" |
| | | } |
| | | }, |
| | | "node_modules/@eyevinn/csai-manager": { |
| | | "version": "0.1.2", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/csai-manager/-/csai-manager-0.1.2.tgz", |
| | | "integrity": "sha512-ZehCxXlSIHF5Ej1n/WZEaLa6sLIH5zrE1ZB71yyT/KbFoeDsDDoo+jw61xzzT+pKBb4vNBtKQRgaVDGZdT2L/g==", |
| | | "dependencies": { |
| | | "@dailymotion/vast-client": "^4.0.0", |
| | | "@dailymotion/vmap": "^3.3.0", |
| | | "@eyevinn/video-event-filter": "^2.0.0", |
| | | "mitt": "^3.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@eyevinn/csai-manager/node_modules/mitt": { |
| | | "version": "3.0.1", |
| | | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", |
| | | "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" |
| | | }, |
| | | "node_modules/@eyevinn/video-event-filter": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/video-event-filter/-/video-event-filter-2.0.0.tgz", |
| | | "integrity": "sha512-S5pECmymqg7WqlAeerhtPVEFxWhLY3cz3DTuhuljZreVDLnEBV6/DlWI6SWDnKdpDJMgD6VjPfaRJssmGatNBg==", |
| | | "dependencies": { |
| | | "mitt": "^2.1.0" |
| | | } |
| | | }, |
| | | "node_modules/@eyevinn/video-event-filter/node_modules/mitt": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz", |
| | | "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" |
| | | }, |
| | | "node_modules/@eyevinn/webrtc-player": { |
| | | "version": "0.12.0", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/webrtc-player/-/webrtc-player-0.12.0.tgz", |
| | | "integrity": "sha512-xzb0wl/wVmuzv4yvOF3+fUtvv14oj9+pQ0Va0CTBAz2VYRsVdqtDacwq8aMolfsDqdwIyouj5Qji5XWz9tdW3A==", |
| | | "dependencies": { |
| | | "@eyevinn/csai-manager": "^0.1.2", |
| | | "@eyevinn/whpp-client": "^0.1.2", |
| | | "events": "^3.3.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=18.15.0" |
| | | } |
| | | }, |
| | | "node_modules/@eyevinn/whpp-client": { |
| | | "version": "0.1.2", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/whpp-client/-/whpp-client-0.1.2.tgz", |
| | | "integrity": "sha512-Mau11ykVIZudy+7Qz2tJZbV2cuj8Un7eT2QRBGFA42RPL8djfEi/RIZ+6b9C1Bc1EAppl26zoh28D8/KstFioQ==" |
| | | }, |
| | | "node_modules/@gar/promisify": { |
| | | "version": "1.1.3", |
| | |
| | | "@webassemblyjs/ast": "1.9.0", |
| | | "@webassemblyjs/wast-parser": "1.9.0", |
| | | "@xtuc/long": "4.2.2" |
| | | } |
| | | }, |
| | | "node_modules/@xmldom/xmldom": { |
| | | "version": "0.8.10", |
| | | "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", |
| | | "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", |
| | | "engines": { |
| | | "node": ">=10.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@xtuc/ieee754": { |
| | |
| | | "version": "3.3.0", |
| | | "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", |
| | | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", |
| | | "dev": true, |
| | | "engines": { |
| | | "node": ">=0.8.x" |
| | | } |
| | |
| | | "version": "3.8.5", |
| | | "license": "MIT", |
| | | "dependencies": { |
| | | "@eyevinn/webrtc-player": "^0.12.0", |
| | | "@riophae/vue-treeselect": "0.4.0", |
| | | "axios": "0.24.0", |
| | | "clipboard": "2.0.8", |
| | |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@dailymotion/vast-client": { |
| | | "version": "4.0.1", |
| | | "resolved": "https://registry.npmjs.org/@dailymotion/vast-client/-/vast-client-4.0.1.tgz", |
| | | "integrity": "sha512-oRUCc06bWdX/1f2Eha/od5WCj+MLHiD6rgyAudgjOUyWXhCcbkUTZeejBSQsLft0nFnd+5nrDqGkBD8mrEVd/Q==", |
| | | "dependencies": { |
| | | "@xmldom/xmldom": "^0.8.3" |
| | | }, |
| | | "engines": { |
| | | "node": ">=12.22.1" |
| | | } |
| | | }, |
| | | "node_modules/@dailymotion/vmap": { |
| | | "version": "3.3.1", |
| | | "resolved": "https://registry.npmjs.org/@dailymotion/vmap/-/vmap-3.3.1.tgz", |
| | | "integrity": "sha512-0+JbHbK/ePKtQYAyrZWr7q/ec2hA355hOm5qwlNUt175ml6IBqKsSSjpz9cLe+0sYCKZGega7ED6gc+uoR5pbQ==", |
| | | "engines": { |
| | | "node": ">=12.22.1" |
| | | } |
| | | }, |
| | | "node_modules/@eslint/eslintrc": { |
| | | "version": "0.2.2", |
| | | "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", |
| | |
| | | "engines": { |
| | | "node": ">=8" |
| | | } |
| | | }, |
| | | "node_modules/@eyevinn/csai-manager": { |
| | | "version": "0.1.2", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/csai-manager/-/csai-manager-0.1.2.tgz", |
| | | "integrity": "sha512-ZehCxXlSIHF5Ej1n/WZEaLa6sLIH5zrE1ZB71yyT/KbFoeDsDDoo+jw61xzzT+pKBb4vNBtKQRgaVDGZdT2L/g==", |
| | | "dependencies": { |
| | | "@dailymotion/vast-client": "^4.0.0", |
| | | "@dailymotion/vmap": "^3.3.0", |
| | | "@eyevinn/video-event-filter": "^2.0.0", |
| | | "mitt": "^3.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@eyevinn/csai-manager/node_modules/mitt": { |
| | | "version": "3.0.1", |
| | | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", |
| | | "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" |
| | | }, |
| | | "node_modules/@eyevinn/video-event-filter": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/video-event-filter/-/video-event-filter-2.0.0.tgz", |
| | | "integrity": "sha512-S5pECmymqg7WqlAeerhtPVEFxWhLY3cz3DTuhuljZreVDLnEBV6/DlWI6SWDnKdpDJMgD6VjPfaRJssmGatNBg==", |
| | | "dependencies": { |
| | | "mitt": "^2.1.0" |
| | | } |
| | | }, |
| | | "node_modules/@eyevinn/video-event-filter/node_modules/mitt": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz", |
| | | "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" |
| | | }, |
| | | "node_modules/@eyevinn/webrtc-player": { |
| | | "version": "0.12.0", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/webrtc-player/-/webrtc-player-0.12.0.tgz", |
| | | "integrity": "sha512-xzb0wl/wVmuzv4yvOF3+fUtvv14oj9+pQ0Va0CTBAz2VYRsVdqtDacwq8aMolfsDqdwIyouj5Qji5XWz9tdW3A==", |
| | | "dependencies": { |
| | | "@eyevinn/csai-manager": "^0.1.2", |
| | | "@eyevinn/whpp-client": "^0.1.2", |
| | | "events": "^3.3.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=18.15.0" |
| | | } |
| | | }, |
| | | "node_modules/@eyevinn/whpp-client": { |
| | | "version": "0.1.2", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/whpp-client/-/whpp-client-0.1.2.tgz", |
| | | "integrity": "sha512-Mau11ykVIZudy+7Qz2tJZbV2cuj8Un7eT2QRBGFA42RPL8djfEi/RIZ+6b9C1Bc1EAppl26zoh28D8/KstFioQ==" |
| | | }, |
| | | "node_modules/@gar/promisify": { |
| | | "version": "1.1.3", |
| | |
| | | "@webassemblyjs/ast": "1.9.0", |
| | | "@webassemblyjs/wast-parser": "1.9.0", |
| | | "@xtuc/long": "4.2.2" |
| | | } |
| | | }, |
| | | "node_modules/@xmldom/xmldom": { |
| | | "version": "0.8.10", |
| | | "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", |
| | | "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", |
| | | "engines": { |
| | | "node": ">=10.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@xtuc/ieee754": { |
| | |
| | | "version": "3.3.0", |
| | | "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", |
| | | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", |
| | | "dev": true, |
| | | "engines": { |
| | | "node": ">=0.8.x" |
| | | } |
| | |
| | | "to-fast-properties": "^2.0.0" |
| | | } |
| | | }, |
| | | "@dailymotion/vast-client": { |
| | | "version": "4.0.1", |
| | | "resolved": "https://registry.npmjs.org/@dailymotion/vast-client/-/vast-client-4.0.1.tgz", |
| | | "integrity": "sha512-oRUCc06bWdX/1f2Eha/od5WCj+MLHiD6rgyAudgjOUyWXhCcbkUTZeejBSQsLft0nFnd+5nrDqGkBD8mrEVd/Q==", |
| | | "requires": { |
| | | "@xmldom/xmldom": "^0.8.3" |
| | | } |
| | | }, |
| | | "@dailymotion/vmap": { |
| | | "version": "3.3.1", |
| | | "resolved": "https://registry.npmjs.org/@dailymotion/vmap/-/vmap-3.3.1.tgz", |
| | | "integrity": "sha512-0+JbHbK/ePKtQYAyrZWr7q/ec2hA355hOm5qwlNUt175ml6IBqKsSSjpz9cLe+0sYCKZGega7ED6gc+uoR5pbQ==" |
| | | }, |
| | | "@eslint/eslintrc": { |
| | | "version": "0.2.2", |
| | | "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", |
| | |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "@eyevinn/csai-manager": { |
| | | "version": "0.1.2", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/csai-manager/-/csai-manager-0.1.2.tgz", |
| | | "integrity": "sha512-ZehCxXlSIHF5Ej1n/WZEaLa6sLIH5zrE1ZB71yyT/KbFoeDsDDoo+jw61xzzT+pKBb4vNBtKQRgaVDGZdT2L/g==", |
| | | "requires": { |
| | | "@dailymotion/vast-client": "^4.0.0", |
| | | "@dailymotion/vmap": "^3.3.0", |
| | | "@eyevinn/video-event-filter": "^2.0.0", |
| | | "mitt": "^3.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "mitt": { |
| | | "version": "3.0.1", |
| | | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", |
| | | "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" |
| | | } |
| | | } |
| | | }, |
| | | "@eyevinn/video-event-filter": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/video-event-filter/-/video-event-filter-2.0.0.tgz", |
| | | "integrity": "sha512-S5pECmymqg7WqlAeerhtPVEFxWhLY3cz3DTuhuljZreVDLnEBV6/DlWI6SWDnKdpDJMgD6VjPfaRJssmGatNBg==", |
| | | "requires": { |
| | | "mitt": "^2.1.0" |
| | | }, |
| | | "dependencies": { |
| | | "mitt": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz", |
| | | "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" |
| | | } |
| | | } |
| | | }, |
| | | "@eyevinn/webrtc-player": { |
| | | "version": "0.12.0", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/webrtc-player/-/webrtc-player-0.12.0.tgz", |
| | | "integrity": "sha512-xzb0wl/wVmuzv4yvOF3+fUtvv14oj9+pQ0Va0CTBAz2VYRsVdqtDacwq8aMolfsDqdwIyouj5Qji5XWz9tdW3A==", |
| | | "requires": { |
| | | "@eyevinn/csai-manager": "^0.1.2", |
| | | "@eyevinn/whpp-client": "^0.1.2", |
| | | "events": "^3.3.0" |
| | | } |
| | | }, |
| | | "@eyevinn/whpp-client": { |
| | | "version": "0.1.2", |
| | | "resolved": "https://registry.npmjs.org/@eyevinn/whpp-client/-/whpp-client-0.1.2.tgz", |
| | | "integrity": "sha512-Mau11ykVIZudy+7Qz2tJZbV2cuj8Un7eT2QRBGFA42RPL8djfEi/RIZ+6b9C1Bc1EAppl26zoh28D8/KstFioQ==" |
| | | }, |
| | | "@gar/promisify": { |
| | | "version": "1.1.3", |
| | |
| | | "@webassemblyjs/wast-parser": "1.9.0", |
| | | "@xtuc/long": "4.2.2" |
| | | } |
| | | }, |
| | | "@xmldom/xmldom": { |
| | | "version": "0.8.10", |
| | | "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", |
| | | "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==" |
| | | }, |
| | | "@xtuc/ieee754": { |
| | | "version": "1.2.0", |
| | |
| | | "events": { |
| | | "version": "3.3.0", |
| | | "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", |
| | | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", |
| | | "dev": true |
| | | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" |
| | | }, |
| | | "eventsource": { |
| | | "version": "2.0.2", |
| | |
| | | "url": "https://gitee.com/y_project/RuoYi-Vue.git" |
| | | }, |
| | | "dependencies": { |
| | | "@eyevinn/webrtc-player": "^0.12.0", |
| | | "@riophae/vue-treeselect": "0.4.0", |
| | | "axios": "0.24.0", |
| | | "clipboard": "2.0.8", |