mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-05-01 19:17:41 +03:00
45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
"""Configuration from environment."""
|
|
import os
|
|
from dataclasses import dataclass, field
|
|
|
|
|
|
@dataclass
|
|
class Config:
|
|
"""Proxy configuration."""
|
|
|
|
# Upstream Frigate VOD base URL (e.g. http://nginx:80 or http://127.0.0.1:5001)
|
|
upstream_base: str = field(
|
|
default_factory=lambda: os.environ.get("TRANSCODE_PROXY_UPSTREAM", "http://127.0.0.1:80")
|
|
)
|
|
# Optional path prefix the proxy is mounted at (e.g. /vod-transcoded); strip when forwarding
|
|
path_prefix: str = field(
|
|
default_factory=lambda: os.environ.get("TRANSCODE_PROXY_PATH_PREFIX", "").rstrip("/")
|
|
)
|
|
# Host/port to bind
|
|
host: str = field(default_factory=lambda: os.environ.get("TRANSCODE_PROXY_HOST", "0.0.0.0"))
|
|
port: int = field(
|
|
default_factory=lambda: int(os.environ.get("TRANSCODE_PROXY_PORT", "5010"))
|
|
)
|
|
# In-memory cache max size in bytes
|
|
cache_max_bytes: int = field(
|
|
default_factory=lambda: int(os.environ.get("TRANSCODE_PROXY_CACHE_MB", "500")) * 1024 * 1024
|
|
)
|
|
# FFmpeg binary
|
|
ffmpeg_path: str = field(
|
|
default_factory=lambda: os.environ.get("TRANSCODE_PROXY_FFMPEG", "ffmpeg")
|
|
)
|
|
# H.264 bitrate for transcoded segments
|
|
h264_bitrate: str = field(
|
|
default_factory=lambda: os.environ.get("TRANSCODE_PROXY_H264_BITRATE", "128k")
|
|
)
|
|
# Max output size for transcoded playback; preserves aspect ratio and will not upscale
|
|
max_width: int = field(
|
|
default_factory=lambda: int(os.environ.get("TRANSCODE_PROXY_MAX_WIDTH", "640"))
|
|
)
|
|
max_height: int = field(
|
|
default_factory=lambda: int(os.environ.get("TRANSCODE_PROXY_MAX_HEIGHT", "480"))
|
|
)
|
|
|
|
|
|
config = Config()
|