VideoTools/scripts
Stu Leak 6497e27e0d Auto-install missing dependencies without additional prompt
Previously, install.sh would:
1. Ask "Install DVD authoring tools?"
2. Then ask again "Install missing dependencies now?"

Now it automatically installs any missing dependencies after the
user confirms they want DVD tools, eliminating the redundant prompt.

Changes:
- Removed second confirmation prompt for dependency installation
- Automatically installs missing deps when detected
- Shows clear message: "Missing dependencies: ... Installing..."

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 21:11:06 -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 Auto-install missing dependencies without additional prompt 2025-12-30 21:11:06 -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.