From 252e5230703e4355d25274d21b84f2d060907416 Mon Sep 17 00:00:00 2001
From: liusuyi <13324259@qq.com>
Date: 星期五, 14 七月 2023 21:49:39 +0800
Subject: [PATCH] 提交拉流取流查询接口
---
ard-work/src/main/java/com/ruoyi/media/domain/Items.java | 1
ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java | 16 ++++++++
ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java | 4 +-
ard-work/src/main/java/com/ruoyi/media/domain/RtspSession.java | 23 +++++++++++
ard-work/src/main/java/com/ruoyi/media/domain/Readers.java | 16 ++++++++
ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java | 4 ++
ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java | 45 ++++++++++++++++++++++
7 files changed, 107 insertions(+), 2 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java b/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java
index 910cd71..72e1e2e 100644
--- a/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java
+++ b/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java
@@ -57,4 +57,20 @@
public AjaxResult getRtspConns() {
return AjaxResult.success(mediaService.rtspconns());
}
+ @GetMapping("/getRtspSessionById")
+ @ApiOperation("鎸塈D鏌ヨ浼氳瘽")
+ public AjaxResult getRtspSessionById(String sessionId) {
+ return AjaxResult.success(mediaService.getRtspSessionById(sessionId));
+ }
+
+ @GetMapping("/getPushStreams")
+ @ApiOperation("鑾峰彇鎺ㄦ祦淇℃伅")
+ public AjaxResult getPushStreams() {
+ return AjaxResult.success(mediaService.getPushStreams());
+ }
+ @GetMapping("/getPullStreams")
+ @ApiOperation("鑾峰彇鎷夋祦淇℃伅")
+ public AjaxResult getPullStreams() {
+ return AjaxResult.success(mediaService.getPullStreams());
+ }
}
diff --git a/ard-work/src/main/java/com/ruoyi/media/domain/Items.java b/ard-work/src/main/java/com/ruoyi/media/domain/Items.java
index 96b5c2e..522d282 100644
--- a/ard-work/src/main/java/com/ruoyi/media/domain/Items.java
+++ b/ard-work/src/main/java/com/ruoyi/media/domain/Items.java
@@ -21,6 +21,7 @@
private String confName;
private Conf conf;
private Source source;
+ private List<Readers> readers;
private boolean sourceReady;
private List<String> tracks;
diff --git a/ard-work/src/main/java/com/ruoyi/media/domain/Readers.java b/ard-work/src/main/java/com/ruoyi/media/domain/Readers.java
new file mode 100644
index 0000000..58a4346
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/media/domain/Readers.java
@@ -0,0 +1,16 @@
+package com.ruoyi.media.domain;
+
+import lombok.Data;
+
+/**
+ * @ClassName Readers
+ * @Description:
+ * @Author 鍒樿嫃涔�
+ * @Date 2023/7/14 21:04
+ * @Version 1.0
+ */
+@Data
+public class Readers {
+ private String type;
+ private String id;
+}
diff --git a/ard-work/src/main/java/com/ruoyi/media/domain/RtspSession.java b/ard-work/src/main/java/com/ruoyi/media/domain/RtspSession.java
new file mode 100644
index 0000000..26aebbd
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/media/domain/RtspSession.java
@@ -0,0 +1,23 @@
+package com.ruoyi.media.domain;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName RtspSession
+ * @Description:
+ * @Author 鍒樿嫃涔�
+ * @Date 2023/7/14 21:19
+ * @Version 1.0
+ */
+@Data
+public class RtspSession {
+ private String cameraId;
+ private String id;
+ private Date created;
+ private String remoteAddr;
+ private String state;
+ private long bytesReceived;
+ private long bytesSent;
+}
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java b/ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java
index 37ac942..214c6b0 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java
@@ -1,5 +1,6 @@
package com.ruoyi.media.service;
import com.ruoyi.media.domain.Items;
+import com.ruoyi.media.domain.RtspSession;
import java.util.List;
@@ -10,4 +11,7 @@
public List<Items>paths();
public List<Items> rtspconns();
public List<Items> rtspsessions();
+ RtspSession getRtspSessionById(String sessionId);
+ List<RtspSession>getPushStreams();
+ List<RtspSession>getPullStreams();
}
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
index 73a8650..00e5413 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
@@ -8,6 +8,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -77,4 +78,48 @@
JsonsRoot jsonsRoot = JSONObject.parseObject(list, JsonsRoot.class);
return jsonsRoot.getItems();
}
+
+ @Override
+ public RtspSession getRtspSessionById(String sessionId) {
+ String apiUrl="http://"+mediamtxHost+":9997/v2";
+ String list = mediaClient.getRtspsessionById(apiUrl,sessionId);
+ RtspSession rtspSession = JSONObject.parseObject(list, RtspSession.class);
+ return rtspSession;
+ }
+
+ @Override
+ public List<RtspSession> getPushStreams() {
+ List<RtspSession> rtspSessions=new ArrayList<>();
+ String apiUrl="http://"+mediamtxHost+":9997/v2";
+ String list = mediaClient.paths(apiUrl);
+ JsonsRoot jsonsRoot = JSONObject.parseObject(list, JsonsRoot.class);
+ List<Items> items = jsonsRoot.getItems();
+ for(Items item:items)
+ {
+ Source source = item.getSource();
+ RtspSession rtspSession = getRtspSessionById(source.getId());
+ rtspSession.setCameraId(item.getName());
+ rtspSessions.add(rtspSession);
+ }
+ return rtspSessions;
+ }
+
+ @Override
+ public List<RtspSession> getPullStreams() {
+ List<RtspSession> rtspSessions=new ArrayList<>();
+ String apiUrl="http://"+mediamtxHost+":9997/v2";
+ String list = mediaClient.paths(apiUrl);
+ JsonsRoot jsonsRoot = JSONObject.parseObject(list, JsonsRoot.class);
+ List<Items> items = jsonsRoot.getItems();
+ for(Items item:items)
+ {
+ List<Readers> readers = item.getReaders();
+ for(Readers reader:readers) {
+ RtspSession rtspSession = getRtspSessionById(reader.getId());
+ rtspSession.setCameraId(item.getName());
+ rtspSessions.add(rtspSession);
+ }
+ }
+ return rtspSessions;
+ }
}
diff --git a/ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java b/ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java
index d0a9725..7cba8ac 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java
@@ -47,6 +47,6 @@
/**
* 鎸塱d鏌ヨrtsp浼氳瘽
*/
- @Get("{apiUrl}/rtspsessions/get/{id}")
- String rtspsessionsById(@Var("apiUrl") String apiUrl, @Var("id") String id);
+ @Get("{apiUrl}/rtspsessions/get/{sessionId}")
+ String getRtspsessionById(@Var("apiUrl") String apiUrl, @Var("sessionId") String sessionId);
}
--
Gitblit v1.9.3