43 lines
1.8 KiB
Go

package mediaserver
// Config represents the MediaMTX configuration file.
type Config struct {
LogLevel string `yaml:"logLevel,omitempty"`
LogDestinations []string `yaml:"logDestinations,omitempty"`
ReadTimeout string `yaml:"readTimeout,omitempty"`
WriteTimeout string `yaml:"writeTimeout,omitempty"`
WriteQueueSize int `yaml:"writeQueueSize,omitempty"`
UDPMaxPayloadSize int `yaml:"udpMaxPayloadSize,omitempty"`
AuthMethod string `yaml:"authMethod,omitempty"`
AuthInternalUsers []User `yaml:"authInternalUsers,omitempty"`
Metrics bool `yaml:"metrics,omitempty"`
MetricsAddress string `yaml:"metricsAddress,omitempty"`
API bool `yaml:"api,omitempty"`
APIAddr bool `yaml:"apiAddress,omitempty"`
RTMP bool `yaml:"rtmp,omitempty"`
RTMPAddress string `yaml:"rtmpAddress,omitempty"`
HLS bool `yaml:"hls"`
RTSP bool `yaml:"rtsp"`
WebRTC bool `yaml:"webrtc"`
SRT bool `yaml:"srt"`
Paths map[string]Path `yaml:"paths,omitempty"`
}
// Path represents a path configuration in MediaMTX.
type Path struct {
Source string `yaml:"source,omitempty"`
}
// UserPermission represents a user permission in MediaMTX.
type UserPermission struct {
Action string `yaml:"action,omitempty"`
}
// User represents a user configuration in MediaMTX.
type User struct {
User string `yaml:"user,omitempty"`
Pass string `yaml:"pass,omitempty"`
IPs []string `yaml:"ips,omitempty"`
Permissions []UserPermission `yaml:"permissions,omitempty"`
}