‘liusuyi’
2023-08-29 dab37ef8c41decd4a26468ebd9fe77093051b996
更新流媒体mediaMTX版本V1.0.0
已修改5个文件
62 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/templates/mediaMTX.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lib/mediamtx/mediamtx.exe 补丁 | 查看 | 原始文档 | blame | 历史
lib/mediamtx/mediamtx.yml 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/META-INF/spring-configuration-metadata.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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解码   -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\"]+";
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/");
lib/mediamtx/mediamtx.exe
Binary files differ
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]
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."