Created setup-realesrgan-linux.sh for easy one-command installation:
- Downloads Real-ESRGAN ncnn Vulkan binary from GitHub releases
- Installs to ~/.local/bin/realesrgan-ncnn-vulkan
- Installs all AI models to ~/.local/share/realesrgan/models/
- Sets proper permissions
- Provides PATH setup instructions
Installation:
./scripts/setup-realesrgan-linux.sh
Models included (45MB):
- realesr-animevideov3 (x2, x3, x4) - Anime/illustration upscaling
- realesrgan-x4plus - General photo/video upscaling
- realesrgan-x4plus-anime - Anime-specific upscaling
Tested and working on Fedora 43. Makes AI upscaling fully automated
for Linux users - no manual downloads or configuration needed.
Next step: Add in-app "Install AI Upscaling" button to VideoTools UI
for even easier setup without using terminal.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Documents the complete snippet system redesign with dual output modes:
- "Snippet to Default Format": Stream copy mode for bit-perfect source preservation
- "Snippet to Output Format": Conversion preview using actual settings
Updates ai-speak.md with comprehensive snippet testing requirements and Jake's AI communication. Updates DONE.md with detailed feature breakdown, technical improvements, and bug fixes. Includes testing checklist for both snippet modes and batch generation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Enhances screenshot module with comprehensive technical metadata display including audio bitrate, adds 8px padding between thumbnails for professional contact sheets. Implements new Player module for video playback access. Adds complete Filters and Upscale modules with traditional FFmpeg scaling methods (Lanczos, Bicubic, Spline, Bilinear) and resolution presets (720p-8K). Introduces configurable snippet length (5-60s, default 20s) with batch generation capability for all loaded videos. Fixes snippet duration precision by re-encoding instead of stream copy to ensure frame-accurate cutting at configured length.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
🔧 File Detection
- Replaced nullglob with explicit file scanning
- Added more video formats (flv, webm, m4v, 3gp, mpg, mpeg)
- Better error reporting showing supported formats
⚡ Hardware Detection
- Added lshw support for Linux hardware detection
- Conditional Windows commands - only run wmic on Windows
- Improved GPU detection for Linux systems
⏱️ Timeout Handling
- Cross-platform timeout support:
- Linux: timeout
- macOS: gtimeout
- Windows: Background process with manual kill
📁 Path Handling
- Robust script directory detection for different shells
- Absolute module sourcing using SCRIPT_DIR
🖥️ Drag & Drop
- Better argument handling for Wayland desktop environments
- Comprehensive file extension support
Now works on:
- ✅ Windows x64 (Git Bash, WSL)
- ✅ Linux (Wayland, X11)
- ✅ macOS (Terminal)
Check if MSYS2 is already present by looking for the bash executable,
even if winget reports it's already installed. This allows the script
to continue with GCC installation instead of failing.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replaced all emoji characters with standard ASCII status prefixes
to prevent encoding issues on Windows systems:
- ✓/❌ → [OK]/[ERROR]
- ⚠️ → [WARN]
- 📦/🔨/🧹/⬇️/📥 → [INFO]
This ensures the script works correctly on all Windows configurations
regardless of console encoding settings.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Batch files interpret unescaped parentheses as block delimiters,
causing "was unexpected at this time" errors and improper branch
execution. All parentheses in echo statements are now escaped with ^.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Capture ERRORLEVEL values immediately after each command execution
to prevent delayed expansion issues in nested conditionals. This
fixes the "was unexpected at this time" error and ensures proper
branch execution.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Enhanced build.bat to automatically detect and offer to install all
required dependencies for users with minimal Windows dev environment:
- Check for winget availability (required for auto-installation)
- Detect and offer to install Git (recommended for development)
- Improved GCC/MinGW detection with fallback instructions
- Better error messages for users without winget
- Graceful degradation when automatic installation is not available
This ensures Jake and other users with just Go installed can run the
build script and get prompted to install everything needed automatically.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed "was unexpected at this time" error by capturing ERRORLEVEL
values into variables before using them in nested if statements.
This is required due to how batch file delayed expansion works.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit includes three critical bug fixes and Windows build improvements:
**Bug Fixes:**
1. **Queue Conversion Progress Tracking** (main.go:1471-1534)
- Enhanced executeConvertJob() to parse FPS, speed, and ETA from FFmpeg output
- Queue jobs now show detailed progress metrics matching direct conversions
- Stats stored in job.Config for display in the conversion stats bar
2. **AMD AMF Hardware Acceleration** (main.go)
- Added "amf" to hardware acceleration options
- Support for h264_amf, hevc_amf, and av1_amf encoders
- Added AMF-specific error detection in FFmpeg output parsing
3. **DVD Format Resolution Forcing** (main.go:1080-1103, 4504-4517)
- Removed automatic resolution forcing when DVD format is selected
- Removed -target parameter usage which was forcing 720×480/720×576
- Resolution now defaults to "Source" unless explicitly changed
- DVD compliance maintained through manual bitrate/GOP/codec parameters
**Windows Build Improvements:**
- Updated build.bat to enable CGO (required for Fyne/OpenGL)
- Added automatic GCC/MinGW-w64 detection and installation
- Automated setup via winget for one-command Windows builds
- Improved error messages with fallback manual instructions
**Documentation:**
- Added comprehensive Windows setup guides
- Created platform.go for future platform-specific code
- Updated .gitignore for Windows build artifacts
All changes tested and working. Ready for production use.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added scripts folder with three convenience scripts:
• scripts/build.sh - Clean build with dependency verification
• scripts/run.sh - Run application (auto-builds if needed)
• scripts/alias.sh - Create 'VideoTools' command alias
Usage:
source scripts/alias.sh
VideoTools # Run app
VideoToolsRebuild # Force rebuild
VideoToolsClean # Clean artifacts
Fixed main.go DVD options:
• Fixed callback ordering so updateDVDOptions is called on format selection
• DVD aspect ratio selector now appears when DVD format is selected
• DVD info display shows specs for NTSC and PAL formats
• Works in both Simple and Advanced tabs
DVD options are now fully functional in the UI.