config.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import os
  2. def _get_bool(name: str, default: bool) -> bool:
  3. value = os.getenv(name)
  4. if value is None:
  5. return default
  6. return value.strip().lower() in {"1", "true", "yes", "on"}
  7. def _get_int(name: str, default: int) -> int:
  8. value = os.getenv(name)
  9. if value is None:
  10. return default
  11. try:
  12. return int(value)
  13. except ValueError:
  14. return default
  15. class Settings:
  16. CAMERA_CONFIG = {
  17. "cam01": "rtsp://admin:password@192.168.77.10:554/live/ch0",
  18. # 可扩展多个摄像头
  19. }
  20. OUTPUT_DIR = os.getenv("OUTPUT_DIR", "./records")
  21. MAX_TASK_SECONDS = _get_int("MAX_TASK_SECONDS", 60 * 10) # 10 分钟超时
  22. # 日志配置
  23. LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")
  24. # 存储配置
  25. STORAGE_TYPE = os.getenv("STORAGE_TYPE", "minio").strip().lower()
  26. # 上传后是否删掉本地视频
  27. DELETE_LOCAL_AFTER_UPLOAD = _get_bool("DELETE_LOCAL_AFTER_UPLOAD", False)
  28. # MinIO 配置,默认值对齐你提供的测试代码
  29. MINIO_ENDPOINT = os.getenv("MINIO_ENDPOINT", "192.168.77.249:9000")
  30. MINIO_ACCESS_KEY = os.getenv("MINIO_ACCESS_KEY", "pZEwCGnpNN05KPnmC2Yh")
  31. MINIO_SECRET_KEY = os.getenv("MINIO_SECRET_KEY", "KfJRuWiv9pVxhIMcFqbkv8hZT9SnNTZ6LPx592D4")
  32. MINIO_SECURE = _get_bool("MINIO_SECURE", False)
  33. MINIO_BUCKET = os.getenv("MINIO_BUCKET", "grading")
  34. MINIO_BASE_PREFIX = os.getenv("MINIO_BASE_PREFIX", "monitor_video_data").strip("/\\")
  35. MINIO_AUTO_CREATE_BUCKET = _get_bool("MINIO_AUTO_CREATE_BUCKET", True)
  36. # FFmpeg 录像配置
  37. FFMPEG_PATH = os.getenv("FFMPEG_PATH", "ffmpeg")
  38. FFMPEG_RTSP_TRANSPORT = os.getenv("FFMPEG_RTSP_TRANSPORT", "tcp")
  39. FFMPEG_PRESET = os.getenv("FFMPEG_PRESET", "veryfast")
  40. FFMPEG_LOGLEVEL = os.getenv("FFMPEG_LOGLEVEL", "error")
  41. settings = Settings()