Simple GUI toolset for FFmpeg
Ports Windows compatibility improvements from VideoTools to enable
VT_Player to build and run on Windows 11 alongside VideoTools.
Build System Enhancements:
- Universal build script auto-detects platform (Linux/macOS/Windows)
- Platform-specific build routing (build-linux.sh for Unix)
- Windows: Builds vt_player.exe with GUI flags (-H windowsgui)
- Windows: Automatic FFmpeg PATH detection
- Shares dependencies with VideoTools installation
Windows Console Hiding:
- Created internal/utils/proc_windows.go (Windows-specific)
- Created internal/utils/proc_other.go (Linux/macOS no-op)
- ApplyNoWindow() hides FFmpeg/ffprobe console windows on Windows
- Provides clean GUI experience without console popups
Cross-Platform Support:
- Build flags adapt to target platform automatically
- Go build tags for platform-specific code
- CGO enabled for all platforms (required by Fyne)
- Tested on Linux, ready for Windows 11
Documentation:
- WINDOWS_COMPATIBILITY.md: Complete Windows setup guide
- Explains dependency sharing with VideoTools
- Troubleshooting section for common issues
- Platform-specific build flag documentation
Benefits for Jake's Windows 11 Environment:
- Uses same MinGW-w64 toolchain as VideoTools
- Uses same FFmpeg installation (already on PATH)
- No additional dependency installation needed
- Build process identical to VideoTools
Technical Details:
- Windows GUI binary: vt_player.exe (~45MB)
- Linux/macOS binary: vt_player (~32MB)
- All platforms use CGO for Fyne OpenGL bindings
- syscall.SysProcAttr{HideWindow: true} for Windows processes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
||
|---|---|---|
| assets/logo | ||
| cmd/test_keyframes | ||
| docs | ||
| internal | ||
| scripts | ||
| .gitignore | ||
| BUILD_AND_RUN.md | ||
| COMPLETION_SUMMARY.md | ||
| DEV_SPEC_FRAME_ACCURATE_PLAYBACK.md | ||
| DONE.md | ||
| DVD_IMPLEMENTATION_SUMMARY.md | ||
| DVD_USER_GUIDE.md | ||
| go.mod | ||
| go.sum | ||
| install.sh | ||
| INSTALLATION.md | ||
| INTEGRATION_GUIDE.md | ||
| LATEST_UPDATES.md | ||
| main.go | ||
| QUEUE_SYSTEM_GUIDE.md | ||
| README.md | ||
| TEST_DVD_CONVERSION.md | ||
| TODO.md | ||
| WINDOWS_COMPATIBILITY.md | ||
VT Player - VideoTools Player Fork
What is VT Player?
VT Player is a fork of VideoTools focused on the playback and inspection workflows. It keeps the same modern GUI foundation while letting us evolve player-specific tooling separately from the broader VideoTools suite. Some docs and screens still reference "VideoTools"—those will be updated as the fork matures.
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 install.sh
The installer will build, install, and set up everything automatically!
After installation:
source ~/.bashrc # (or ~/.zshrc for zsh)
VTPlayer
Alternative: Developer Setup
If you already have the repo cloned:
cd /path/to/VT_Player
source scripts/alias.sh
VTPlayer
For detailed installation options, see INSTALLATION.md.
How to Create a Professional DVD
- Start VT Player →
VTPlayer - Load a video → Drag & drop into Convert module
- Select format → Choose "DVD-NTSC (MPEG-2)" or "DVD-PAL (MPEG-2)"
- Choose aspect → Select 4:3 or 16:9
- Name output → Enter filename (without .mpg)
- Queue → Click "Add to Queue"
- Encode → Click "View Queue" → "Start Queue"
- 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:
- docs/BUILD_AND_RUN.md - How to build and run VT Player
- docs/DVD_USER_GUIDE.md - Complete guide to DVD encoding
For Developers:
- docs/DVD_IMPLEMENTATION_SUMMARY.md - Technical specifications
- docs/INTEGRATION_GUIDE.md - System architecture and integration
- docs/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
VT Player has a modular architecture:
internal/convert/- DVD and video encodinginternal/queue/- Job queue systeminternal/ui/- User interface componentsinternal/player/- Media playbackscripts/- Build and run automation
Commands
Build & Run
# One-time setup
source scripts/alias.sh
# Run the application
VTPlayer
# Force rebuild
VTPlayerRebuild
# Clean build artifacts
VTPlayerClean
Legacy (Direct commands)
# Build
go build -o VTPlayer .
# Run
./VTPlayer
# Run with debug logging
VIDEOTOOLS_DEBUG=1 ./VTPlayer
# View logs
go run . logs
Troubleshooting
- See BUILD_AND_RUN.md for detailed troubleshooting
- Check videotools.log for detailed error messages
- Use
VIDEOTOOLS_DEBUG=1for 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
- Read BUILD_AND_RUN.md for setup issues
- Read DVD_USER_GUIDE.md for how-to questions
- Check videotools.log for error details
- Review documentation in project root