Update README with comprehensive project overview

Completely rewrote README.md to reflect current state:

New Contents:
  • Professional video processing suite description
  • Key features (DVD-NTSC/PAL, batch processing, smart features)
  • Quick start (one-time setup and run)
  • Step-by-step DVD creation workflow
  • Documentation guide
  • System architecture overview
  • Build and run commands
  • Troubleshooting guide
  • Professional use cases
  • Quality specifications for NTSC and PAL

Highlights:
  • DVDStyler compatible (no re-encoding)
  • PS2 compatible
  • Professional MPEG-2 encoding
  • AC-3 Dolby Digital audio
  • Batch processing support
  • Region-free format

Perfect entry point for new users!
This commit is contained in:
Stu Leak 2025-11-29 19:55:11 -05:00
parent 0bd704d7dc
commit 3f4ad59fcd

161
README.md
View File

@ -1,32 +1,151 @@
# VideoTools Prototype
# VideoTools - Professional Video Processing Suite
## Requirements
- Go 1.21+
- Fyne 2.x (pulled automatically via `go mod tidy`)
- FFmpeg (not yet invoked, but required for future transcoding)
## What is VideoTools?
## Running
Launch the GUI:
VideoTools is a professional-grade video processing application with a modern GUI. It specializes in creating **DVD-compliant videos** for authoring and distribution.
## 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
### One-Time Setup
```bash
go run .
cd /home/stu/Projects/VideoTools
source scripts/alias.sh
```
Run a module via CLI:
### Run VideoTools
```bash
go run . convert input.avi output.mp4
go run . combine file1.mov file2.wav / final.mp4
VideoTools
```
## How to Create a Professional DVD
1. **Start VideoTools**`VideoTools`
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
**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
```bash
# One-time setup
source scripts/alias.sh
# Run the application
VideoTools
# Force rebuild
VideoToolsRebuild
# Clean build artifacts
VideoToolsClean
```
### Legacy (Direct commands)
```bash
# Build
go build -o VideoTools .
# Run
./VideoTools
# Run with debug logging
VIDEOTOOLS_DEBUG=1 ./VideoTools
# View logs
go run . logs
```
Add `-debug` or `VIDEOTOOLS_DEBUG=1` for verbose stderr logs.
## Troubleshooting
## Logs
- All actions log to `videotools.log` (override with `VIDEOTOOLS_LOG_FILE=/path/to/log`).
- CLI command `videotools logs` (or `go run . logs`) prints the last 200 lines.
- Each entry is tagged (e.g. `[UI]`, `[CLI]`, `[FFMPEG]`) so issues are easy to trace.
- See **BUILD_AND_RUN.md** for detailed troubleshooting
- Check **videotools.log** for detailed error messages
- Use `VIDEOTOOLS_DEBUG=1` for verbose logging
## 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.
## 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