Simple GUI toolset for FFmpeg
Go to file
Stu Leak eb8c553c71 feat: improve UI readability and flexibility
- Increase text and padding sizes in MonoTheme for better readability
  - Text: 14px → 15px
  - Headings: 18px → 20px
  - Padding: 6px → 8px, 8px → 10px
- Make horizontal splitter more flexible (10-90% → 5-95% drag range)
- Add comprehensive color mapping functions for dropdowns:
  - BuildGenericColorMap: rainbow palette for any options
  - BuildQualityColorMap: gradient based on quality level
  - BuildPixelFormatColorMap: semantic colors for pixel formats
- Fix settings_module.go build errors:
  - Remove duplicate buildBenchmarkTab function
  - Fix missing imports (runtime, exec, color)
  - Fix runBenchmarkFromSettings → showBenchmark
  - Remove unused variable i in loop
2026-01-02 12:02:51 -05:00
assets/logo Enhance Author module structure and implement drag-and-drop support 2025-12-22 20:09:43 -05:00
cmd/player_demo Implement VT_Player module with frame-accurate video playback 2025-12-21 16:31:44 -05:00
docs feat(docs): create dedicated Windows installation guide 2026-01-01 22:55:00 -05:00
internal feat: improve UI readability and flexibility 2026-01-02 12:02:51 -05:00
scripts fix: QoL improvements and cleanup 2026-01-02 04:24:47 -05:00
.gitattributes Enforce LF endings for shell scripts 2025-12-13 21:30:17 -05:00
.gitignore feat(ui): Display codec badges inline with dropdowns 2025-12-29 02:27:44 -05:00
audio_module.go fix: QoL improvements and cleanup 2026-01-02 04:24:47 -05:00
author_dvd_functions.go Finalize authoring workflow and update install docs 2025-12-23 14:24:09 -05:00
author_module.go refactor: improve UI flexibility and code formatting 2026-01-02 04:25:25 -05:00
config_helpers.go Add persistent configs for author/subtitles/merge/rip 2025-12-24 15:39:22 -05:00
DONE.md refactor(cmd): centralize command execution in core modules 2026-01-01 23:55:55 -05:00
filters_module.go refactor: improve UI flexibility and code formatting 2026-01-02 04:25:25 -05:00
FyneApp.toml feat(ui): Combine Letterbox/Pillarbox into single smart option + bump to dev21 2026-01-01 19:51:24 -05:00
go.mod fix: QoL improvements and cleanup 2026-01-02 04:24:47 -05:00
go.sum Implement in-app playback with ffmpeg frame pump and Go audio 2025-11-20 16:11:56 -05:00
inspect_module.go refactor: improve UI flexibility and code formatting 2026-01-02 04:25:25 -05:00
main.go feat: improve UI readability and flexibility 2026-01-02 12:02:51 -05:00
main.go.backup-before-inspect-extraction Add thumb module files 2025-12-23 21:57:41 -05:00
merge_config.go Add persistent configs for author/subtitles/merge/rip 2025-12-24 15:39:22 -05:00
naming_helpers.go Make "-convert" suffix optional with checkbox (off by default) 2025-12-30 13:03:54 -05:00
PHASE2_COMPLETE.md feat: implement Phase 2.3 - FFmpeg dnn_processing filter integration 2026-01-02 02:35:12 -05:00
platform.go refactor(cmd): centralize command execution in core modules 2026-01-01 23:55:55 -05:00
PLAYER_PERFORMANCE_ISSUES.md Document and fix player module stuttering issues 2025-12-23 21:09:21 -05:00
PROJECT_STATUS.md feat(docs): create project status page 2026-01-01 22:40:52 -05:00
README.md feat(docs): create project status page 2026-01-01 22:40:52 -05:00
rip_module.go refactor: improve UI flexibility and code formatting 2026-01-02 04:25:25 -05:00
settings_module.go feat: improve UI readability and flexibility 2026-01-02 12:02:51 -05:00
setup-windows.bat Add dev14 fixes: progress tracking, AMD AMF support, DVD resolution fix, and Windows build automation 2025-12-04 17:11:15 -05:00
subtitles_module.go refactor: improve UI flexibility and code formatting 2026-01-02 04:25:25 -05:00
thumb_module.go refactor: improve UI flexibility and code formatting 2026-01-02 04:25:25 -05:00
TODO_EXTRACTION_NOTES.md Phase 1 Complete: All upscale utilities migrated 2025-12-26 21:15:50 -05:00
TODO.md feat(docs): create dedicated Windows installation guide 2026-01-01 22:55:00 -05:00
upscale_module.go Fix build blockers and continue refactoring 2025-12-23 23:50:51 -05:00
VideoTools.desktop Add app icon support and window sizing improvements 2025-12-20 14:13:18 -05:00
WINDOWS_BUILD_PERFORMANCE.md Update Windows build guide for Git Bash users 2025-12-23 20:55:47 -05:00
WORKING_ON.md feat: implement Phase 2 AI enhancement module with ONNX framework 2026-01-02 02:02:55 -05:00

