forked from Leak_Technologies/VideoTools
Fork of VideoTools focused on player/inspection. VT Player lets us iterate on playback, navigation, and analysis workflows independently of the full suite.
Implemented three methods to add multiple videos to the queue:
1. **Drag from main menu**: When on the main menu, dragging multiple videos
onto the Convert tile automatically adds them all to the queue via
batchAddToQueue(). Already working - improved handling.
2. **Drag onto convert module**: When in the convert module, dragging
multiple video files now adds all of them to the queue instead of just
loading the first one. Single files are loaded as before.
3. **UI button support**: Added 'Add Multiple...' button next to 'Open File...'
to make it clear that users can load multiple files.
Changes:
- handleDrop(): Refactored to process all dropped files when in convert module
and call batchAddToQueue() for multiple videos
- buildVideoPane(): Added 'Add Multiple...' button and reorganized button
layout to show both single and batch options
This provides intuitive multi-file handling with three different workflows
for users who prefer different input methods.
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
|
||
|---|---|---|
| assets/logo | ||
| docs | ||
| internal | ||
| .gitignore | ||
| DONE.md | ||
| go.mod | ||
| go.sum | ||
| install.sh | ||
| main.go | ||
| README.md | ||
| TODO.md | ||
| videotools | ||
VideoTools Prototype
Requirements
- Go 1.21+
- Fyne 2.x (pulled automatically via
go mod tidy) - FFmpeg (not yet invoked, but required for future transcoding)
Running
Launch the GUI:
go run .
Run a module via CLI:
go run . convert input.avi output.mp4
go run . combine file1.mov file2.wav / final.mp4
go run . logs
Add -debug or VIDEOTOOLS_DEBUG=1 for verbose stderr logs.
Logs
- All actions log to
videotools.log(override withVIDEOTOOLS_LOG_FILE=/path/to/log). - CLI command
videotools logs(orgo run . logs) prints the last 200 lines. - Each entry is tagged (e.g.
[UI],[CLI],[FFMPEG]) so issues are easy to trace.
Notes
- GUI requires a running display server (X11/Wayland). In headless shells it will log
[UI] DISPLAY environment variable is empty. - Convert screen accepts drag-and-drop or the "Open File…" button; ffprobe metadata populates instantly, the preview box animates extracted frames with simple play/pause + slider controls (and lets you grab cover art), and the "Generate Snippet" button produces a 20-second midpoint clip for quick quality checks (requires ffmpeg in
PATH). - Simple mode now applies smart inverse telecine by default—automatically skipping it on progressive footage—and lets you rename the target file before launching a convert job.
- Other module handlers are placeholders; hook them to actual FFmpeg calls next.