VideoTools/scripts
Stu Leak 7cecf2bdd7 Remove emojis from install script, use text indicators
Replaced all emojis with text-based indicators:
- ✓ → [OK] (with GREEN color)
- ✗ → [ERROR] (with RED color)
- ⚠ → WARNING: (with YELLOW color)

Color coding is preserved for visual distinction while remaining
accessible in all terminals and avoiding encoding issues.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 21:20:24 -05:00
..
bat Add VT helper scripts for 4K/1440p 60fps and smoothing 2025-12-09 00:57:48 -05:00
git_converter Attempted to create GUI 2025-12-17 22:50:59 +00:00
add-defender-exclusions.ps1 Update Windows build guide for Git Bash users 2025-12-23 20:55:47 -05:00
alias.sh Fix subtitle module drag and drop and remove emojis from scripts 2025-12-26 20:17:24 -05:00
build-linux.sh Fix subtitle module drag and drop and remove emojis from scripts 2025-12-26 20:17:24 -05:00
build-windows.sh Fix subtitle module drag and drop and remove emojis from scripts 2025-12-26 20:17:24 -05:00
build.bat Add Windows build performance optimizations 2025-12-23 20:53:43 -05:00
build.ps1 Add Windows build performance optimizations 2025-12-23 20:53:43 -05:00
build.sh Fix subtitle module drag and drop and remove emojis from scripts 2025-12-26 20:17:24 -05:00
clear-go-cache.bat Add Windows clear-go-cache.bat helper 2025-12-09 00:51:11 -05:00
clear-go-cache.sh Add one-click AV1/HEVC helper scripts (sh/bat) 2025-12-09 00:53:56 -05:00
convert-av1-4k60-vt.sh Add VT helper scripts for 4K/1440p 60fps and smoothing 2025-12-09 00:57:48 -05:00
convert-av1-1080p-vt.sh Add one-click AV1/HEVC helper scripts (sh/bat) 2025-12-09 00:53:56 -05:00
convert-hevc-4k60-vt.sh Add VT helper scripts for 4K/1440p 60fps and smoothing 2025-12-09 00:57:48 -05:00
convert-hevc-1080p-vt.sh Add one-click AV1/HEVC helper scripts (sh/bat) 2025-12-09 00:53:56 -05:00
convert-hevc-1440p60-vt.sh Add VT helper scripts for 4K/1440p 60fps and smoothing 2025-12-09 00:57:48 -05:00
convert-hevc-lossless-vt.sh Add one-click AV1/HEVC helper scripts (sh/bat) 2025-12-09 00:53:56 -05:00
install-deps-linux.sh Finalize authoring workflow and update install docs 2025-12-23 14:24:09 -05:00
install-deps-windows.bat Finalize authoring workflow and update install docs 2025-12-23 14:24:09 -05:00
install-deps-windows.ps1 Allow local DVDStyler ZIP install 2025-12-23 20:00:54 -05:00
install.sh Remove emojis from install script, use text indicators 2025-12-30 21:20:24 -05:00
README.md Finalize authoring workflow and update install docs 2025-12-23 14:24:09 -05:00
run.sh Finalize authoring workflow and update install docs 2025-12-23 14:24:09 -05:00
setup-realesrgan-linux.sh Add automated Real-ESRGAN setup script for Linux 2025-12-21 14:10:46 -05:00
setup-windows.ps1 add build.bat script for Windows installation 2025-12-04 17:05:52 -05:00
smooth-60fps-vt.sh Add VT helper scripts for 4K/1440p 60fps and smoothing 2025-12-09 00:57:48 -05:00

VideoTools Build Scripts

This directory contains scripts for building and managing VideoTools on different platforms.

For development on any platform:

./scripts/install.sh
./scripts/build.sh
./scripts/run.sh

Use ./scripts/install.sh whenever you add new dependencies or need to reinstall.

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)
  • DVD authoring tools (via DVDStyler portable: dvdauthor + mkisofs)

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:

  1. C compiler required (GCC on Linux, MinGW on Windows)
  2. OpenGL libraries required (system-dependent)
  3. 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

  1. Verify GPU drivers are up to date
  2. Check ffmpeg encoders:
    ffmpeg -encoders | grep nvenc  # NVIDIA
    ffmpeg -encoders | grep qsv    # Intel
    ffmpeg -encoders | grep amf    # AMD
    
  3. 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:

  1. Add an exception for the build directory
  2. 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.