Page:
VIDEO_PLAYER_FORK
Pages
AUTHOR_MODULE
BUGS
BUILD
BUILD_AND_RUN
CHANGELOG
CHOCO_INSTALL
COMPARE_FULLSCREEN
COMPLETION_SUMMARY
CONVERT_MODULARIZATION_PLAN
CROSS_PLATFORM_GUIDE
DEV14_WINDOWS_IMPLEMENTATION
DEV30_FINALIZATION_CHECKLIST
DVD_IMPLEMENTATION_SUMMARY
DVD_USER_GUIDE
Documentation
GNOME_COMPATIBILITY
GSTREAMER_MIGRATION_PLAN
Home
IMPLEMENTATION_SUMMARY
INSTALLATION
INSTALL_LINUX
INSTALL_WINDOWS
INTEGRATION_GUIDE
INTERNAL_DVD_AUTHORING_SPEC
LATEST_UPDATES
LATEX_PREPARATION
LOSSLESSCUT_INSPIRATION
MODULES
PERSISTENT_VIDEO_CONTEXT
PHASE2_COMPLETE
PHASE2_INTEGRATION_PLAN
PLAYER_MODULE
PLAYER_PERFORMANCE_ISSUES
PROJECT_STATUS
QUEUE_SYSTEM_GUIDE
QUICKSTART
REFACTOR_DEV30_PLAN
ROADMAP
TESTING_CHECKLIST
TESTING_DEV13
TESTING_MODULE_CHECKLIST
TEST_DVD_CONVERSION
TODO_EXTRACTION_NOTES
TRIM_MODULE_DESIGN
VIDEO_METADATA_GUIDE
VIDEO_PLAYER
VIDEO_PLAYER_FORK
VT_PLAYER_IMPLEMENTATION
VT_PLAYER_INTEGRATION_NOTES
WINDOWS_BUILD_PERFORMANCE
WINDOWS_COMPATIBILITY
WINDOWS_PACKAGING
WINDOWS_SETUP
WORKING_ON
localization policy
No results
2
VIDEO_PLAYER_FORK
Gemini CLI edited this page 2026-03-13 11:03:09 -04:00
Table of Contents
- Video Player Fork Plan
Video Player Fork Plan
Status: COMPLETED
VT_Player has been forked as a separate project for independent development.
Overview
The video player component has been extracted into a separate project (VT_Player) to allow independent development and improvement of video playback controls while keeping VideoTools focused on video processing.
Current Player Integration
The player is used in VideoTools at:
- Convert module - Video preview and playback
- Compare module - Side-by-side video comparison (as of dev13)
- Inspect module - Single video playback with metadata (as of dev13)
- Preview frame display
- Playback controls (play/pause, seek, volume)
Fork Goals
1. Independent Development
- Develop player features without affecting VideoTools
- Faster iteration on playback controls
- Better testing of player-specific features
- Can be used by other projects
2. Improved Controls
Features to develop in VT_Player:
- Keyframing - Mark in/out points for trimming and chapter creation
- Tighten up video controls
- Better seek bar with thumbnails on hover
- Improved timeline scrubbing
- Keyboard shortcuts for playback
- Frame-accurate stepping (←/→ keys for frame-by-frame)
- Playback speed controls (0.25x to 2x)
- Better volume control UI
- Timeline markers for chapters
- Visual in/out point indicators
3. Clean API
VT_Player should expose a clean API for VideoTools integration:
type Player interface {
Load(path string) error
Play()
Pause()
Seek(position time.Duration)
GetFrame(position time.Duration) (image.Image, error)
SetVolume(level float64)
// Keyframing support for Trim/Chapter modules
SetInPoint(position time.Duration)
SetOutPoint(position time.Duration)
GetInPoint() time.Duration
GetOutPoint() time.Duration
ClearKeyframes()
Close()
}
VT_Player Development Strategy
Phase 1: Core Player Features
- Basic playback controls (play/pause/seek)
- Volume control
- Frame preview display
- Integration with VideoTools modules
Phase 2: Enhanced Controls (Current Focus)
Priority features for Trim/Chapter module integration:
- Keyframe markers - Set In/Out points visually on timeline
- Frame-accurate stepping - ←/→ keys for frame-by-frame navigation
- Visual timeline with markers - Show In/Out points on seek bar
- Keyboard shortcuts - I (in), O (out), Space (play/pause), ←/→ (step)
- Export keyframe data - Return In/Out timestamps to VideoTools
Phase 3: Advanced Features (Future)
- Thumbnail preview on seek bar hover
- Playback speed controls (0.25x to 2x)
- Improved volume slider with visual feedback
- Chapter markers on timeline
- Subtitle support
- Multi-audio track switching
- Zoom timeline for precision editing
Technical Considerations
Dependencies
Current dependencies to maintain:
- Fyne for UI rendering
- FFmpeg for video decoding
- CGO for FFmpeg bindings
Cross-Platform Support
Player must work on:
- Linux (GNOME, KDE, etc.)
- Windows
Performance
- Hardware acceleration where available
- Efficient frame buffering
- Low CPU usage during playback
- Fast seeking
VideoTools Module Integration
Modules Using VT_Player
- Convert Module - Preview video before conversion
- Compare Module - Side-by-side video playback for comparison
- Inspect Module - Single video playback with detailed metadata
- Trim Module (planned) - Keyframe-based trimming with In/Out points
- Chapter Module (planned) - Mark chapter points on timeline
Integration Requirements for Trim/Chapter
The Trim and Chapter modules will require:
- Keyframe API to set In/Out points
- Visual markers on timeline showing trim regions
- Frame-accurate seeking for precise cuts
- Ability to export timestamp data for FFmpeg commands
- Preview of trimmed segment before processing
Benefits
- VideoTools: Leaner codebase, focus on video processing
- VT_Player: Independent evolution, reusable component, dedicated feature development
- Users: Professional-grade video controls, precise editing capabilities
- Developers: Easier to contribute, clear separation of concerns
Development Philosophy
- VT_Player: Focus on playback, navigation, and visual controls
- VideoTools: Focus on video processing, encoding, and batch operations
- Clean API boundary allows independent versioning
- VT_Player features can be tested independently before VideoTools integration
Notes
- VT_Player repo: Separate project with independent development cycle
- VideoTools will import VT_Player as external dependency
- Keyframing features are priority for Trim/Chapter module development
- Compare module demonstrates successful multi-player integration
Navigation
What is VideoTools?
Project Status
Capabilities
Codecs and Frame Rates
Installation (One Command)
Alternative: Developer Setup
DVD Workflow (Optional)
Documentation
- Project Status
- Installation
- Readme
- Build And Run
- DVD User Guide
- DVD Implementation Summary
- Integration Guide
- Queue System Guide
- Localization-Policy