# Video Compression Web App

A web application designed to allow users to upload video files, compress them using efficient codecs, and download the optimized versions. Ideal for gamers, content creators, or anyone dealing with large video clips.

## Features

- Upload single or multiple video files.
- Server-side video compression using FFmpeg.
- Compression presets for H.265/HEVC and H.264.
- Customizable resolution, bitrate, and audio settings.
- Download compressed videos immediately after processing.
- Optional user accounts for file history and management.
- Secure handling of files to prevent misuse.

## Roadmap

The project is structured into three main stages:

### MVP (Minimal Viable Product)
- Single file upload and compression.
- Basic frontend interface and download link.

### Intermediate
- Multiple file uploads with progress tracking.
- Compression presets and asynchronous processing.

### Advanced
- Job queue for managing server load.
- User authentication, file history, and auto-deletion.
- Security enhancements and advanced presets.
- Optional NAS/external storage integration.

## Tech Stack

- **Frontend:** HTML, CSS, JavaScript (for file uploads, progress bars)
- **Backend:** Python (Flask/FastAPI) or Node.js
- **Video Processing:** FFmpeg (H.265/HEVC, H.264)
- **Optional:** Job queues (Celery or Node.js workers), NAS/External storage integration

## Usage

1. Open the upload page.
2. Select one or more video files.
3. Choose desired compression presets.
4. Click 'Upload' and wait for compression.
5. Download the compressed files.

## Security

- Filenames are sanitized.
- Only video files are accepted.
- Maximum file size enforced.
- Temporary files stored securely and deleted after processing.

## Contribution

Feel free to fork, submit issues, and pull requests. The project roadmap is organized as GitHub issues for easy tracking of tasks and features.