VideoTools - Video Processing Suite

What is VideoTools?

VideoTools is a professional-grade video processing application with a modern GUI. It specializes in creating DVD-compliant videos for authoring and distribution.

Project Status

This project is under active development, and many documented features are not yet implemented.

For a clear, up-to-date overview of what is complete, in progress, and planned, please see our Project Status Page. This document provides the most accurate reflection of the project's current state.

Key Features

DVD-NTSC & DVD-PAL Output

  • Professional MPEG-2 encoding (720×480 @ 29.97fps for NTSC, 720×576 @ 25fps for PAL)
  • AC-3 Dolby Digital audio (192 kbps, 48 kHz)
  • DVDStyler compatible (no re-encoding warnings)
  • PS2 compatible (PS2-safe bitrate limits)
  • Region-free format (works worldwide)

Batch Processing

  • Queue multiple videos
  • Pause/resume jobs
  • Real-time progress tracking
  • Job history and persistence

Smart Features

  • Automatic framerate conversion (23.976p, 24p, 30p, 60p, VFR → 29.97fps)
  • Automatic audio resampling (any rate → 48 kHz)
  • Aspect ratio preservation with intelligent handling
  • Comprehensive validation with helpful warnings

Quick Start

Installation (One Command)

bash scripts/install.sh

The installer will build, install, and set up everything automatically with a guided wizard!

After installation:

source ~/.bashrc    # (or ~/.zshrc for zsh)
VideoTools

Alternative: Developer Setup

If you already have the repo cloned (dev workflow):

cd /path/to/VideoTools
bash scripts/build.sh
bash scripts/run.sh

For detailed installation options, troubleshooting, and platform-specific notes, see INSTALLATION.md. For upcoming work and priorities, see docs/ROADMAP.md.

How to Create a Professional DVD

  1. Start VideoToolsVideoTools
  2. Load a video → Drag & drop into Convert module
  3. Select format → Choose "DVD-NTSC (MPEG-2)" or "DVD-PAL (MPEG-2)"
  4. Choose aspect → Select 4:3 or 16:9
  5. Name output → Enter filename (without .mpg)
  6. Queue → Click "Add to Queue"
  7. Encode → Click "View Queue" → "Start Queue"
  8. Export → Use the .mpg file in DVDStyler

Output is professional quality, ready for:

  • DVDStyler authoring (no re-encoding needed)
  • DVD menu creation
  • Burning to disc
  • PS2 playback

Documentation

Getting Started:

  • INSTALLATION.md - Comprehensive installation guide (read this first!)

For Users:

  • BUILD_AND_RUN.md - How to build and run VideoTools
  • DVD_USER_GUIDE.md - Complete guide to DVD encoding

For Developers:

  • DVD_IMPLEMENTATION_SUMMARY.md - Technical specifications
  • INTEGRATION_GUIDE.md - System architecture and integration
  • QUEUE_SYSTEM_GUIDE.md - Queue system reference

Requirements

  • Go 1.21+ (for building)
  • FFmpeg (for video encoding)
  • X11 or Wayland display server (for GUI)

System Architecture

VideoTools has a modular architecture:

  • internal/convert/ - DVD and video encoding
  • internal/queue/ - Job queue system
  • internal/ui/ - User interface components
  • internal/player/ - Media playback
  • scripts/ - Build and run automation

Commands

Build & Run

# One-time setup
source scripts/alias.sh

# Run the application
VideoTools

# Force rebuild
VideoToolsRebuild

# Clean build artifacts
VideoToolsClean

Legacy (Direct commands)

# Build
go build -o VideoTools .

# Run
./VideoTools

# Run with debug logging
VIDEOTOOLS_DEBUG=1 ./VideoTools

# View logs
go run . logs

Troubleshooting

  • See BUILD_AND_RUN.md for detailed troubleshooting
  • Check videotools.log for detailed error messages
  • Use VIDEOTOOLS_DEBUG=1 for verbose logging

Professional Use Cases

  • Home video archival to physical media
  • Professional DVD authoring workflows
  • Multi-region video distribution
  • Content preservation on optical media
  • PS2 compatible video creation

Professional Quality Specifications

DVD-NTSC

  • Resolution: 720 × 480 pixels
  • Framerate: 29.97 fps (NTSC standard)
  • Video: MPEG-2 codec, 6000 kbps
  • Audio: AC-3 stereo, 192 kbps, 48 kHz
  • Regions: USA, Canada, Japan, Australia

DVD-PAL

  • Resolution: 720 × 576 pixels
  • Framerate: 25.00 fps (PAL standard)
  • Video: MPEG-2 codec, 8000 kbps
  • Audio: AC-3 stereo, 192 kbps, 48 kHz
  • Regions: Europe, Africa, Asia, Australia

Getting Help

  1. Read BUILD_AND_RUN.md for setup issues
  2. Read DVD_USER_GUIDE.md for how-to questions
  3. Check videotools.log for error details
  4. Review documentation in project root