41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
import subprocess
|
|
import logging
|
|
import shutil
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
# Configure logging early
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format='%(asctime)s - %(levelname)s - %(message)s',
|
|
handlers=[
|
|
logging.StreamHandler() # Log to console
|
|
]
|
|
)
|
|
|
|
def check_gpu_support():
|
|
try:
|
|
logger.debug("Checking ffmpeg for CUDA support...")
|
|
result = subprocess.run("ffmpeg -hwaccels", shell=True, capture_output=True, text=True, check=True)
|
|
if "cuda" in result.stdout:
|
|
logger.info("ffmpeg with CUDA support detected. Enabling GPU acceleration.")
|
|
return True
|
|
except (FileNotFoundError, subprocess.CalledProcessError) as e:
|
|
logger.debug(f"GPU detection failed: {e}")
|
|
pass
|
|
|
|
logger.info("No ffmpeg with CUDA support detected. Falling back to CPU-based processing.")
|
|
return False
|
|
|
|
class Settings(BaseSettings):
|
|
samba_server_ip: str
|
|
samba_username: str
|
|
samba_password: str
|
|
gpu_enabled: bool = check_gpu_support()
|
|
|
|
model_config = SettingsConfigDict(env_file=".env")
|
|
|
|
|
|
settings = Settings()
|