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.
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