Documentation ¶
Index ¶
- Constants
- type AudioConfig
- type AzureConfig
- type BaseConfig
- type CPUCostConfig
- type DebugConfig
- type EgressS3Upload
- type FileConfig
- type GCPConfig
- type ImageConfig
- type OutputConfig
- type PipelineConfig
- func (p *PipelineConfig) GetEncodedOutputs() []OutputConfig
- func (p *PipelineConfig) GetFileConfig() *FileConfig
- func (p *PipelineConfig) GetImageConfigs() []*ImageConfig
- func (p *PipelineConfig) GetSegmentConfig() *SegmentConfig
- func (p *PipelineConfig) GetStreamConfig() *StreamConfig
- func (p *PipelineConfig) GetWebsocketConfig() *StreamConfig
- func (p *PipelineConfig) Update(request *rpc.StartEgressRequest) error
- func (p *PipelineConfig) UpdateInfoFromSDK(identifier string, replacements map[string]string, w, h uint32) error
- type ProxyConfig
- type S3Config
- type SDKSourceParams
- type SegmentConfig
- type ServiceConfig
- type SessionLimits
- type SourceConfig
- type StorageConfig
- type Stream
- type StreamConfig
- func (o *StreamConfig) AddStream(rawUrl string, outputType types.OutputType) (*Stream, error)
- func (o StreamConfig) GetOutputType() types.OutputType
- func (o *StreamConfig) GetStream(rawUrl string) (*Stream, error)
- func (o *StreamConfig) ValidateUrl(rawUrl string, outputType types.OutputType) (parsed string, redacted string, streamID string, err error)
- type TrackSource
- type UploadConfig
- type VideoConfig
- type WebSourceParams
Constants ¶
View Source
const Latency = uint64(3e9)
View Source
const StreamKeyframeInterval = 4.0
View Source
const (
TmpDir = "/home/egress/tmp"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AudioConfig ¶ added in v1.5.6
type AzureConfig ¶
type BaseConfig ¶ added in v1.5.3
type BaseConfig struct { NodeID string // do not supply - will be overwritten // required Redis *redis.RedisConfig `yaml:"redis"` // redis config ApiKey string `yaml:"api_key"` // (env LIVEKIT_API_KEY) ApiSecret string `yaml:"api_secret"` // (env LIVEKIT_API_SECRET) WsUrl string `yaml:"ws_url"` // (env LIVEKIT_WS_URL) // optional Logging *logger.Config `yaml:"logging"` // logging config TemplateBase string `yaml:"template_base"` // custom template base url BackupStorage string `yaml:"backup_storage"` // backup file location for failed uploads ClusterID string `yaml:"cluster_id"` // cluster this instance belongs to EnableChromeSandbox bool `yaml:"enable_chrome_sandbox"` // enable Chrome sandbox, requires extra docker configuration StorageConfig `yaml:",inline"` // upload config (S3, Azure, GCP, or AliOSS) SessionLimits `yaml:"session_limits"` // session duration limits // dev/debugging Insecure bool `yaml:"insecure"` // allow chrome to connect to an insecure websocket Debug DebugConfig `yaml:"debug"` // create dot file on internal error // deprecated LogLevel string `yaml:"log_level"` // Use Logging instead }
type CPUCostConfig ¶ added in v1.0.4
type CPUCostConfig struct { MaxCpuUtilization float64 `yaml:"max_cpu_utilization"` // maximum allowed CPU utilization when deciding to accept a request. Default to 80%. MaxConcurrentWeb int32 `yaml:"max_concurrent_web"` // maximum allowed chrome/x/pulse instances RoomCompositeCpuCost float64 `yaml:"room_composite_cpu_cost"` AudioRoomCompositeCpuCost float64 `yaml:"audio_room_composite_cpu_cost"` WebCpuCost float64 `yaml:"web_cpu_cost"` AudioWebCpuCost float64 `yaml:"audio_web_cpu_cost"` ParticipantCpuCost float64 `yaml:"participant_cpu_cost"` TrackCompositeCpuCost float64 `yaml:"track_composite_cpu_cost"` TrackCpuCost float64 `yaml:"track_cpu_cost"` }
type DebugConfig ¶ added in v1.7.5
type DebugConfig struct { EnableProfiling bool `yaml:"enable_profiling"` // create dot file and pprof on internal error PathPrefix string `yaml:"path_prefix"` // filepath prefix for uploads StorageConfig `yaml:",inline"` // upload config (S3, Azure, GCP, or AliOSS) }
type EgressS3Upload ¶ added in v1.8.1
type FileConfig ¶ added in v1.7.1
type FileConfig struct { FileInfo *livekit.FileInfo LocalFilepath string StorageFilepath string DisableManifest bool UploadConfig UploadConfig // contains filtered or unexported fields }
func (FileConfig) GetOutputType ¶ added in v1.7.1
func (o FileConfig) GetOutputType() types.OutputType
type GCPConfig ¶
type GCPConfig struct { CredentialsJSON string `yaml:"credentials_json"` // (env GOOGLE_APPLICATION_CREDENTIALS) Bucket string `yaml:"bucket"` ProxyConfig *ProxyConfig `yaml:"proxy_config"` }
type ImageConfig ¶ added in v1.7.13
type ImageConfig struct { Id string // Used internally to map a gst Bin/element back to a sink and as part of the path ImagesInfo *livekit.ImagesInfo LocalDir string StorageDir string ImagePrefix string ImageSuffix livekit.ImageFileSuffix ImageExtension types.FileExtension DisableManifest bool UploadConfig UploadConfig CaptureInterval uint32 Width int32 Height int32 ImageOutCodec types.MimeType // contains filtered or unexported fields }
func (ImageConfig) GetOutputType ¶ added in v1.7.13
func (o ImageConfig) GetOutputType() types.OutputType
type OutputConfig ¶ added in v1.5.6
type OutputConfig interface {
GetOutputType() types.OutputType
}
type PipelineConfig ¶ added in v1.5.3
type PipelineConfig struct { BaseConfig `yaml:",inline"` HandlerID string `yaml:"handler_id"` TmpDir string `yaml:"tmp_dir"` types.RequestType `yaml:"-"` SourceConfig `yaml:"-"` AudioConfig `yaml:"-"` VideoConfig `yaml:"-"` Outputs map[types.EgressType][]OutputConfig `yaml:"-"` OutputCount atomic.Int32 `yaml:"-"` FinalizationRequired bool `yaml:"-"` Info *info.EgressInfo `yaml:"-"` }
func GetValidatedPipelineConfig ¶ added in v1.5.3
func GetValidatedPipelineConfig(conf *ServiceConfig, req *rpc.StartEgressRequest) (*PipelineConfig, error)
func NewPipelineConfig ¶ added in v1.5.3
func NewPipelineConfig(confString string, req *rpc.StartEgressRequest) (*PipelineConfig, error)
func (*PipelineConfig) GetEncodedOutputs ¶ added in v1.7.13
func (p *PipelineConfig) GetEncodedOutputs() []OutputConfig
func (*PipelineConfig) GetFileConfig ¶ added in v1.7.1
func (p *PipelineConfig) GetFileConfig() *FileConfig
func (*PipelineConfig) GetImageConfigs ¶ added in v1.7.13
func (p *PipelineConfig) GetImageConfigs() []*ImageConfig
func (*PipelineConfig) GetSegmentConfig ¶ added in v1.7.1
func (p *PipelineConfig) GetSegmentConfig() *SegmentConfig
func (*PipelineConfig) GetStreamConfig ¶ added in v1.7.1
func (p *PipelineConfig) GetStreamConfig() *StreamConfig
func (*PipelineConfig) GetWebsocketConfig ¶ added in v1.7.1
func (p *PipelineConfig) GetWebsocketConfig() *StreamConfig
func (*PipelineConfig) Update ¶ added in v1.5.3
func (p *PipelineConfig) Update(request *rpc.StartEgressRequest) error
func (*PipelineConfig) UpdateInfoFromSDK ¶ added in v1.5.6
func (p *PipelineConfig) UpdateInfoFromSDK(identifier string, replacements map[string]string, w, h uint32) error
used for sdk input source
type ProxyConfig ¶ added in v1.8.3
type S3Config ¶
type S3Config struct { AccessKey string `yaml:"access_key"` // (env AWS_ACCESS_KEY_ID) Secret string `yaml:"secret"` // (env AWS_SECRET_ACCESS_KEY) SessionToken string `yaml:"session_token"` // (env AWS_SESSION_TOKEN) Region string `yaml:"region"` // (env AWS_DEFAULT_REGION) Endpoint string `yaml:"endpoint"` Bucket string `yaml:"bucket"` ForcePathStyle bool `yaml:"force_path_style"` ProxyConfig *ProxyConfig `yaml:"proxy_config"` MaxRetries int `yaml:"max_retries"` MaxRetryDelay time.Duration `yaml:"max_retry_delay"` MinRetryDelay time.Duration `yaml:"min_retry_delay"` AwsLogLevel string `yaml:"aws_log_level"` // deprecated Proxy string `yaml:"proxy"` // use ProxyConfig instead }
type SDKSourceParams ¶ added in v1.5.6
type SegmentConfig ¶ added in v1.7.1
type SegmentConfig struct { SegmentsInfo *livekit.SegmentsInfo LocalDir string StorageDir string PlaylistFilename string LivePlaylistFilename string SegmentPrefix string SegmentSuffix livekit.SegmentedFileSuffix SegmentDuration int DisableManifest bool UploadConfig UploadConfig // contains filtered or unexported fields }
func (SegmentConfig) GetOutputType ¶ added in v1.7.1
func (o SegmentConfig) GetOutputType() types.OutputType
type ServiceConfig ¶ added in v1.5.3
type ServiceConfig struct { BaseConfig `yaml:",inline"` HealthPort int `yaml:"health_port"` // health check port TemplatePort int `yaml:"template_port"` // room composite template server port PrometheusPort int `yaml:"prometheus_port"` // prometheus handler port DebugHandlerPort int `yaml:"debug_handler_port"` // egress debug handler port *CPUCostConfig `yaml:"cpu_cost"` // CPU costs for the different egress types }
func NewServiceConfig ¶ added in v1.5.3
func NewServiceConfig(confString string) (*ServiceConfig, error)
type SessionLimits ¶ added in v1.2.0
type SessionLimits struct { FileOutputMaxDuration time.Duration `yaml:"file_output_max_duration"` StreamOutputMaxDuration time.Duration `yaml:"stream_output_max_duration"` SegmentOutputMaxDuration time.Duration `yaml:"segment_output_max_duration"` ImageOutputMaxDuration time.Duration `yaml:"image_output_max_duration"` }
type SourceConfig ¶ added in v1.5.6
type SourceConfig struct { SourceType types.SourceType WebSourceParams SDKSourceParams }
type StorageConfig ¶ added in v1.7.5
type StorageConfig struct { S3 *S3Config `yaml:"s3"` Azure *AzureConfig `yaml:"azure"` GCP *GCPConfig `yaml:"gcp"` AliOSS *S3Config `yaml:"alioss"` }
func (StorageConfig) ToUploadConfig ¶ added in v1.7.5
func (c StorageConfig) ToUploadConfig() UploadConfig
type Stream ¶ added in v1.8.6
type Stream struct { Name string // gstreamer stream ID ParsedUrl string // parsed/validated url RedactedUrl string // url with stream key removed StreamID string // stream ID used by rtmpconnection StreamInfo *livekit.StreamInfo }
func (*Stream) UpdateEndTime ¶ added in v1.8.6
type StreamConfig ¶ added in v1.7.1
type StreamConfig struct { // url -> Stream Streams sync.Map // contains filtered or unexported fields }
func (*StreamConfig) AddStream ¶ added in v1.8.6
func (o *StreamConfig) AddStream(rawUrl string, outputType types.OutputType) (*Stream, error)
func (StreamConfig) GetOutputType ¶ added in v1.7.1
func (o StreamConfig) GetOutputType() types.OutputType
func (*StreamConfig) GetStream ¶ added in v1.8.6
func (o *StreamConfig) GetStream(rawUrl string) (*Stream, error)
func (*StreamConfig) ValidateUrl ¶ added in v1.8.6
func (o *StreamConfig) ValidateUrl(rawUrl string, outputType types.OutputType) ( parsed string, redacted string, streamID string, err error, )
type TrackSource ¶ added in v1.7.8
type UploadConfig ¶ added in v1.7.5
type UploadConfig interface{}
type VideoConfig ¶ added in v1.5.6
Click to show internal directories.
Click to hide internal directories.