From 6e3e03eda93c6c1a14a66ab487eec92f6513a181 Mon Sep 17 00:00:00 2001 From: Raincloud Date: Wed, 2 Jul 2025 18:35:40 -0600 Subject: [PATCH] Add VodKeeper UI application with comprehensive video processing workflow --- README.md | 65 +++++++++++++++++++++++++++++++++++++++--------- requirements.txt | 8 +++--- run.py | 22 ++++++++++++++++ 3 files changed, 79 insertions(+), 16 deletions(-) create mode 100644 run.py diff --git a/README.md b/README.md index 0f82d73..40a43f7 100644 --- a/README.md +++ b/README.md @@ -8,21 +8,62 @@ VodKeeper is designed to streamline video processing workflows by providing a si ## Features -- Unified UI for video processing workflows -- Integration with existing mux workflows -- Streamlined video management -- Automated processing pipelines - -## Development - -This project is currently in initial development phase. +- **Input Tab**: File selection, encoding settings (codec, preset, CQ), bitrate management, preview encoding +- **Render Tab**: Progress monitoring, queue management, live FFmpeg output, pause/stop controls +- **QC Tab**: Quality control checks, frame-by-frame comparison, visual verification ## Setup -1. Clone the repository -2. Install dependencies (TBD) -3. Configure video source paths -4. Run the application +1. **Install Python Dependencies**: + ```bash + pip install -r requirements.txt + ``` + +2. **Install FFmpeg** (if not already installed): + - Windows: Download from https://ffmpeg.org/download.html + - Or use: `winget install ffmpeg` + +3. **Configure Paths**: + - Default input: `R:\mux\input` + - Default output: `R:\mux\output` + - Default logs: `R:\mux\logs` + +4. **Run the Application**: + ```bash + python run.py + # or + python vodkeeper.py + ``` + +## Usage + +### Input Tab +- Browse and select input directory +- Choose encoding settings (h265_nvenc, vp9, av1) +- Set preset (p1-p7, default p7) +- Configure CQ value (0-51, default 0) +- Auto-detect or manually set bitrate cap +- Preview encode (1 minute test) + +### Render Tab +- Add files to render queue +- Monitor progress with live FFmpeg output +- Pause/stop rendering operations +- View queue status and progress + +### QC Tab +- Select source and output files for comparison +- Run quality control checks +- Compare frames side-by-side +- Export QC reports + +## Development + +This project uses: +- **Tkinter** for the UI +- **ffmpeg-python** for video processing +- **OpenCV** for frame analysis +- **Pillow** for image handling ## License diff --git a/requirements.txt b/requirements.txt index b622d32..26ae3bf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ tkinter -opencv-python -pillow -ffmpeg-python -psutil +opencv-python==4.8.1.78 +pillow==10.0.1 +ffmpeg-python==0.2.0 +psutil==5.9.5 threading \ No newline at end of file diff --git a/run.py b/run.py new file mode 100644 index 0000000..1de9fa1 --- /dev/null +++ b/run.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +""" +VodKeeper Launcher +Simple script to run the VodKeeper application +""" + +import sys +import os + +# Add current directory to Python path +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +try: + from vodkeeper import main + print("Starting VodKeeper...") + main() +except ImportError as e: + print(f"Error importing VodKeeper: {e}") + print("Make sure all dependencies are installed:") + print("pip install -r requirements.txt") +except Exception as e: + print(f"Error running VodKeeper: {e}") \ No newline at end of file