diff --git a/README.md b/README.md index 26284c8..d0aacca 100644 --- a/README.md +++ b/README.md @@ -25,12 +25,6 @@ configurable media root for security. ![Image 3](screens/VideoPress_Screen_3.png) -4. Get an email notification when a compresion run finishes. - -![Image 4](screens/VideoPress_Screen_4.png) - -![Image 5](screens/VideoPress_Screen_5.png) - --- ## Quick start with Docker (recommended) @@ -50,20 +44,15 @@ Step 2. Run — replace `/your/video/path` with the real path on your host A. Using `docker run`: - `mkdir -p data` - ``` docker run -d \ --name videopress \ --restart unless-stopped \ -p 8080:8080 \ -v /your/video/path:/media \ - -v ./data:/data \ videopress ``` B. Using Docker Compose - - `mkdir -p data` `docker compose up -d` @@ -125,8 +114,6 @@ Browser ──HTTP──▶ Gunicorn (gevent worker) └─ POST /api/compress/cancel/ ``` - - **Why gevent?** SSE (`/api/compress/progress`) is a long-lived streaming response. Standard Gunicorn sync workers block for its entire duration. Gevent workers use cooperative greenlets so a single worker process can @@ -153,44 +140,17 @@ in-process job store with Redis. ``` videocompressor/ -├── app - ├── __init__.py - ├── config.py - ├── db.py - ├── jobs.py - ├── media.py - ├── notify.py - └── routes.py -├── wsgi.py -├── gunicorn.conf.py -├── requirements.txt -├── Dockerfile -├── docker-compose.yml -├── start.sh +├── app.py ← Flask application + all API routes +├── wsgi.py ← Gunicorn entry point (imports app from app.py) +├── gunicorn.conf.py ← Gunicorn configuration (gevent, timeout, logging) +├── requirements.txt ← Python dependencies +├── Dockerfile ← Two-stage Docker build +├── docker-compose.yml ← Volume mapping, port, env vars +├── start.sh ← Helper script (dev + prod modes) ├── README.md ├── templates/ │ └── index.html └── static/ - ├── css - └── main.css - └── js - ├── app.js - └── modules - ├── browser.js - ├── compress.js - ├── progress.js - ├── scan.js - ├── session.js - ├── settings.js - ├── state.js - ├── stream.js - ├── theme.js - └── utils.js + ├── css/main.css + └── js/app.js ``` - -## Contribute -Feel free to clone the repository, make updates, and submit a pull request to make this more feature rich. - -Keep in mind, I like to keep things fairly simple to use. - -If you need to know too much about ffmpeg and how to configure the perfect compression, then that may be too much for this app, but feel free to fork this repository and make your own as well. \ No newline at end of file diff --git a/screens/VideoPress_Screen_4.png b/screens/VideoPress_Screen_4.png deleted file mode 100644 index 482beff..0000000 Binary files a/screens/VideoPress_Screen_4.png and /dev/null differ diff --git a/screens/VideoPress_Screen_5.png b/screens/VideoPress_Screen_5.png deleted file mode 100644 index 91edc8f..0000000 Binary files a/screens/VideoPress_Screen_5.png and /dev/null differ