ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/media/domain/Items.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/media/domain/Readers.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/media/domain/RtspSession.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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("æIDæ¥è¯¢ä¼è¯") 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()); } } 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; 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; } 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; } 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(); } 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; } } ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java
@@ -47,6 +47,6 @@ /** * æidæ¥è¯¢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); }