Cache thumbnails

This commit is contained in:
2023-03-01 21:03:54 +01:00
parent e41ea74d6d
commit fd52dee435
4 changed files with 9 additions and 1 deletions

View File

@@ -7,4 +7,5 @@ aiosqlite
passlib
requests
python-multipart
Pillow
Pillow
joblib

View File

@@ -9,6 +9,7 @@ import subprocess
from fastapi import APIRouter, Depends, FastAPI, File, UploadFile, status
from fastapi.responses import FileResponse
from fastapi_jwt_auth import AuthJWT
from joblib import Memory
from pydantic import BaseModel
from sqlalchemy.ext.asyncio import AsyncSession
from starlette.responses import StreamingResponse
@@ -21,7 +22,11 @@ from src.models.sign import Sign
from src.models.signvideo import SignVideo, SignVideoOut
from src.utils.cryptography import verify_password
# Create a Memory object that caches data to the specified directory
cache_dir = settings.CACHE_PATH
memory = Memory(location=cache_dir, verbose=0)
@memory.cache
def extract_thumbnail(video_path):
proc = subprocess.run(["ffmpeg", "-i", video_path, "-ss", "00:00:02.000", "-vframes", "1", "-f", "image2pipe", "-"], stdout=subprocess.PIPE)
byte_data = proc.stdout

View File

@@ -19,6 +19,7 @@ DB_SQLITE_PATH: str = os.getenv("DB_SQLITE_PATH", "./sqlite.db")
"""Storage"""
DATA_PATH: str = os.getenv("DATA_PATH", "data")
CACHE_PATH: str = os.getenv("CACHE_PATH", "cache")
"""Authentication"""

View File

@@ -12,6 +12,7 @@ services:
DB_USE_SQLITE: "true"
DB_SQLITE_PATH: "/data/sqlite.db"
DATA_PATH: "/data/videos"
CACHE_PATH: "/data/cache"
JWT_SECRET_KEY: "e8ae5c5d5cd7f0f1bec2303ad04a7c80f09f759d480a7a5faff5a6bbaa4078d0"