2nzi's picture
update app
16c970a verified
raw
history blame
925 Bytes
import subprocess
from fastapi import HTTPException
def compress_video(input_path: str, output_path: str, resolution: str = "256x144"):
"""Compress video using FFmpeg for maximum reduction, with audio removed."""
command = [
"ffmpeg",
"-y", # Force overwrite without asking
"-i", input_path,
"-vf", f"scale={resolution}",
"-an", # Remove audio
"-c:v", "libx265",
"-preset", "medium", # Changed from veryslow for better speed/compression balance
"-crf", "32",
"-maxrate", "150k",
"-bufsize", "200k",
"-r", "10",
output_path
]
try:
subprocess.run(command, check=True, capture_output=True, text=True)
except subprocess.CalledProcessError as e:
print(f"Compression error: {e.stderr}")
raise HTTPException(status_code=500, detail="Video compression failed")