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