From 670bc85ba8468dbe9a427abc54f2bca9d4e71749 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Fri, 23 Apr 2021 16:32:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/rvideo/controller/RvideoController.java | 148 ++++++++++++++++++++++++++++++------------------
1 files changed, 92 insertions(+), 56 deletions(-)
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/rvideo/controller/RvideoController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/rvideo/controller/RvideoController.java
index 5a4363d..4cb184d 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/rvideo/controller/RvideoController.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/rvideo/controller/RvideoController.java
@@ -41,14 +41,12 @@
import org.springblade.jfpt.rvideo.vo.RvideoVO;
import org.springblade.jfpt.rvideo.service.IRvideoService;
import org.springblade.core.boot.ctrl.BladeController;
-
import java.io.File;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.UUID;
+
+import org.bytedeco.javacpp.avcodec;
+import org.bytedeco.javacv.*;
+import java.io.IOException;
+
/**
* 控制器
@@ -66,8 +64,10 @@
private final IAlarmService alarmService;
private final IXlfeedbackService xlfeedbackService;
private static String PRE_URL = "D:\\software\\minio\\data\\jfpt\\void\\";
-
private static String PRF_MINIO_URL = "minio/jfpt/void/";
+ private static Thread thread;
+ private static String UUIDs;
+ private static String uids;
/**
* 详情
@@ -136,6 +136,7 @@
/**
* 删除
*/
+
@PostMapping("/remove")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "删除", notes = "传入ids")
@@ -143,58 +144,93 @@
return R.status(rvideoService.removeByIds(Func.toLongList(ids)));
}
- /**
- * @param sourcePath 源路径
- * @param jid 警情id
- * @throws Exception
+// /**
+// * @param sourcePath 源路径
+// * @param jid 警情id
+// * @throws Exception
+// */
+// @PostMapping("/rVoid")
+// public String rVoid(String sourcePath,String jid) throws Exception {
+// String webroot = "D:\\LXVideoServer\\3rd\\ffmpeg\\bin";
+// String UUID = DateUtil.time();
+// //目标路径
+// String targetPath = PRE_URL + UUID + ".mp4";
+// //返回前端路径
+// String vaddress = null;
+// Runtime run = null;
+//
+// try {
+//
+// run = Runtime.getRuntime();
+//
+// long start = System.currentTimeMillis();
+//
+// System.out.println(new File(webroot).getAbsolutePath());
+// //通过视频url录制30s视频保存,格式为MP4
+// String newJson = StringEscapeUtils.unescapeHtml4(sourcePath);
+// Process p = run.exec(new File(webroot).getAbsolutePath() + "/ffmpeg -i " +newJson+ " -y -t 00:00:30 -codec copy -f mp4 " + targetPath);
+//
+// //释放进程
+//
+// p.getOutputStream().close();
+//
+// p.getInputStream().close();
+//
+// p.getErrorStream().close();
+//
+// p.waitFor();
+//
+// long end = System.currentTimeMillis();
+//
+// System.out.println(sourcePath + " convert success, costs:" + (end - start) + "ms");
+//
+// } catch (Exception e) {
+//
+// e.printStackTrace();
+//
+// } finally {
+// //run调用lame解码器最后释放内存
+// run.freeMemory();
+// //返回路径
+// vaddress = "https://web.byisf.com/" + PRF_MINIO_URL + UUID + ".mp4";
+// //把路径通过警情id添加到警情信息
+// alarmService.updateVaddress(vaddress,jid);
+// }
+// return vaddress;
+// }
+
+
+ /**
+ * Javacv录制视频
*/
- @PostMapping("/rVoid")
- public String rVoid(String sourcePath,String jid) throws Exception {
- String webroot = "D:\\LXVideoServer\\3rd\\ffmpeg\\bin";
+ @PostMapping("/rVoids")
+ public void rVoids(String url,String uid) {
String UUID = DateUtil.time();
- //目标路径
- String targetPath = PRE_URL + UUID + ".mp4";
+ uids=uid;
+ UUIDs=UUID;
+ RecordVideoThread recordVideoThread = new RecordVideoThread();
+ recordVideoThread.filePath = "D:\\software\\minio\\data\\jfpt\\void\\"+UUID + ".mp4";
+ recordVideoThread.timesSec = 0L;
+ String newJson = StringEscapeUtils.unescapeHtml4(url);
+ recordVideoThread.streamURL =newJson;// 最好设置结束时长 如直接停止程序会造成输出文件的损坏无法正常播放
+ recordVideoThread.isAudio = true;
+ thread = new Thread(recordVideoThread);
+ thread.start();
+ }
+
+
+
+ @PostMapping("/stop")
+ public String stop(String jid) throws FrameGrabber.Exception {
//返回前端路径
String vaddress = null;
- Runtime run = null;
-
- try {
-
- run = Runtime.getRuntime();
-
- long start = System.currentTimeMillis();
-
- System.out.println(new File(webroot).getAbsolutePath());
- //通过视频url录制30s视频保存,格式为MP4
- String newJson = StringEscapeUtils.unescapeHtml4(sourcePath);
- Process p = run.exec(new File(webroot).getAbsolutePath() + "/ffmpeg -i " +newJson+ " -y -t 00:00:30 -codec copy -f mp4 " + targetPath);
-
- //释放进程
-
- p.getOutputStream().close();
-
- p.getInputStream().close();
-
- p.getErrorStream().close();
-
- p.waitFor();
-
- long end = System.currentTimeMillis();
-
- System.out.println(sourcePath + " convert success, costs:" + (end - start) + "ms");
-
- } catch (Exception e) {
-
- e.printStackTrace();
-
- } finally {
- //run调用lame解码器最后释放内存
- run.freeMemory();
- //返回路径
- vaddress = "https://web.byisf.com/" + PRF_MINIO_URL + UUID + ".mp4";
- //把路径通过警情id添加到警情信息
- alarmService.updateVaddress(vaddress,jid);
- }
+ thread.stop();
+ //返回路径
+ vaddress = "https://web.byisf.com/" + PRF_MINIO_URL + UUIDs + ".mp4";
+ //把路径通过警情id添加到警情信息
+ alarmService.updateVaddress(vaddress,uids,jid);
return vaddress;
+
}
+
}
--
Gitblit v1.9.3