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> |
||
|---|---|---|
| .. | ||
| bat | ||
| git_converter | ||
| alias.sh | ||
| build-linux.sh | ||
| build-windows.sh | ||
| build.bat | ||
| build.ps1 | ||
| build.sh | ||
| clear-go-cache.bat | ||
| clear-go-cache.sh | ||
| convert-av1-4k60-vt.sh | ||
| convert-av1-1080p-vt.sh | ||
| convert-hevc-4k60-vt.sh | ||
| convert-hevc-1080p-vt.sh | ||
| convert-hevc-1440p60-vt.sh | ||
| convert-hevc-lossless-vt.sh | ||
| install-deps-linux.sh | ||
| install-deps-windows.bat | ||
| install-deps-windows.ps1 | ||
| README.md | ||
| run.sh | ||
| setup-windows.ps1 | ||
| smooth-60fps-vt.sh | ||
VideoTools Build Scripts
This directory contains scripts for building and managing VideoTools on different platforms.
Linux
Install Dependencies
Automatically installs all required dependencies for your Linux distribution:
./scripts/install-deps-linux.sh
Supported distributions:
- Fedora / RHEL / CentOS
- Ubuntu / Debian / Pop!_OS / Linux Mint
- Arch Linux / Manjaro / EndeavourOS
- openSUSE / SLES
Installs:
- Go 1.21+
- GCC compiler
- OpenGL development libraries
- X11 development libraries
- ALSA audio libraries
- ffmpeg
Build VideoTools
./scripts/build.sh
Features:
- Automatic dependency verification
- Clean build option
- Progress indicators
- Error handling
Run VideoTools
./scripts/run.sh
Runs VideoTools with proper library paths configured.
Shell Alias
source ./scripts/alias.sh
Adds a VideoTools command to your current shell session.
Windows
Install Dependencies
Run in PowerShell as Administrator:
.\scripts\install-deps-windows.ps1
Options:
-UseScoop- Use Scoop package manager instead of Chocolatey-SkipFFmpeg- Skip ffmpeg installation (if you already have it)
Installs:
- Go 1.21+
- MinGW-w64 (GCC compiler)
- ffmpeg
- Git (optional, for development)
Package managers supported:
- Chocolatey (default, requires admin)
- Scoop (user-level, no admin)
Build VideoTools
Run in PowerShell:
.\scripts\build.ps1
Options:
-Clean- Clean build cache before building-SkipTests- Skip running tests
Features:
- Automatic GPU detection (NVIDIA/Intel/AMD)
- Dependency verification
- File size reporting
- Build status indicators
Cross-Platform Notes
CGO Requirements
VideoTools uses Fyne for its GUI, which requires CGO (C bindings) for OpenGL support. This means:
- C compiler required (GCC on Linux, MinGW on Windows)
- OpenGL libraries required (system-dependent)
- Build time is longer than pure Go applications
ffmpeg Requirements
VideoTools requires ffmpeg to be available in the system PATH:
- Linux: Installed via package manager
- Windows: Installed via Chocolatey/Scoop or manually
The application will auto-detect available hardware encoders:
- NVIDIA: NVENC (h264_nvenc, hevc_nvenc)
- Intel: Quick Sync Video (h264_qsv, hevc_qsv)
- AMD: AMF (h264_amf, hevc_amf)
- VA-API (Linux only)
GPU Encoding
For best performance with hardware encoding:
NVIDIA (Recommended for Jake's setup):
- Install latest NVIDIA drivers
- GTX 1060 and newer support NVENC
- Reduces 2-hour encode from 6-9 hours to <1 hour
Intel:
- Install Intel Graphics drivers
- 7th gen (Kaby Lake) and newer support Quick Sync
- Built into CPU, no dedicated GPU needed
AMD:
- Install latest AMD drivers
- Most modern Radeon GPUs support AMF
- Performance similar to NVENC
Troubleshooting
Linux: Missing OpenGL libraries
# Fedora/RHEL
sudo dnf install mesa-libGL-devel
# Ubuntu/Debian
sudo apt install libgl1-mesa-dev
# Arch
sudo pacman -S mesa
Windows: MinGW not in PATH
After installing MinGW, restart PowerShell or add to PATH manually:
$env:Path += ";C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin"
Build fails with "cgo: C compiler not found"
Linux: Install gcc
Windows: Install MinGW via install-deps-windows.ps1
ffmpeg not found
Linux:
sudo dnf install ffmpeg-free # Fedora
sudo apt install ffmpeg # Ubuntu
Windows:
choco install ffmpeg
# or
scoop install ffmpeg
GPU encoding not working
- Verify GPU drivers are up to date
- Check ffmpeg encoders:
ffmpeg -encoders | grep nvenc # NVIDIA ffmpeg -encoders | grep qsv # Intel ffmpeg -encoders | grep amf # AMD - If encoders not listed, reinstall GPU drivers
Development
Quick Build Cycle
Linux:
./scripts/build.sh && ./scripts/run.sh
Windows:
.\scripts\build.ps1 && .\VideoTools.exe
Clean Build
Linux:
./scripts/build.sh # Includes automatic cleaning
Windows:
.\scripts\build.ps1 -Clean
Build for Distribution
Linux:
CGO_ENABLED=1 go build -ldflags="-s -w" -o VideoTools .
strip VideoTools # Further reduce size
Windows:
$env:CGO_ENABLED = "1"
go build -ldflags="-s -w -H windowsgui" -o VideoTools.exe .
The -H windowsgui flag prevents a console window from appearing on Windows.
Platform-Specific Notes
Linux: Wayland vs X11
VideoTools works on both Wayland and X11. The build scripts automatically detect your display server.
Windows: Antivirus False Positives
Some antivirus software may flag the built executable. This is common with Go applications. You may need to:
- Add an exception for the build directory
- Submit the binary to your antivirus vendor for whitelisting
- Handle codesigning requirements
License
VideoTools build scripts are part of the VideoTools project. See the main project LICENSE file for details.