376 lines
6.8 KiB
Markdown
376 lines
6.8 KiB
Markdown
# VT Player - Build and Run Guide
|
||
|
||
Forked from VideoTools. Some docs still mention "VideoTools"; use the new `VTPlayer` commands and paths shown below for this project.
|
||
|
||
## Quick Start (2 minutes)
|
||
|
||
### Option 1: Using the Convenience Script (Recommended)
|
||
|
||
```bash
|
||
cd /home/stu/Projects/VT_Player
|
||
source scripts/alias.sh
|
||
VTPlayer
|
||
```
|
||
|
||
This will:
|
||
1. Load the convenience commands
|
||
2. Build the application (if needed)
|
||
3. Run VT Player GUI
|
||
|
||
**Available commands after sourcing alias.sh:**
|
||
- `VTPlayer` - Run the application
|
||
- `VTPlayerRebuild` - Force a clean rebuild
|
||
- `VTPlayerClean` - Clean all build artifacts
|
||
|
||
### Option 2: Using build.sh Directly
|
||
|
||
```bash
|
||
cd /home/stu/Projects/VT_Player
|
||
bash scripts/build.sh
|
||
./VTPlayer
|
||
```
|
||
|
||
### Option 3: Using run.sh
|
||
|
||
```bash
|
||
cd /home/stu/Projects/VT_Player
|
||
bash scripts/run.sh
|
||
```
|
||
|
||
---
|
||
|
||
## Making VT Player Permanent (Optional)
|
||
|
||
To use `VTPlayer` command from anywhere in your terminal:
|
||
|
||
### For Bash users:
|
||
Add this line to `~/.bashrc`:
|
||
```bash
|
||
source /home/stu/Projects/VT_Player/scripts/alias.sh
|
||
```
|
||
|
||
Then reload:
|
||
```bash
|
||
source ~/.bashrc
|
||
```
|
||
|
||
### For Zsh users:
|
||
Add this line to `~/.zshrc`:
|
||
```bash
|
||
source /home/stu/Projects/VT_Player/scripts/alias.sh
|
||
```
|
||
|
||
Then reload:
|
||
```bash
|
||
source ~/.zshrc
|
||
```
|
||
|
||
### After setting up:
|
||
From any directory, you can simply type:
|
||
```bash
|
||
VTPlayer
|
||
```
|
||
|
||
---
|
||
|
||
## What Each Script Does
|
||
|
||
### build.sh
|
||
```bash
|
||
bash scripts/build.sh
|
||
```
|
||
|
||
**Purpose:** Builds VT Player from source with full dependency management
|
||
|
||
**What it does:**
|
||
1. Checks if Go is installed
|
||
2. Displays Go version
|
||
3. Cleans previous builds and cache
|
||
4. Downloads and verifies all dependencies
|
||
5. Builds the application
|
||
6. Shows output file location and size
|
||
|
||
**When to use:**
|
||
- First time building
|
||
- After major code changes
|
||
- When you want a clean rebuild
|
||
- When dependencies are out of sync
|
||
|
||
**Exit codes:**
|
||
- `0` = Success
|
||
- `1` = Build failed (check errors above)
|
||
|
||
### run.sh
|
||
```bash
|
||
bash scripts/run.sh
|
||
```
|
||
|
||
**Purpose:** Runs VT Player, building first if needed
|
||
|
||
**What it does:**
|
||
1. Checks if binary exists
|
||
2. If binary missing, runs `build.sh`
|
||
3. Verifies binary was created
|
||
4. Launches the application
|
||
|
||
**When to use:**
|
||
- Every time you want to run VT Player
|
||
- When you're not sure if it's built
|
||
- After code changes (will rebuild if needed)
|
||
|
||
**Advantages:**
|
||
- Automatic build detection
|
||
- No manual steps needed
|
||
- Always runs the latest code
|
||
|
||
### alias.sh
|
||
```bash
|
||
source scripts/alias.sh
|
||
```
|
||
|
||
**Purpose:** Creates convenient shell commands
|
||
|
||
**What it does:**
|
||
1. Adds `VTPlayer` command (alias for `scripts/run.sh`)
|
||
2. Adds `VTPlayerRebuild` function
|
||
3. Adds `VTPlayerClean` function
|
||
4. Prints help text
|
||
|
||
**When to use:**
|
||
- Once per shell session
|
||
- Add to ~/.bashrc or ~/.zshrc for permanent access
|
||
|
||
**Commands created:**
|
||
```
|
||
VTPlayer # Run the app
|
||
VTPlayerRebuild # Force rebuild
|
||
VTPlayerClean # Remove build artifacts
|
||
```
|
||
|
||
---
|
||
|
||
## Build Requirements
|
||
|
||
### Required:
|
||
- **Go 1.21 or later**
|
||
```bash
|
||
go version
|
||
```
|
||
If not installed: https://golang.org/dl
|
||
|
||
### Recommended:
|
||
- At least 2 GB free disk space (for dependencies)
|
||
- Stable internet connection (for downloading dependencies)
|
||
|
||
### Optional:
|
||
- FFmpeg (for actual video encoding)
|
||
```bash
|
||
ffmpeg -version
|
||
```
|
||
|
||
---
|
||
|
||
## Troubleshooting
|
||
|
||
### Problem: "Go is not installed"
|
||
**Solution:**
|
||
1. Install Go from https://golang.org/dl
|
||
2. Add Go to PATH: Add `/usr/local/go/bin` to your `$PATH`
|
||
3. Verify: `go version`
|
||
|
||
### Problem: Build fails with "CGO_ENABLED" error
|
||
**Solution:** The script already handles this with `CGO_ENABLED=0`. If you still get errors:
|
||
```bash
|
||
export CGO_ENABLED=0
|
||
bash scripts/build.sh
|
||
```
|
||
|
||
### Problem: "Permission denied" on scripts
|
||
**Solution:**
|
||
```bash
|
||
chmod +x scripts/*.sh
|
||
bash scripts/build.sh
|
||
```
|
||
|
||
### Problem: Out of disk space
|
||
**Solution:** Clean the cache
|
||
```bash
|
||
bash scripts/build.sh
|
||
# Or manually:
|
||
go clean -cache -modcache
|
||
```
|
||
|
||
### Problem: Outdated dependencies
|
||
**Solution:** Clean and rebuild
|
||
```bash
|
||
rm -rf go.mod go.sum
|
||
go mod init git.leaktechnologies.dev/stu/VT_Player
|
||
bash scripts/build.sh
|
||
```
|
||
|
||
### Problem: Binary won't run
|
||
**Solution:** Check if it was built:
|
||
```bash
|
||
ls -lh VTPlayer
|
||
file VTPlayer
|
||
```
|
||
|
||
If missing, rebuild:
|
||
```bash
|
||
bash scripts/build.sh
|
||
```
|
||
|
||
---
|
||
|
||
## Development Workflow
|
||
|
||
### Making code changes and testing:
|
||
|
||
```bash
|
||
# After editing code, rebuild and run:
|
||
VTPlayerRebuild
|
||
VTPlayer
|
||
|
||
# Or in one command:
|
||
bash scripts/build.sh && ./VTPlayer
|
||
```
|
||
|
||
### Quick test loop:
|
||
```bash
|
||
# Terminal 1: Watch for changes and rebuild
|
||
while true; do bash scripts/build.sh; sleep 2; done
|
||
|
||
# Terminal 2: Test the app
|
||
VTPlayer
|
||
```
|
||
|
||
---
|
||
|
||
## DVD Encoding Workflow
|
||
|
||
### To create a professional DVD video:
|
||
|
||
1. **Start the application**
|
||
```bash
|
||
VTPlayer
|
||
```
|
||
|
||
2. **Go to Convert module**
|
||
- Click the Convert tile from main menu
|
||
|
||
3. **Load a video**
|
||
- Drag and drop, or use file browser
|
||
|
||
4. **Select DVD format**
|
||
- Choose "DVD-NTSC (MPEG-2)" or "DVD-PAL (MPEG-2)"
|
||
- DVD options appear automatically
|
||
|
||
5. **Choose aspect ratio**
|
||
- Select 4:3 or 16:9
|
||
|
||
6. **Name output**
|
||
- Enter filename (without .mpg extension)
|
||
|
||
7. **Add to queue**
|
||
- Click "Add to Queue"
|
||
|
||
8. **Start encoding**
|
||
- Click "View Queue" → "Start Queue"
|
||
|
||
9. **Use output file**
|
||
- Output: `filename.mpg`
|
||
- Import into DVDStyler
|
||
- Author and burn to disc
|
||
|
||
**Output specifications:**
|
||
|
||
NTSC:
|
||
- 720×480 @ 29.97fps
|
||
- MPEG-2 video
|
||
- AC-3 stereo audio @ 48 kHz
|
||
- Perfect for USA, Canada, Japan, Australia
|
||
|
||
PAL:
|
||
- 720×576 @ 25 fps
|
||
- MPEG-2 video
|
||
- AC-3 stereo audio @ 48 kHz
|
||
- Perfect for Europe, Africa, Asia
|
||
|
||
Both output region-free, DVDStyler-compatible, PS2-compatible video.
|
||
|
||
---
|
||
|
||
## Performance Notes
|
||
|
||
### Build time:
|
||
- First build: 30-60 seconds (downloads dependencies)
|
||
- Subsequent builds: 5-15 seconds (uses cached dependencies)
|
||
- Rebuild with changes: 10-20 seconds
|
||
|
||
### File sizes:
|
||
- Binary: ~35 MB (optimized)
|
||
- With dependencies in cache: ~1 GB total
|
||
|
||
### Runtime:
|
||
- Startup: 1-3 seconds
|
||
- Memory usage: 50-150 MB depending on video complexity
|
||
- Encoding speed: Depends on CPU and video complexity
|
||
|
||
---
|
||
|
||
## Production Use
|
||
|
||
For production deployment:
|
||
|
||
```bash
|
||
# Create optimized binary
|
||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o VTPlayer
|
||
|
||
# Verify it works
|
||
./VTPlayer
|
||
|
||
# File size will be smaller with -ldflags
|
||
ls -lh VTPlayer
|
||
```
|
||
|
||
---
|
||
|
||
## Getting Help
|
||
|
||
### Check the documentation:
|
||
- `DVD_USER_GUIDE.md` - How to use DVD encoding
|
||
- `DVD_IMPLEMENTATION_SUMMARY.md` - Technical details
|
||
- `README.md` - Project overview
|
||
|
||
### Debug a build:
|
||
```bash
|
||
# Verbose output
|
||
bash scripts/build.sh 2>&1 | tee build.log
|
||
|
||
# Check go environment
|
||
go env
|
||
|
||
# Verify dependencies
|
||
go mod graph
|
||
```
|
||
|
||
### Report issues:
|
||
Include:
|
||
1. Output from `go version`
|
||
2. OS and architecture (`uname -a`)
|
||
3. Exact error message
|
||
4. Steps to reproduce
|
||
|
||
---
|
||
|
||
## Summary
|
||
|
||
**Easiest way:**
|
||
```bash
|
||
cd /home/stu/Projects/VT_Player
|
||
source scripts/alias.sh
|
||
VTPlayer
|
||
```
|
||
|
||
**That's it!** The scripts handle everything else automatically.
|