From dab37ef8c41decd4a26468ebd9fe77093051b996 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 29 八月 2023 17:12:29 +0800
Subject: [PATCH] 更新流媒体mediaMTX版本V1.0.0

---
 ard-work/src/main/resources/templates/mediaMTX.html                        |    2 
 lib/mediamtx/mediamtx.exe                                                  |    0 
 ruoyi-admin/src/main/resources/META-INF/spring-configuration-metadata.json |    5 ++
 lib/mediamtx/mediamtx.yml                                                  |   47 +++++++++++++++--------
 ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java      |    8 +++-
 5 files changed, 43 insertions(+), 19 deletions(-)

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 9b69946..c9bc8b8 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
@@ -69,6 +69,11 @@
 //            CmdUtils.commandStart(command);
             }
         }
+        List<StreamInfo> paths = paths();
+        for(StreamInfo path:paths)
+        {
+            mediaClient.removePath(path.getName());
+        }
         List<Vtdu> vtduList = vtduMapper.selectVtduList(new Vtdu());
         for (Vtdu v : vtduList) {
             addPath(v.getName(), v.getRtspUrl(), v.getCodeType(), v.getIsCode());
@@ -103,7 +108,6 @@
         //String cmd = rootPath + "/lib/mediamtx/" +"ffmpeg -rtsp_transport tcp -i " + rtspPath + " -vcodec libx264 -preset:v ultrafast -r 25 -threads 4  -b:v 2048k -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
         //GPU纭В鐮佺紪鐮� -hwaccel cuvid -c:v h264_cuvid  浣跨敤cuda瑙g爜   -c:v h264_nvenc 浣跨敤cuda缂栫爜
         //String cmd = rootPath  + "/lib/mediamtx/" + "ffmpeg -hwaccel cuvid -c:v h264_cuvid  -rtsp_transport udp  -i " + rtspPath + " -c:v h264_nvenc  -r 25 -threads 4  -b:v 2048k -bf 0 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
-
         if (isCode.equals("1")) {
             String cmd = rootPath + "/lib/mediamtx/" + "ffmpeg -rtsp_transport tcp -i " + rtspPath + " -vcodec libx264 -preset:v ultrafast -r 25 -threads 4  -b:v 2048k -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
             if (!softwareDecoding) {
@@ -178,7 +182,7 @@
                 info.setMode("1");
             } else {
                 runoninit = item.getConf().getRunoninit();
-                info.setMode("2");
+                info.setMode("0");
             }
             //RTSP婧愬湴鍧�
             String regex = "rtsp://[^\\s\"]+";
diff --git a/ard-work/src/main/resources/templates/mediaMTX.html b/ard-work/src/main/resources/templates/mediaMTX.html
index b3a39ee..90c51b4 100644
--- a/ard-work/src/main/resources/templates/mediaMTX.html
+++ b/ard-work/src/main/resources/templates/mediaMTX.html
@@ -45,7 +45,7 @@
     var chanMap = new Map();
     window.onload = function () {
 
-        chanMap.set("video1", "http://127.0.0.1:8889/164/");
+        chanMap.set("video1", "http://127.0.0.1:8889/245/");
         chanMap.set("video2", "http://127.0.0.1:8889/164/");
         chanMap.set("video3", "http://127.0.0.1:8889/164/");
         chanMap.set("video4", "http://127.0.0.1:8889/165/");
diff --git a/lib/mediamtx/mediamtx.exe b/lib/mediamtx/mediamtx.exe
index 3e36228..69dc5b3 100644
--- a/lib/mediamtx/mediamtx.exe
+++ b/lib/mediamtx/mediamtx.exe
Binary files differ
diff --git a/lib/mediamtx/mediamtx.yml b/lib/mediamtx/mediamtx.yml
index c26403a..50ec5fa 100644
--- a/lib/mediamtx/mediamtx.yml
+++ b/lib/mediamtx/mediamtx.yml
@@ -64,8 +64,8 @@
 ###############################################
 # RTSP parameters
 
-# Disable support for the RTSP protocol.
-rtspDisable: no
+# Enable support for the RTSP protocol.
+rtsp: yes
 # List of enabled RTSP transport protocols.
 # UDP is the most performant, but doesn't work when there's a NAT/firewall between
 # server and clients, and doesn't support encryption.
@@ -104,8 +104,8 @@
 ###############################################
 # RTMP parameters
 
-# Disable support for the RTMP protocol.
-rtmpDisable: no
+# Enable support for the RTMP protocol.
+rtmp: yes
 # Address of the RTMP listener. This is needed only when encryption is "no" or "optional".
 rtmpAddress: :1935
 # Encrypt connections with TLS (RTMPS).
@@ -124,8 +124,8 @@
 ###############################################
 # HLS parameters
 
-# Disable support for the HLS protocol.
-hlsDisable: yes
+# Enable support for the HLS protocol.
+hls: no
 # Address of the HLS listener.
 hlsAddress: :8888
 # Enable TLS/HTTPS on the HLS server.
@@ -180,8 +180,8 @@
 ###############################################
 # WebRTC parameters
 
-# Disable support for the WebRTC protocol.
-webrtcDisable: no
+# Enable support for the WebRTC protocol.
+webrtc: yes
 # Address of the WebRTC listener.
 webrtcAddress: :8889
 # Enable TLS/HTTPS on the WebRTC server.
@@ -227,25 +227,36 @@
 webrtcICETCPMuxAddress:
 
 ###############################################
+# SRT parameters
+
+# Enables support for the SRT protocol.
+srt: yes
+# Address of the SRT listener.
+srtAddress: :8890
+
+###############################################
 # Path parameters
 
 # These settings are path-dependent, and the map key is the name of the path.
-# It's possible to use regular expressions by using a tilde as prefix.
-# For example, "~^(test1|test2)$" will match both "test1" and "test2".
-# For example, "~^prefix" will match all paths that start with "prefix".
-# The settings under the path "all" are applied to all paths that do not match
+# It's possible to use regular expressions by using a tilde as prefix,
+# for example "~^(test1|test2)$" will match both "test1" and "test2",
+# for example "~^prefix" will match all paths that start with "prefix".
+# Settings under the path "all" are applied to all paths that do not match
 # another entry.
 paths:
   all:
     # Source of the stream. This can be:
-    # * publisher -> the stream is published by a RTSP or RTMP client
+    # * publisher -> the stream is published by a RTSP, RTMP, WebRTC or SRT client
     # * rtsp://existing-url -> the stream is pulled from another RTSP server / camera
     # * rtsps://existing-url -> the stream is pulled from another RTSP server / camera with RTSPS
     # * rtmp://existing-url -> the stream is pulled from another RTMP server / camera
     # * rtmps://existing-url -> the stream is pulled from another RTMP server / camera with RTMPS
     # * http://existing-url/stream.m3u8 -> the stream is pulled from another HLS server
     # * https://existing-url/stream.m3u8 -> the stream is pulled from another HLS server with HTTPS
-    # * udp://ip:port -> the stream is pulled from UDP, by listening on the specified IP and port
+    # * udp://ip:port -> the stream is pulled with UDP, by listening on the specified IP and port
+    # * srt://existing-url -> the stream is pulled from another SRT server
+    # * whep://existing-url -> the stream is pulled from another WebRTC server
+    # * wheps://existing-url -> the stream is pulled from another WebRTC server with HTTPS
     # * redirect -> the stream is provided by another path or server
     # * rpiCamera -> the stream is provided by a Raspberry Pi Camera
     source: publisher
@@ -268,6 +279,8 @@
     # If sourceOnDemand is "yes", the source will be closed when there are no
     # readers connected and this amount of time has passed.
     sourceOnDemandCloseAfter: 10s
+    # Maximum number of readers. Zero means no limit.
+    maxReaders: 0
 
     ###############################################
     # Authentication path parameters
@@ -293,8 +306,8 @@
     ###############################################
     # Publisher path parameters (when source is "publisher")
 
-    # do not allow another client to disconnect the current publisher and publish in its place.
-    disablePublisherOverride: no
+    # allow another client to disconnect the current publisher and publish in its place.
+    overridePublisher: yes
     # if no one is publishing, redirect readers to this path.
     # It can be can be a relative path  (i.e. /otherstream) or an absolute RTSP URL.
     fallback:
@@ -366,6 +379,8 @@
     rpiCameraEV: 0
     # Region of interest, in format x,y,width,height
     rpiCameraROI:
+    # whether to enable HDR on Raspberry Camera 3.
+    rpiCameraHDR: false
     # tuning file
     rpiCameraTuningFile:
     # sensor mode, in format [width]:[height]:[bit-depth]:[packing]
diff --git a/ruoyi-admin/src/main/resources/META-INF/spring-configuration-metadata.json b/ruoyi-admin/src/main/resources/META-INF/spring-configuration-metadata.json
index c074bd6..dc0f212 100644
--- a/ruoyi-admin/src/main/resources/META-INF/spring-configuration-metadata.json
+++ b/ruoyi-admin/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -46,6 +46,11 @@
       "description": "Description for mediamtx.host."
     },
     {
+      "name": "mediamtx.software_decoding",
+      "type": "java.lang.String",
+      "description": "Description for mediamtx.software_decoding."
+    },
+    {
       "name": "mqtt.host",
       "type": "java.lang.String",
       "description": "Description for mqtt.host."

--
Gitblit v1.9.3