| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708 |
- # config.yml/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro).
- # This copyright was auto-generated on Tue Feb 18 18:41:31 UTC 2025
- ###############################################
- # Global settings
- # Settings in this section are applied anywhere.
- ###############################################
- # Global settings -> General
- # Verbosity of the program; available values are "error", "warn", "info", "debug".
- logLevel: info
- # Destinations of log messages; available values are "stdout", "file" and "syslog".
- logDestinations: [stdout]
- # If "file" is in logDestinations, this is the file which will receive the logs.
- logFile: mediamtx.log
- # Timeout of read operations.
- readTimeout: 10s
- # Timeout of write operations.
- writeTimeout: 10s
- # 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
- # Command to run when a client connects to the server.
- # This is terminated with SIGINT when a client disconnects from the server.
- # The following environment variables are available:
- # * RTSP_PORT: RTSP server port
- # * MTX_CONN_TYPE: connection type
- # * MTX_CONN_ID: connection ID
- runOnConnect:
- # Restart the command if it exits.
- runOnConnectRestart: no
- # Command to run when a client disconnects from the server.
- # Environment variables are the same of runOnConnect.
- runOnDisconnect:
- ###############################################
- # Global settings -> Authentication
- # Authentication method. Available values are:
- # * internal: users are stored in the configuration file
- # * http: an external HTTP URL is contacted to perform authentication
- # * jwt: an external identity server provides authentication through JWTs
- authMethod: internal
- # Internal authentication.
- # list of users.
- authInternalUsers:
- # Default unprivileged user.
- # Username. 'any' means any user, including anonymous ones.
- - user: any
- # Password. Not used in case of 'any' user.
- pass:
- # IPs or networks allowed to use this user. An empty list means any IP.
- ips: []
- # List of permissions.
- permissions:
- # Available actions are: publish, read, playback, api, metrics, pprof.
- - action: publish
- # Paths can be set to further restrict access to a specific path.
- # An empty path means any path.
- # Regular expressions can be used by using a tilde as prefix.
- path:
- - action: read
- path:
- - action: playback
- path:
- # Default administrator.
- # This allows to use API, metrics and PPROF without authentication,
- # if the IP is localhost.
- - user: any
- pass:
- ips: ['127.0.0.1', '::1']
- permissions:
- - action: api
- - action: metrics
- - action: pprof
- # HTTP-based authentication.
- # URL called to perform authentication. Every time a user wants
- # to authenticate, the server calls this URL with the POST method
- # and a body containing:
- # {
- # "user": "user",
- # "password": "password",
- # "ip": "ip",
- # "action": "publish|read|playback|api|metrics|pprof",
- # "path": "path",
- # "protocol": "rtsp|rtmp|hls|webrtc|srt",
- # "id": "id",
- # "query": "query"
- # }
- # If the response code is 20x, authentication is accepted, otherwise
- # it is discarded.
- authHTTPAddress:
- # Actions to exclude from HTTP-based authentication.
- # Format is the same as the one of user permissions.
- authHTTPExclude:
- - action: api
- - action: metrics
- - action: pprof
- # JWT-based authentication.
- # Users have to login through an external identity server and obtain a JWT.
- # This JWT must contain the claim "mediamtx_permissions" with permissions,
- # for instance:
- # {
- # ...
- # "mediamtx_permissions": [
- # {
- # "action": "publish",
- # "path": "somepath"
- # }
- # ]
- # }
- # Users are expected to pass the JWT in the Authorization header or as a query parameter.
- # This is the JWKS URL that will be used to pull (once) the public key that allows
- # to validate JWTs.
- authJWTJWKS:
- # name of the claim that contains permissions.
- authJWTClaimKey: mediamtx_permissions
- ###############################################
- # Global settings -> Control API
- # Enable controlling the server through the Control API.
- api: yes
- # Address of the Control API listener.
- apiAddress: :9997
- # Enable TLS/HTTPS on the Control API server.
- apiEncryption: no
- # Path to the server key. This is needed only when encryption is yes.
- # This can be generated with:
- # openssl genrsa -out server.key 2048
- # openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
- apiServerKey: server.key
- # Path to the server certificate.
- apiServerCert: server.crt
- # Value of the Access-Control-Allow-Origin header provided in every HTTP response.
- apiAllowOrigin: '*'
- # List of IPs or CIDRs of proxies placed before the HTTP server.
- # If the server receives a request from one of these entries, IP in logs
- # will be taken from the X-Forwarded-For header.
- apiTrustedProxies: []
- ###############################################
- # Global settings -> Metrics
- # Enable Prometheus-compatible metrics.
- metrics: no
- # Address of the metrics HTTP listener.
- metricsAddress: :9998
- # Enable TLS/HTTPS on the Metrics server.
- metricsEncryption: no
- # Path to the server key. This is needed only when encryption is yes.
- # This can be generated with:
- # openssl genrsa -out server.key 2048
- # openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
- metricsServerKey: server.key
- # Path to the server certificate.
- metricsServerCert: server.crt
- # Value of the Access-Control-Allow-Origin header provided in every HTTP response.
- metricsAllowOrigin: '*'
- # List of IPs or CIDRs of proxies placed before the HTTP server.
- # If the server receives a request from one of these entries, IP in logs
- # will be taken from the X-Forwarded-For header.
- metricsTrustedProxies: []
- ###############################################
- # Global settings -> PPROF
- # Enable pprof-compatible endpoint to monitor performances.
- pprof: no
- # Address of the pprof listener.
- pprofAddress: :9999
- # Enable TLS/HTTPS on the pprof server.
- pprofEncryption: no
- # Path to the server key. This is needed only when encryption is yes.
- # This can be generated with:
- # openssl genrsa -out server.key 2048
- # openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
- pprofServerKey: server.key
- # Path to the server certificate.
- pprofServerCert: server.crt
- # Value of the Access-Control-Allow-Origin header provided in every HTTP response.
- pprofAllowOrigin: '*'
- # List of IPs or CIDRs of proxies placed before the HTTP server.
- # If the server receives a request from one of these entries, IP in logs
- # will be taken from the X-Forwarded-For header.
- pprofTrustedProxies: []
- ###############################################
- # Global settings -> Playback server
- # Enable downloading recordings from the playback server.
- playback: no
- # Address of the playback server listener.
- playbackAddress: :9996
- # Enable TLS/HTTPS on the playback server.
- playbackEncryption: no
- # Path to the server key. This is needed only when encryption is yes.
- # This can be generated with:
- # openssl genrsa -out server.key 2048
- # openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
- playbackServerKey: server.key
- # Path to the server certificate.
- playbackServerCert: server.crt
- # Value of the Access-Control-Allow-Origin header provided in every HTTP response.
- playbackAllowOrigin: '*'
- # List of IPs or CIDRs of proxies placed before the HTTP server.
- # If the server receives a request from one of these entries, IP in logs
- # will be taken from the X-Forwarded-For header.
- playbackTrustedProxies: []
- ###############################################
- # Global settings -> RTSP server
- # Enable 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.
- # UDP-multicast allows to save bandwidth when clients are all in the same LAN.
- # TCP is the most versatile, and does support encryption.
- # The handshake is always performed with TCP.
- protocols: [udp, multicast, tcp]
- # Encrypt handshakes and TCP streams with TLS (RTSPS).
- # 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
- # Address of the TCP/TLS/RTSPS listener. This is needed only when encryption is "strict" or "optional".
- rtspsAddress: :8322
- # Address of the UDP/RTP listener. This is needed only when "udp" is in protocols.
- rtpAddress: :8000
- # Address of the UDP/RTCP listener. This is needed only when "udp" is in protocols.
- rtcpAddress: :8001
- # 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
- # Port of all UDP-multicast/RTCP listeners. This is needed only when "multicast" is in protocols.
- multicastRTCPPort: 8003
- # 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
- # openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
- serverKey: server.key
- # Path to the server certificate. This is needed only when encryption is "strict" or "optional".
- serverCert: server.crt
- # Authentication methods. Available are "basic" and "digest".
- # "digest" doesn't provide any additional security and is available for compatibility only.
- rtspAuthMethods: [basic]
- ###############################################
- # Global settings -> RTMP server
- # Enable 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).
- # Available values are "no", "strict", "optional".
- rtmpEncryption: 'no'
- # Address of the RTMPS listener. This is needed only when encryption is "strict" or "optional".
- rtmpsAddress: :1936
- # 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
- # openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
- rtmpServerKey: server.key
- # Path to the server certificate. This is needed only when encryption is "strict" or "optional".
- rtmpServerCert: server.crt
- ###############################################
- # Global settings -> HLS server
- # Enable reading streams with the HLS protocol.
- hls: yes
- # Address of the HLS listener.
- hlsAddress: :8888
- # Enable TLS/HTTPS on the HLS server.
- # This is required for Low-Latency HLS.
- hlsEncryption: no
- # Path to the server key. This is needed only when encryption is yes.
- # This can be generated with:
- # openssl genrsa -out server.key 2048
- # openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
- hlsServerKey: server.key
- # Path to the server certificate.
- hlsServerCert: server.crt
- # Value of the Access-Control-Allow-Origin header provided in every HTTP response.
- # This allows to play the HLS stream from an external website.
- hlsAllowOrigin: '*'
- # List of IPs or CIDRs of proxies placed before the HLS server.
- # If the server receives a request from one of these entries, IP in logs
- # will be taken from the X-Forwarded-For header.
- hlsTrustedProxies: []
- # By default, HLS is generated only when requested by a user.
- # This option allows to generate it always, avoiding the delay between request and generation.
- hlsAlwaysRemux: no
- # Variant of the HLS protocol to use. Available options are:
- # * mpegts - uses MPEG-TS segments, for maximum compatibility.
- # * fmp4 - uses fragmented MP4 segments, more efficient.
- # * lowLatency - uses Low-Latency HLS.
- hlsVariant: lowLatency
- # Number of HLS segments to keep on the server.
- # Segments allow to seek through the stream.
- # Their number doesn't influence latency.
- hlsSegmentCount: 7
- # Minimum duration of each segment.
- # A player usually puts 3 segments in a buffer before reproducing the stream.
- # The final segment duration is also influenced by the interval between IDR frames,
- # since the server changes the duration in order to include at least one IDR frame
- # in each segment.
- hlsSegmentDuration: 1s
- # Minimum duration of each part.
- # A player usually puts 3 parts in a buffer before reproducing the stream.
- # Parts are used in Low-Latency HLS in place of segments.
- # Part duration is influenced by the distance between video/audio samples
- # and is adjusted in order to produce segments with a similar duration.
- hlsPartDuration: 200ms
- # Maximum size of each segment.
- # This prevents RAM exhaustion.
- hlsSegmentMaxSize: 50M
- # Directory in which to save segments, instead of keeping them in the RAM.
- # This decreases performance, since reading from disk is less performant than
- # reading from RAM, but allows to save RAM.
- hlsDirectory: ''
- # The muxer will be closed when there are no
- # reader requests and this amount of time has passed.
- hlsMuxerCloseAfter: 60s
- ###############################################
- # Global settings -> WebRTC server
- # Enable publishing and reading streams with the WebRTC protocol.
- webrtc: yes
- # Address of the WebRTC HTTP listener.
- webrtcAddress: :8889
- # Enable TLS/HTTPS on the WebRTC server.
- webrtcEncryption: no
- # Path to the server key.
- # This can be generated with:
- # openssl genrsa -out server.key 2048
- # openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
- webrtcServerKey: server.key
- # Path to the server certificate.
- webrtcServerCert: server.crt
- # Value of the Access-Control-Allow-Origin header provided in every HTTP response.
- # This allows to play the WebRTC stream from an external website.
- webrtcAllowOrigin: '*'
- # List of IPs or CIDRs of proxies placed before the WebRTC server.
- # If the server receives a request from one of these entries, IP in logs
- # will be taken from the X-Forwarded-For header.
- webrtcTrustedProxies: []
- # Address of a local UDP listener that will receive connections.
- # Use a blank string to disable.
- webrtcLocalUDPAddress: :8189
- # Address of a local TCP listener that will receive connections.
- # This is disabled by default since TCP is less efficient than UDP and
- # introduces a progressive delay when network is congested.
- webrtcLocalTCPAddress: ''
- # WebRTC clients need to know the IP of the server.
- # Gather IPs from interfaces and send them to clients.
- webrtcIPsFromInterfaces: yes
- # List of interfaces whose IPs will be sent to clients.
- # An empty value means to use all available interfaces.
- webrtcIPsFromInterfacesList: []
- # List of additional hosts or IPs to send to clients.
- webrtcAdditionalHosts: []
- # ICE servers. Needed only when local listeners can't be reached by clients.
- # STUN servers allows to obtain and share the public IP of the server.
- # TURN/TURNS servers forces all traffic through them.
- webrtcICEServers2:
- []
- # - url: stun:stun.l.google.com:19302
- # if user is "AUTH_SECRET", then authentication is secret based.
- # the secret must be inserted into the password field.
- # username: ''
- # password: ''
- # clientOnly: false
- # Time to wait for the WebRTC handshake to complete.
- webrtcHandshakeTimeout: 10s
- # Maximum time to gather video tracks.
- webrtcTrackGatherTimeout: 2s
- ###############################################
- # Global settings -> SRT server
- # Enable publishing and reading streams with the SRT protocol.
- srt: yes
- # Address of the SRT listener.
- srtAddress: :8890
- ###############################################
- # Default path settings
- # Settings in "pathDefaults" are applied anywhere,
- # unless they are overridden in "paths".
- pathDefaults:
- ###############################################
- # Default path settings -> General
- # Source of the stream. This can be:
- # * 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 / 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
- # The following variables can be used in the source string:
- # * $MTX_QUERY: query parameters (passed by first reader)
- # * $G1, $G2, ...: regular expression groups, if path name is
- # a regular expression.
- source: publisher
- # 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:
- # openssl s_client -connect source_ip:source_port </dev/null 2>/dev/null | sed -n '/BEGIN/,/END/p' > server.crt
- # openssl x509 -in server.crt -noout -fingerprint -sha256 | cut -d "=" -f2 | tr -d ':'
- sourceFingerprint:
- # If the source is a URL, it will be pulled only when at least
- # one reader is connected, saving bandwidth.
- sourceOnDemand: no
- # If sourceOnDemand is "yes", readers will be put on hold until the source is
- # ready or until this amount of time has passed.
- sourceOnDemandStartTimeout: 10s
- # 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
- # SRT encryption passphrase require to read from this path
- srtReadPassphrase:
- # If the stream is not available, redirect readers to this path.
- # It can be can be a relative path (i.e. /otherstream) or an absolute RTSP URL.
- fallback:
- ###############################################
- # Default path settings -> Record
- # Record streams to disk.
- record: no
- # Path of recording segments.
- # Extension is added automatically.
- # Available variables are %path (path name), %Y %m %d %H %M %S %f %s (time in strftime format)
- recordPath: ./recordings/%path/%Y-%m-%d_%H-%M-%S-%f
- # Format of recorded segments.
- # Available formats are "fmp4" (fragmented MP4) and "mpegts" (MPEG-TS).
- recordFormat: fmp4
- # fMP4 segments are concatenation of small MP4 files (parts), each with this duration.
- # MPEG-TS segments are concatenation of 188-bytes packets, flushed to disk with this period.
- # When a system failure occurs, the last part gets lost.
- # Therefore, the part duration is equal to the RPO (recovery point objective).
- recordPartDuration: 1s
- # Minimum duration of each segment.
- recordSegmentDuration: 1h
- # Delete segments after this timespan.
- # Set to 0s to disable automatic deletion.
- recordDeleteAfter: 24h
- ###############################################
- # Default path settings -> Publisher source (when source is "publisher")
- # Allow another client to disconnect the current publisher and publish in its place.
- overridePublisher: yes
- # SRT encryption passphrase required to publish to this path
- srtPublishPassphrase:
- ###############################################
- # Default path settings -> RTSP source (when source is a RTSP or a RTSPS URL)
- # Transport protocol used to pull the stream. available values are "automatic", "udp", "multicast", "tcp".
- rtspTransport: automatic
- # Support sources that don't provide server ports or use random server ports. This is a security issue
- # and must be used only when interacting with sources that require it.
- rtspAnyPort: no
- # Range header to send to the source, in order to start streaming from the specified offset.
- # available values:
- # * clock: Absolute time
- # * npt: Normal Play Time
- # * smpte: SMPTE timestamps relative to the start of the recording
- rtspRangeType:
- # Available values:
- # * clock: UTC ISO 8601 combined date and time string, e.g. 20230812T120000Z
- # * npt: duration such as "300ms", "1.5m" or "2h45m", valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
- # * smpte: duration such as "300ms", "1.5m" or "2h45m", valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
- rtspRangeStart:
- ###############################################
- # Default path settings -> Redirect source (when source is "redirect")
- # RTSP URL which clients will be redirected to.
- sourceRedirect:
- ###############################################
- # Default path settings -> Raspberry Pi Camera source (when source is "rpiCamera")
- # ID of the camera
- rpiCameraCamID: 0
- # Width of frames
- rpiCameraWidth: 1920
- # Height of frames
- rpiCameraHeight: 1080
- # Flip horizontally
- rpiCameraHFlip: false
- # Flip vertically
- rpiCameraVFlip: false
- # Brightness [-1, 1]
- rpiCameraBrightness: 0
- # Contrast [0, 16]
- rpiCameraContrast: 1
- # Saturation [0, 16]
- rpiCameraSaturation: 1
- # Sharpness [0, 16]
- rpiCameraSharpness: 1
- # Exposure mode.
- # values: normal, short, long, custom
- rpiCameraExposure: normal
- # Auto-white-balance mode.
- # values: auto, incandescent, tungsten, fluorescent, indoor, daylight, cloudy, custom
- rpiCameraAWB: auto
- # Auto-white-balance fixed gains. This can be used in place of rpiCameraAWB.
- # format: [red,blue]
- rpiCameraAWBGains: [0, 0]
- # Denoise operating mode.
- # values: off, cdn_off, cdn_fast, cdn_hq
- rpiCameraDenoise: 'off'
- # Fixed shutter speed, in microseconds.
- rpiCameraShutter: 0
- # Metering mode of the AEC/AGC algorithm.
- # values: centre, spot, matrix, custom
- rpiCameraMetering: centre
- # Fixed gain
- rpiCameraGain: 0
- # EV compensation of the image [-10, 10]
- 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]
- # bit-depth and packing are optional.
- rpiCameraMode:
- # frames per second
- rpiCameraFPS: 30
- # Autofocus mode
- # values: auto, manual, continuous
- rpiCameraAfMode: continuous
- # Autofocus range
- # values: normal, macro, full
- rpiCameraAfRange: normal
- # Autofocus speed
- # values: normal, fast
- rpiCameraAfSpeed: normal
- # Lens position (for manual autofocus only), will be set to focus to a specific distance
- # calculated by the following formula: d = 1 / value
- # Examples: 0 moves the lens to infinity.
- # 0.5 moves the lens to focus on objects 2m away.
- # 2 moves the lens to focus on objects 50cm away.
- rpiCameraLensPosition: 0.0
- # Specifies the autofocus window, in the form x,y,width,height where the coordinates
- # are given as a proportion of the entire image.
- rpiCameraAfWindow:
- # Manual flicker correction period, in microseconds.
- rpiCameraFlickerPeriod: 0
- # Enables printing text on each frame.
- rpiCameraTextOverlayEnable: false
- # Text that is printed on each frame.
- # format is the one of the strftime() function.
- rpiCameraTextOverlay: '%Y-%m-%d %H:%M:%S - MediaMTX'
- # Codec. Available values: auto, hardwareH264, softwareH264
- rpiCameraCodec: auto
- # Period between IDR frames
- rpiCameraIDRPeriod: 60
- # Bitrate
- rpiCameraBitrate: 5000000
- # H264 profile
- rpiCameraProfile: main
- # H264 level
- rpiCameraLevel: '4.1'
- ###############################################
- # Default path settings -> Hooks
- # Command to run when this path is initialized.
- # This can be used to publish a stream when the server is launched.
- # This is terminated with SIGINT when the program closes.
- # The following environment variables are available:
- # * MTX_PATH: path name
- # * RTSP_PORT: RTSP server port
- # * G1, G2, ...: regular expression groups, if path name is
- # a regular expression.
- runOnInit:
- # Restart the command if it exits.
- runOnInitRestart: no
- # Command to run when this path is requested by a reader
- # and no one is publishing to this path yet.
- # This can be used to publish a stream on demand.
- # This is terminated with SIGINT when there are no readers anymore.
- # The following environment variables are available:
- # * MTX_PATH: path name
- # * MTX_QUERY: query parameters (passed by first reader)
- # * RTSP_PORT: RTSP server port
- # * G1, G2, ...: regular expression groups, if path name is
- # a regular expression.
- runOnDemand:
- # Restart the command if it exits.
- runOnDemandRestart: no
- # Readers will be put on hold until the runOnDemand command starts publishing
- # or until this amount of time has passed.
- runOnDemandStartTimeout: 10s
- # The command will be closed when there are no
- # readers connected and this amount of time has passed.
- runOnDemandCloseAfter: 10s
- # Command to run when there are no readers anymore.
- # Environment variables are the same of runOnDemand.
- runOnUnDemand:
- # Command to run when the stream is ready to be read, whenever it is
- # published by a client or pulled from a server / camera.
- # This is terminated with SIGINT when the stream is not ready anymore.
- # The following environment variables are available:
- # * MTX_PATH: path name
- # * MTX_QUERY: query parameters (passed by publisher)
- # * RTSP_PORT: RTSP server port
- # * G1, G2, ...: regular expression groups, if path name is
- # a regular expression.
- # * MTX_SOURCE_TYPE: source type
- # * MTX_SOURCE_ID: source ID
- runOnReady:
- # Restart the command if it exits.
- runOnReadyRestart: no
- # Command to run when the stream is not available anymore.
- # Environment variables are the same of runOnReady.
- runOnNotReady:
- # Command to run when a client starts reading.
- # This is terminated with SIGINT when a client stops reading.
- # The following environment variables are available:
- # * MTX_PATH: path name
- # * MTX_QUERY: query parameters (passed by reader)
- # * RTSP_PORT: RTSP server port
- # * G1, G2, ...: regular expression groups, if path name is
- # a regular expression.
- # * MTX_READER_TYPE: reader type
- # * MTX_READER_ID: reader ID
- runOnRead:
- # Restart the command if it exits.
- runOnReadRestart: no
- # Command to run when a client stops reading.
- # Environment variables are the same of runOnRead.
- runOnUnread:
- # Command to run when a recording segment is created.
- # The following environment variables are available:
- # * MTX_PATH: path name
- # * RTSP_PORT: RTSP server port
- # * G1, G2, ...: regular expression groups, if path name is
- # a regular expression.
- # * MTX_SEGMENT_PATH: segment file path
- runOnRecordSegmentCreate:
- # Command to run when a recording segment is complete.
- # The following environment variables are available:
- # * MTX_PATH: path name
- # * RTSP_PORT: RTSP server port
- # * G1, G2, ...: regular expression groups, if path name is
- # a regular expression.
- # * MTX_SEGMENT_PATH: segment file path
- # * MTX_SEGMENT_DURATION: segment duration
- runOnRecordSegmentComplete:
- ###############################################
- # Path settings
- # Settings in "paths" are applied to specific paths, and the map key
- # is the name of the path.
- # Any setting in "pathDefaults" can be overridden here.
- # 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".
- paths:
- # example:
- # my_camera:
- # source: rtsp://my_camera
- # Settings under path "all_others" are applied to all paths that
- # do not match another entry.
- all_others:
|