1
aijinhui
2023-10-08 f6d9ad89c20eb9c9f4e27bd65c13ed6b66c56900
lib/mediamtx/mediamtx.yml
@@ -1,6 +1,6 @@
###############################################
# General parameters
# General settings
# Sets the verbosity of the program; available values are "error", "warn", "info", "debug".
logLevel: info
@@ -13,10 +13,10 @@
readTimeout: 10s
# Timeout of write operations.
writeTimeout: 10s
# Number of read buffers.
# A higher value allows a wider throughput, a lower value allows to save RAM.
readBufferCount: 512
# Maximum size of payload of outgoing UDP packets.
# Size of the queue of outgoing packets.
# A higher value allows to increase throughput, a lower value allows to save RAM.
writeQueueSize: 512
# Maximum size of outgoing UDP packets.
# This can be decreased to avoid fragmentation on networks with a low UDP MTU.
udpMaxPayloadSize: 1472
@@ -45,12 +45,12 @@
# Enable Prometheus-compatible metrics.
metrics: no
# Address of the metrics listener.
metricsAddress: 192.168.1.227:9998
metricsAddress: 127.0.0.1:9998
# Enable pprof-compatible endpoint to monitor performances.
pprof: no
# Address of the pprof listener.
pprofAddress: 192.168.1.227:9999
pprofAddress: 127.0.0.1:9999
# Command to run when a client connects to the server.
# Prepend ./ to run an executable in the current folder (example: "./ffmpeg")
@@ -62,10 +62,10 @@
runOnConnectRestart: no
###############################################
# RTSP parameters
# RTSP settings
# Disable support for the RTSP protocol.
rtspDisable: no
# Allow publishing and reading streams with 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.
@@ -77,19 +77,19 @@
# Available values are "no", "strict", "optional".
encryption: "no"
# Address of the TCP/RTSP listener. This is needed only when encryption is "no" or "optional".
rtspAddress: :8554
rtspAddress: :7554
# Address of the TCP/TLS/RTSPS listener. This is needed only when encryption is "strict" or "optional".
rtspsAddress: :8322
rtspsAddress: :7322
# Address of the UDP/RTP listener. This is needed only when "udp" is in protocols.
rtpAddress: :8000
rtpAddress: :7000
# Address of the UDP/RTCP listener. This is needed only when "udp" is in protocols.
rtcpAddress: :8001
rtcpAddress: :7001
# IP range of all UDP-multicast listeners. This is needed only when "multicast" is in protocols.
multicastIPRange: 224.1.0.0/16
# Port of all UDP-multicast/RTP listeners. This is needed only when "multicast" is in protocols.
multicastRTPPort: 8002
multicastRTPPort: 7002
# Port of all UDP-multicast/RTCP listeners. This is needed only when "multicast" is in protocols.
multicastRTCPPort: 8003
multicastRTCPPort: 7003
# Path to the server key. This is needed only when encryption is "strict" or "optional".
# This can be generated with:
# openssl genrsa -out server.key 2048
@@ -102,10 +102,10 @@
authMethods: [basic]
###############################################
# RTMP parameters
# RTMP settings
# Disable support for the RTMP protocol.
rtmpDisable: no
# Allow publishing and reading streams with 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).
@@ -122,10 +122,10 @@
rtmpServerCert: server.crt
###############################################
# HLS parameters
# HLS settings
# Disable support for the HLS protocol.
hlsDisable: no
# Allow reading streams with the HLS protocol.
hls: no
# Address of the HLS listener.
hlsAddress: :8888
# Enable TLS/HTTPS on the HLS server.
@@ -178,10 +178,10 @@
hlsDirectory: ''
###############################################
# WebRTC parameters
# WebRTC settings
# Disable support for the WebRTC protocol.
webrtcDisable: no
# Allow publishing and reading streams with the WebRTC protocol.
webrtc: yes
# Address of the WebRTC listener.
webrtcAddress: :8889
# Enable TLS/HTTPS on the WebRTC server.
@@ -214,45 +214,55 @@
  password: ''
# List of public IP addresses that are to be used as a host.
# This is used typically for servers that are behind 1:1 D-NAT.
webrtcICEHostNAT1To1IPs: []
webrtcICEHostNAT1To1IPs: [192.168.1.227]
# Address of a ICE UDP listener in format host:port.
# If filled, ICE traffic will pass through a single UDP port,
# allowing the deployment of the server inside a container or behind a NAT.
webrtcICEUDPMuxAddress:
webrtcICEUDPMuxAddress: 192.168.1.227:8189
# Address of a ICE TCP listener in format host:port.
# If filled, ICE traffic will pass through a single TCP port,
# allowing the deployment of the server inside a container or behind a NAT.
# Setting this parameter forces usage of the TCP protocol, which is not
# Using this setting forces usage of the TCP protocol, which is not
# optimal for WebRTC.
webrtcICETCPMuxAddress:
webrtcICETCPMuxAddress: 192.168.1.227:8189
###############################################
# Path parameters
# SRT settings
# Allow publishing and reading streams with the SRT protocol.
srt: yes
# Address of the SRT listener.
srtAddress: :8890
###############################################
# Path settings
# 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:
    ###############################################
    # General path settings
    # Source of the stream. This can be:
    # * publisher -> the stream is published by a RTSP or RTMP client
    # * publisher -> the stream is provided 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
    # * http://existing-url/stream.m3u8 -> the stream is pulled from another HLS server / camera
    # * https://existing-url/stream.m3u8 -> the stream is pulled from another HLS server / camera with HTTPS
    # * 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 / camera
    # * whep://existing-url -> the stream is pulled from another WebRTC server / camera
    # * wheps://existing-url -> the stream is pulled from another WebRTC server / camera with HTTPS
    # * redirect -> the stream is provided by another path or server
    # * rpiCamera -> the stream is provided by a Raspberry Pi Camera
    source: publisher
    ###############################################
    # General path parameters
    # If the source is a URL, and the source certificate is self-signed
    # or invalid, you can provide the fingerprint of the certificate in order to
    # validate it anyway. It can be obtained by running:
@@ -268,9 +278,11 @@
    # 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
    # Authentication path settings
    # Username required to publish.
    # SHA256-hashed values can be inserted with the "sha256:" prefix.
@@ -291,16 +303,16 @@
    readIPs: []
    ###############################################
    # Publisher path parameters (when source is "publisher")
    # Publisher path settings (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:
    ###############################################
    # RTSP path parameters (when source is a RTSP or a RTSPS URL)
    # RTSP path settings (when source is a RTSP or a RTSPS URL)
    # protocol used to pull the stream. available values are "automatic", "udp", "multicast", "tcp".
    sourceProtocol: automatic
@@ -320,13 +332,13 @@
    rtspRangeStart:
    ###############################################
    # Redirect path parameters (when source is "redirect")
    # Redirect path settings (when source is "redirect")
    # RTSP URL which clients will be redirected to.
    sourceRedirect:
    ###############################################
    # Raspberry Pi Camera path parameters (when source is "rpiCamera")
    # Raspberry Pi Camera path settings (when source is "rpiCamera")
    # ID of the camera
    rpiCameraCamID: 0
@@ -366,6 +378,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]
@@ -406,7 +420,7 @@
    rpiCameraTextOverlay: '%Y-%m-%d %H:%M:%S - MediaMTX'
    ###############################################
    # external commands path parameters
    # External commands path settings
    # Command to run when this path is initialized.
    # This can be used to publish a stream and keep it always opened.