Root Folder Cleanup: - Moved all documentation .md files to docs/ folder - Kept only README.md, TODO.md, DONE.md in root - Cleaner project structure for contributors - Better organization of documentation Files Moved to docs/: - BUILD.md, BUILD_AND_RUN.md, CHANGELOG.md - COMPLETION_SUMMARY.md, DVD_IMPLEMENTATION_SUMMARY.md - DVD_USER_GUIDE.md, INSTALLATION.md, INTEGRATION_GUIDE.md - LATEST_UPDATES.md, QUEUE_SYSTEM_GUIDE.md, QUICKSTART.md - TESTING_DEV13.md, TEST_DVD_CONVERSION.md, WINDOWS_SETUP.md DONE.md Updates: - Added dev19 section (2025-12-18) - Documented history sidebar delete button - Documented command preview improvements - Documented format options reorganization - Documented bitrate mode descriptive labels - Documented critical bug fixes (Convert crash, log viewer) - Documented bitrate control improvements TODO.md Updates: - Updated to dev19+ plan - Added "Current Focus: dev19" section - Added AI frame interpolation task (RIFE, FILM, DAIN, CAIN) - Added color space preservation tasks - Reorganized priority structure This establishes dev19 as the current development focus on Convert module cleanup and polish, with clear tracking of completed work and upcoming priorities. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
3.9 KiB
3.9 KiB
Building VideoTools
VideoTools uses a universal build script that automatically detects your platform and builds accordingly.
Quick Start (All Platforms)
./scripts/build.sh
That's it! The script will:
- ✅ Detect your platform (Linux/macOS/Windows)
- ✅ Build the appropriate executable
- ✅ On Windows: Offer to download FFmpeg automatically
Platform-Specific Details
Linux
Prerequisites:
- Go 1.21+
- FFmpeg (system package)
- CGO build dependencies
Install FFmpeg:
# Fedora/RHEL
sudo dnf install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Arch Linux
sudo pacman -S ffmpeg
Build:
./scripts/build.sh
Output: VideoTools (native executable)
Run:
./VideoTools
macOS
Prerequisites:
- Go 1.21+
- FFmpeg (via Homebrew)
- Xcode Command Line Tools
Install FFmpeg:
brew install ffmpeg
Build:
./scripts/build.sh
Output: VideoTools (native executable)
Run:
./VideoTools
Windows
Prerequisites:
- Go 1.21+
- MinGW-w64 (for CGO)
- Git Bash or similar (to run shell scripts)
Build:
./scripts/build.sh
The script will:
- Build
VideoTools.exe - Prompt to download FFmpeg automatically
- Set up everything in
dist/windows/
Output: VideoTools.exe (Windows GUI executable)
Run:
- Double-click
VideoTools.exeindist/windows/ - Or:
./VideoTools.exefrom Git Bash
Automatic FFmpeg Setup:
# The build script will offer this automatically, or run manually:
./setup-windows.bat
# Or in PowerShell:
.\scripts\setup-windows.ps1 -Portable
Advanced: Manual Platform-Specific Builds
Linux/macOS Native Build
./scripts/build-linux.sh
Windows Cross-Compile (from Linux)
# Install MinGW first
sudo dnf install mingw64-gcc mingw64-winpthreads-static # Fedora
# OR
sudo apt install gcc-mingw-w64 # Ubuntu/Debian
# Cross-compile
./scripts/build-windows.sh
# Output: dist/windows/VideoTools.exe (with FFmpeg bundled)
Build Options
Clean Build
# The build script automatically cleans cache
./scripts/build.sh
Debug Build
# Standard build includes debug info by default
CGO_ENABLED=1 go build -o VideoTools
# Run with debug logging
./VideoTools -debug
Release Build (Smaller Binary)
# Strip debug symbols
go build -ldflags="-s -w" -o VideoTools
Troubleshooting
"go: command not found"
Install Go 1.21+ from https://go.dev/dl/
"CGO_ENABLED must be set"
CGO is required for Fyne (GUI framework):
export CGO_ENABLED=1
./scripts/build.sh
"ffmpeg not found" (Linux/macOS)
Install FFmpeg using your package manager (see above).
Windows: "x86_64-w64-mingw32-gcc not found"
Install MinGW-w64:
- MSYS2: https://www.msys2.org/
- Or standalone: https://www.mingw-w64.org/
macOS: "ld: library not found"
Install Xcode Command Line Tools:
xcode-select --install
Build Artifacts
After building, you'll find:
Linux/macOS:
VideoTools/
└── VideoTools # Native executable
Windows:
VideoTools/
├── VideoTools.exe # Main executable
└── dist/
└── windows/
├── VideoTools.exe
├── ffmpeg.exe # (after setup)
└── ffprobe.exe # (after setup)
Development Builds
For faster iteration during development:
# Quick build (no cleaning)
go build -o VideoTools
# Run directly
./VideoTools
# With debug output
./VideoTools -debug
CI/CD
The build scripts are designed to work in CI/CD environments:
# Example GitHub Actions
- name: Build VideoTools
run: ./scripts/build.sh
For more details, see:
QUICKSTART.md- Simple setup guideWINDOWS_SETUP.md- Windows-specific instructionsdocs/WINDOWS_COMPATIBILITY.md- Cross-platform implementation details