增加rtsp的限制

camera_merge
王一鸣 5 years ago
parent e80b72ec47
commit 02ace2769a

@ -10,6 +10,7 @@ import com.zhehekeji.web.lib.PtzControlModule;
import com.zhehekeji.web.mapper.CameraMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@ -17,6 +18,7 @@ import javax.annotation.Resource;
@Api(value = "CameraControl",tags = "球机控制管理")
@RestController
@RequestMapping("/camera/control")
@Slf4j
public class CameraControlController {
@Resource
@ -36,6 +38,7 @@ public class CameraControlController {
@PostMapping("/up/{id}")
@ApiOperation(value = "球机控制向上")
public Result up(@PathVariable Integer id) {
log.debug("球机控制向上");
checkLogin(id);
PtzControlModule.ptzControlUpStart(id,0,0,1);
return Result.success();
@ -44,6 +47,7 @@ public class CameraControlController {
@PostMapping("/up/stop/{id}")
@ApiOperation(value = "球机控制向上 停止")
public Result upStop(@PathVariable Integer id) {
log.debug("球机控制向上 停止");
checkLogin(id);
PtzControlModule.ptzControlUpEnd(id,0);
return Result.success();
@ -54,6 +58,7 @@ public class CameraControlController {
public Result down(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlDownStart(id,0,0,1);
log.debug("球机控制向下");
return Result.success();
}
@ -62,6 +67,7 @@ public class CameraControlController {
public Result downStop(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlDownEnd(id,0);
log.debug("球机控制向下 停止");
return Result.success();
}
@ -70,6 +76,7 @@ public class CameraControlController {
public Result left(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlLeftStart(id,0,0,1);
log.debug("球机控制向左");
return Result.success();
}
@ -78,6 +85,7 @@ public class CameraControlController {
public Result leftStop(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlLeftEnd(id,0);
log.debug("球机控制向左 -停止");
return Result.success();
}
@ -87,6 +95,7 @@ public class CameraControlController {
public Result leftUp(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlLeftUpStart(id,0,1,1);
log.debug("球机控制向上");
return Result.success();
}
@ -95,6 +104,7 @@ public class CameraControlController {
public Result leftUpStop(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlLeftUpEnd(id,0);
log.debug("球机控制向上 停止");
return Result.success();
}
@ -103,6 +113,7 @@ public class CameraControlController {
public Result leftDown(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlLeftDownStart(id,0,1,1);
log.debug("球机控制左下");
return Result.success();
}
@ -111,6 +122,7 @@ public class CameraControlController {
public Result leftDownStop(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlLeftDownEnd(id,0);
log.debug("球机控制左下 停止");
return Result.success();
}
@ -119,6 +131,7 @@ public class CameraControlController {
public Result right(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlRightStart(id,0,0,1);
log.debug("球机控制右");
return Result.success();
}
@ -127,6 +140,7 @@ public class CameraControlController {
public Result rightStop(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlRightEnd(id,0);
log.debug("球机控制右 停止");
return Result.success();
}
@ -136,6 +150,7 @@ public class CameraControlController {
public Result rightUp(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlRightUpStart(id,0,1,1);
log.debug("球机控制右上");
return Result.success();
}
@ -144,6 +159,7 @@ public class CameraControlController {
public Result rightUpStop(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlRightUpEnd(id,0);
log.debug("球机控制右上 -停止");
return Result.success();
}
@ -152,6 +168,7 @@ public class CameraControlController {
public Result rightDown(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlRightDownStart(id,0,1,1);
log.debug("球机控制右下");
return Result.success();
}
@ -160,6 +177,7 @@ public class CameraControlController {
public Result rightDownStop(@PathVariable Integer id) {
checkLogin(id);
PtzControlModule.ptzControlRightDownEnd(id,0);
log.debug("球机控制右下 -停止");
return Result.success();
}

@ -8,11 +8,16 @@ public class CameraConnMap{
public static Map<Integer, NetSDKLib.LLong> cameraMap = new HashMap<>();
public static void conn(Integer cameraId,NetSDKLib.LLong handlerId){
cameraMap.put(cameraId,handlerId);
synchronized (cameraId.toString().intern()){
cameraMap.put(cameraId,handlerId);
}
}
public static void disConn(Integer cameraId){
cameraMap.remove(cameraId);
synchronized (cameraId.toString().intern()){
cameraMap.remove(cameraId);
}
}
public static NetSDKLib.LLong getConnId(Integer cameraId){

@ -48,21 +48,21 @@ public class LoginModule {
//Res res = Res.string();
//打开日志,可选
// NetSDKLib.LOG_SET_PRINT_INFO setLog = new NetSDKLib.LOG_SET_PRINT_INFO();
// File path = new File("./sdklog/");
// if (!path.exists()) {
// path.mkdir();
// }
// String logPath = path.getAbsoluteFile().getParent() + "\\sdklog\\" + ToolKits.getDate() + ".log";
// setLog.nPrintStrategy = 0;
// setLog.bSetFilePath = 1;
// System.arraycopy(logPath.getBytes(), 0, setLog.szLogFilePath, 0, logPath.getBytes().length);
// System.out.println(logPath);
// setLog.bSetPrintStrategy = 1;
// bLogopen = netsdk.CLIENT_LogOpen(setLog);
// if(!bLogopen ) {
// System.err.println("Failed to open NetSDK log");
// }
NetSDKLib.LOG_SET_PRINT_INFO setLog = new NetSDKLib.LOG_SET_PRINT_INFO();
File path = new File("./sdklog/");
if (!path.exists()) {
path.mkdir();
}
String logPath = path.getAbsoluteFile().getParent() + "\\sdklog\\" + ToolKits.getDate() + ".log";
setLog.nPrintStrategy = 0;
setLog.bSetFilePath = 1;
System.arraycopy(logPath.getBytes(), 0, setLog.szLogFilePath, 0, logPath.getBytes().length);
System.out.println(logPath);
setLog.bSetPrintStrategy = 1;
bLogopen = netsdk.CLIENT_LogOpen(setLog);
if(!bLogopen ) {
System.err.println("Failed to open NetSDK log");
}
// 设置断线重连回调接口设置过断线重连成功回调函数后当设备出现断线情况SDK内部会自动进行重连操作
// 此操作为可选操作,但建议用户进行设置

@ -1,57 +1,16 @@
package com.zhehekeji.web.lib;
import com.sun.jna.Pointer;
import com.zhehekeji.common.util.PathUtil;
import org.springframework.web.bind.annotation.PathVariable;
import javax.imageio.ImageIO;
import java.io.*;
public class Mp4ReceiveCB implements NetSDKLib.fTimeDownLoadPosCallBack {
// @Override
// public int invoke(NetSDKLib.LLong lRealHandle, int dwDataType, Pointer pBuf, int RevLen, Pointer dwUser) {
// if(pBuf != null && RevLen > 0) {
// byte[] buf = pBuf.getByteArray(0, RevLen);
//
// File file = PathUtil.getFile("d://qq/recive/qqq.mp4");
// OutputStream os = null;
// try {
// os = new FileOutputStream(file);
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// }
// for(int i = 0;i<buf.length;i++){
// try {
// os.write(buf[i]);
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
//
// try {
// os.flush();
// } catch (IOException e) {
// e.printStackTrace();
// }
// try {
// os.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
//
//
// }
//
// return 0;
// }
@Override
public void invoke(NetSDKLib.LLong lPlayHandle, int dwTotalSize, int dwDownLoadSize, int index, NetSDKLib.NET_RECORDFILE_INFO.ByValue recordfileinfo, Pointer dwUser) {
System.out.println("ing...."+dwDownLoadSize+" totalSize:"+dwTotalSize+"id:"+lPlayHandle.longValue());
System.out.println("ing.... dwDownLoadSize:"+dwDownLoadSize+" dwTotalSize:"+dwTotalSize+
" lPlayHandle:"+lPlayHandle.longValue()+" index:"+index);
if(dwDownLoadSize == -1) {
System.out.println("下载结束");
LoginModule.netsdk.CLIENT_StopDownload(lPlayHandle);
}
}
}

@ -230,67 +230,12 @@ public class PtzControlModule {
}
public static void downloadMp4(Integer cameraId,int channelId){
// NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE stIn = new NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE();
//
//
//
// stIn.emDataType = NetSDKLib.EM_REAL_DATA_TYPE.EM_REAL_DATA_TYPE_MP4; // mp4
//
// stIn.emRecordType = NetSDKLib.EM_QUERY_RECORD_TYPE.EM_RECORD_TYPE_ALL; // 所有录像
//
// stIn.nChannelID = 0;
//
// LocalDateTime now = LocalDateTime.now();
// LocalDateTime start = now.minusMinutes(10);
// stIn.stStartTime.setTime(start.getYear(),start.getMonthValue(),start.getDayOfMonth(),start.getHour(),start.getMinute(),start.getSecond());
// NetSDKLib.NET_TIME endTime = new NetSDKLib.NET_TIME();
// LocalDateTime end = now.minusMinutes(8);
// stIn.stStopTime.setTime(end.getYear(),end.getMonthValue(),end.getDayOfMonth(),end.getHour(),end.getMinute(),end.getSecond());
//
// //stIn.cbDownLoadPos = DownloadPosCallBack.getInstance();
//
// stIn.dwPosUser = null;
//
//
// Mp4ReceiveCB mp4ReceiveCB = new Mp4ReceiveCB();
// stIn.fDownLoadDataCallBack = mp4ReceiveCB;
//
// stIn.dwDataUser = null;
//
//
//
// NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE stOut = new NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE();
// NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE download_by_data_type = new NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE();
// download_by_data_type.nChannelID = 0;
// download_by_data_type.stStartTime = startTime;
// download_by_data_type.stStopTime = endTime;
// download_by_data_type.szSavedFileName="/qq.mp4";
// download_by_data_type.emDataType = 3;
// download_by_data_type.emRecordType = 0;
// NetSDKLib.LLong lPlayHandle = LoginModule.netsdk.CLIENT_DownloadByDataType(CameraConnMap.getConnId(cameraId), stIn, stOut, 5000);
//
// if(lPlayHandle.longValue() != 0) {
//
// System.out.println("DownloadByDataType Succeed!");
//
// } else {
// System.err.printf("DownloadByDataType Failed!Last Error[0x%x]\n", LoginModule.netsdk.CLIENT_GetLastError());
// return;
// }
// try {
// Thread.sleep(30000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// LoginModule.netsdk.CLIENT_StopDownload(lPlayHandle); //因为mp4格式需要在下载结束的时候回写头所以一定要调用停止接口否则下载的Mp4无法播放
NetSDKLib.NET_TIME startTime = new NetSDKLib.NET_TIME();
LocalDateTime now = LocalDateTime.now();
LocalDateTime start = now.minusMinutes(10);
LocalDateTime start = now.minusMinutes(80);
startTime.setTime(start.getYear(),start.getMonthValue(),start.getDayOfMonth(),start.getHour(),start.getMinute(),start.getSecond());
NetSDKLib.NET_TIME endTime = new NetSDKLib.NET_TIME();
LocalDateTime end = now.minusMinutes(8);
LocalDateTime end = now.minusMinutes(75);
endTime.setTime(end.getYear(),end.getMonthValue(),end.getDayOfMonth(),end.getHour(),end.getMinute(),end.getSecond());
NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE download_by_data_type = new NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE();
download_by_data_type.nChannelID = 0;
@ -300,17 +245,14 @@ public class PtzControlModule {
download_by_data_type.szSavedFileName="d:/qq/"+u+".mp4";
download_by_data_type.emDataType = 3;
download_by_data_type.emRecordType = 0;
download_by_data_type.fDownLoadDataCallBack = new Mp4ReceiveCB();
download_by_data_type.cbDownLoadPos = new Mp4ReceiveCB();
NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE net_out_download_by_data_type = new NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE();
//NetSDKLib.LLong l = LoginModule.netsdk.CLIENT_DownloadByTimeEx2(CameraConnMap.getConnId(cameraId),channelId,0,startTime,endTime,"./q2q.mp4",null,null,null,null,3,null);
System.out.println("开始");
System.out.println("loginId"+CameraConnMap.getConnId(cameraId));
NetSDKLib.LLong l = LoginModule.netsdk.CLIENT_DownloadByDataType(CameraConnMap.getConnId(cameraId),download_by_data_type,net_out_download_by_data_type,2);
System.out.println("l "+l.longValue());
// NetSDKLib.LLong m_hDownLoadHandle = LoginModule.netsdk.CLIENT_DownloadByTimeEx(CameraConnMap.getConnId(cameraId), channelId, 0,
// startTime, endTime, "./qq.dav",
// null, null, null, null, null);
System.out.println("loginId"+CameraConnMap.getConnId(cameraId));
NetSDKLib.LLong l = LoginModule.netsdk.CLIENT_DownloadByDataType(CameraConnMap.getConnId(cameraId),download_by_data_type,net_out_download_by_data_type,0);
System.out.println("下载句柄: "+l.longValue());
if(l.longValue() == 0){
System.out.println(ToolKits.getErrorCodePrint());
}

@ -48,6 +48,7 @@ public class CameraService {
}
public void edit(Camera camera){
camera.setUpdateTime(LocalDateTime.now());
try {
cameraMapper.updateById(camera);
}catch (DuplicateKeyException e){

@ -1,6 +1,7 @@
package com.zhehekeji.web.service;
import com.alibaba.excel.EasyExcel;
import com.zhehekeji.web.entity.Stock;
import com.zhehekeji.web.mapper.StockMapper;
import com.zhehekeji.web.pojo.stock.StockExcel;
import org.springframework.stereotype.Service;
@ -8,6 +9,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
@Service
@ -19,4 +21,8 @@ public class StockService {
public void importExcel(MultipartFile file) throws IOException {
EasyExcel.read(file.getInputStream(), StockExcel.class, new StockImport(stockMapper)).sheet().doRead();
}
public List<Stock> stocksByStreet(){
return null;
}
}

Loading…
Cancel
Save