Administrator
2023-08-16 aac3b819f2228192d918c419488a1dbc315443cc
Merge remote-tracking branch 'origin/master'
已修改1个文件
48 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
@@ -22,6 +22,8 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -106,7 +108,7 @@
        } else {
            mediaInfo.setSource(rtspPath);
        }
        mediaInfo.setSourceprotocol("udp");
        mediaClient.addPath(name, mediaInfo);
        return rtspUrl;
    }
@@ -305,12 +307,13 @@
                info.setRtspSource(item.getConf().getSource());
            }
            //传输协议
            regex = "-rtsp_transport\\s+(\\w+)";
            pattern = Pattern.compile(regex);
            matcher = pattern.matcher(runoninit);
            if (matcher.find()) {
                info.setProtocol(matcher.group(1));
            }
//            regex = "-rtsp_transport\\s+(\\w+)";
//            pattern = Pattern.compile(regex);
//            matcher = pattern.matcher(runoninit);
//            if (matcher.find()) {
//                info.setProtocol(matcher.group(1));
//            }
            info.setProtocol(item.getConf().getSourceprotocol());
            //拉流数量
            List<Readers> readers = item.getReaders();
            info.setNum(readers.size());
@@ -328,15 +331,15 @@
        JsonsRoot jsonsRoot = JSONObject.parseObject(list, JsonsRoot.class);
        List<Items> items = jsonsRoot.getItems();
        for (Items item : items) {
            StreamInfo info = new StreamInfo();
            //ID
            String name = item.getName();
            info.setName(name);
            //RTSP播放地址
            String rtspUrl = "rtsp://" + mediamtxHost + ":8554/" + name;
            info.setRtspUrl(rtspUrl);
            List<Readers> readers = item.getReaders();
            for (Readers reader : readers) {
                StreamInfo info = new StreamInfo();
                //ID
                String name = item.getName();
                info.setName(name);
                //RTSP播放地址
                String rtspUrl = "rtsp://" + mediamtxHost + ":8554/" + name;
                info.setRtspUrl(rtspUrl);
                RtspSession rtspSession = getRtspSessionById(reader.getId());
                //会话ID
                info.setId(rtspSession.getId());
@@ -352,18 +355,21 @@
                info.setDownTraffic(formatSentSize);
                //传输协议
                String runoninit = item.getConf().getRunondemand();
                String regex = "-rtsp_transport\\s+(\\w+)";
                Pattern pattern = Pattern.compile(regex);
                Matcher matcher = pattern.matcher(runoninit);
                if (matcher.find()) {
                    info.setProtocol(matcher.group(1));
                }
//                String runoninit = item.getConf().getRunondemand();
//                String regex = "-rtsp_transport\\s+(\\w+)";
//                Pattern pattern = Pattern.compile(regex);
//                Matcher matcher = pattern.matcher(runoninit);
//                if (matcher.find()) {
//                    info.setProtocol(matcher.group(1));
//                }
                info.setProtocol(item.getConf().getSourceprotocol());
                //拉流服务器
                info.setRemoteAddr(rtspSession.getRemoteAddr());
                PullStreamInfoList.add(info);
            }
        }
        Comparator<StreamInfo> comparator = Comparator.comparing(streamInfo ->streamInfo.getBeginTime() ); // 使用Collections.sort方法进行排序 Collections.sort(personList, comparator);
        Collections.sort(PullStreamInfoList, comparator.reversed());
        return PullStreamInfoList;
    }