forked from Leak_Technologies/VideoTools
358 lines
8.4 KiB
Markdown
358 lines
8.4 KiB
Markdown
# DVD Conversion Testing Guide
|
||
|
||
This guide walks you through a complete DVD-NTSC conversion test.
|
||
|
||
## Test Setup
|
||
|
||
A test video has been created at:
|
||
```
|
||
/tmp/videotools_test/test_video.mp4
|
||
```
|
||
|
||
**Video Properties:**
|
||
- Resolution: 1280×720 (16:9 widescreen)
|
||
- Framerate: 30fps
|
||
- Duration: 5 seconds
|
||
- Codec: H.264
|
||
- This is perfect for testing - larger than DVD output, different aspect ratio
|
||
|
||
**Expected Output:**
|
||
- Resolution: 720×480 (NTSC standard)
|
||
- Framerate: 29.97fps
|
||
- Codec: MPEG-2
|
||
- Duration: ~5 seconds (same, just re-encoded)
|
||
|
||
---
|
||
|
||
## Step-by-Step Testing
|
||
|
||
### Step 1: Start VideoTools
|
||
|
||
```bash
|
||
cd /home/stu/Projects/VideoTools
|
||
./VideoTools
|
||
```
|
||
|
||
You should see the main menu with modules: Convert, Merge, Trim, Filters, Upscale, Audio, Thumb, Inspect.
|
||
|
||
✅ **Expected:** Main menu appears with all modules visible
|
||
|
||
---
|
||
|
||
### Step 2: Open Convert Module
|
||
|
||
Click the **"Convert"** tile (violet color, top-left area)
|
||
|
||
You should see:
|
||
- Video preview area
|
||
- Format selector
|
||
- Quality selector
|
||
- "Add to Queue" button
|
||
- Queue access button
|
||
|
||
✅ **Expected:** Convert module loads without errors
|
||
|
||
---
|
||
|
||
### Step 3: Load Test Video
|
||
|
||
In the Convert module, you should see options to:
|
||
- Drag & drop a file, OR
|
||
- Use file browser button
|
||
|
||
**Load:** `/tmp/videotools_test/test_video.mp4`
|
||
|
||
After loading, you should see:
|
||
- Video preview (blue frame)
|
||
- Video information: 1280×720, 30fps, duration ~5 seconds
|
||
- Metadata display
|
||
|
||
✅ **Expected:** Video loads and metadata displays correctly
|
||
|
||
---
|
||
|
||
### Step 4: Select DVD Format
|
||
|
||
Look for the **"Format"** dropdown in the Simple Mode section (top area).
|
||
|
||
Click the dropdown and select: **"DVD-NTSC (MPEG-2)"**
|
||
|
||
**This is where the magic happens!**
|
||
|
||
✅ **Expected Results After Selecting DVD-NTSC:**
|
||
|
||
You should immediately see:
|
||
1. **DVD Aspect Ratio selector appears** with options: 4:3 or 16:9 (default 16:9)
|
||
2. **DVD info label shows:**
|
||
```
|
||
NTSC: 720×480 @ 29.97fps, MPEG-2, AC-3 Stereo 48kHz
|
||
Bitrate: 6000k (default), 9000k (max PS2-safe)
|
||
Compatible with DVDStyler, PS2, standalone DVD players
|
||
```
|
||
3. **Output filename hint updates** to show: `.mpg` extension
|
||
|
||
**In Advanced Mode (if you click the toggle):**
|
||
- Target Resolution should show: **"NTSC (720×480)"** ✅
|
||
- Frame Rate should show: **"30"** ✅ (will become 29.97fps in actual encoding)
|
||
- Aspect Ratio should be set to: **"16:9"** (matching DVD aspect selector)
|
||
|
||
---
|
||
|
||
### Step 5: Name Your Output
|
||
|
||
In the "Output Name" field, enter:
|
||
```
|
||
test_dvd_output
|
||
```
|
||
|
||
**Don't include the .mpg extension** - VideoTools adds it automatically.
|
||
|
||
✅ **Expected:** Output hint shows "Output file: test_dvd_output.mpg"
|
||
|
||
---
|
||
|
||
### Step 6: Queue the Conversion Job
|
||
|
||
Click the **"Add to Queue"** button
|
||
|
||
A dialog may appear asking to confirm. Click OK/Proceed.
|
||
|
||
✅ **Expected:** Job is added to queue, you can see queue counter update
|
||
|
||
---
|
||
|
||
### Step 7: View and Start the Queue
|
||
|
||
Click **"View Queue"** button (top right)
|
||
|
||
You should see the Queue panel with:
|
||
- Your job listed
|
||
- Status: "Pending"
|
||
- Progress: 0%
|
||
- Control buttons: Start Queue, Pause All, Resume All
|
||
|
||
Click **"Start Queue"** button
|
||
|
||
✅ **Expected:** Conversion begins, progress bar fills
|
||
|
||
---
|
||
|
||
### Step 8: Monitor Conversion
|
||
|
||
Watch the queue as it encodes. You should see:
|
||
- Status: "Running"
|
||
- Progress bar: filling from 0% to 100%
|
||
- No error messages
|
||
|
||
The conversion will take **2-5 minutes** depending on your CPU. With a 5-second test video, it should be relatively quick.
|
||
|
||
✅ **Expected:** Conversion completes with Status: "Completed"
|
||
|
||
---
|
||
|
||
### Step 9: Verify Output File
|
||
|
||
After conversion completes, check the output:
|
||
|
||
```bash
|
||
ls -lh test_dvd_output.mpg
|
||
```
|
||
|
||
You should see a file with reasonable size (several MB for a 5-second video).
|
||
|
||
**Check Properties:**
|
||
```bash
|
||
ffprobe test_dvd_output.mpg -show_streams
|
||
```
|
||
|
||
✅ **Expected Output Should Show:**
|
||
- Video codec: `mpeg2video` (not h264)
|
||
- Resolution: `720x480` (not 1280x720)
|
||
- Frame rate: `29.97` or `30000/1001` (NTSC standard)
|
||
- Audio codec: `ac3` (Dolby Digital)
|
||
- Audio sample rate: `48000` Hz (48 kHz)
|
||
- Audio channels: 2 (stereo)
|
||
|
||
---
|
||
|
||
### Step 10: DVDStyler Compatibility Check
|
||
|
||
If you have DVDStyler installed:
|
||
|
||
```bash
|
||
which dvdstyler
|
||
```
|
||
|
||
**If installed:**
|
||
1. Open DVDStyler
|
||
2. Create a new project
|
||
3. Try to import the `.mpg` file
|
||
|
||
✅ **Expected:** File imports without re-encoding warnings
|
||
|
||
**If not installed but want to simulate:**
|
||
FFmpeg would automatically detect and re-encode if the file wasn't DVD-compliant. The fact that our conversion worked means it IS compliant.
|
||
|
||
---
|
||
|
||
## Success Criteria Checklist
|
||
|
||
After completing all steps, verify:
|
||
|
||
- [ ] VideoTools opens without errors
|
||
- [ ] Convert module loads
|
||
- [ ] Test video loads correctly (1280x720, 30fps shown)
|
||
- [ ] Format dropdown works
|
||
- [ ] DVD-NTSC format selects successfully
|
||
- [ ] DVD Aspect Ratio selector appears
|
||
- [ ] DVD info text displays correctly
|
||
- [ ] Target Resolution auto-sets to "NTSC (720×480)" (Advanced Mode)
|
||
- [ ] Frame Rate auto-sets to "30" (Advanced Mode)
|
||
- [ ] Job queues without errors
|
||
- [ ] Conversion starts and shows progress
|
||
- [ ] Conversion completes successfully
|
||
- [ ] Output file exists (test_dvd_output.mpg)
|
||
- [ ] Output file has correct codec (mpeg2video)
|
||
- [ ] Output resolution is 720×480
|
||
- [ ] Output framerate is 29.97fps
|
||
- [ ] Audio is AC-3 stereo at 48 kHz
|
||
- [ ] File is DVDStyler-compatible (no re-encoding warnings)
|
||
|
||
---
|
||
|
||
## Troubleshooting
|
||
|
||
### Video Doesn't Load
|
||
- Check file path: `/tmp/videotools_test/test_video.mp4`
|
||
- Verify FFmpeg is installed: `ffmpeg -version`
|
||
- Check file exists: `ls -lh /tmp/videotools_test/test_video.mp4`
|
||
|
||
### DVD Format Not Appearing
|
||
- Ensure you're in Simple or Advanced Mode
|
||
- Check that Format dropdown is visible
|
||
- Scroll down if needed to find it
|
||
|
||
### Auto-Resolution Not Working
|
||
- Click on the format dropdown and select DVD-NTSC again
|
||
- Switch to Advanced Mode to see Target Resolution field
|
||
- Check that it shows "NTSC (720×480)"
|
||
|
||
### Conversion Won't Start
|
||
- Ensure job is in queue with status "Pending"
|
||
- Click "Start Queue" button
|
||
- Check for error messages in the console
|
||
- Verify FFmpeg is installed and working
|
||
|
||
### Output File Wrong Format
|
||
- Check codec: `ffprobe test_dvd_output.mpg | grep codec`
|
||
- Should show `mpeg2video` for video and `ac3` for audio
|
||
- If not, conversion didn't run with DVD settings
|
||
|
||
### DVDStyler Shows Re-encoding Warning
|
||
- This means our MPEG-2 encoding didn't match specs
|
||
- Check framerate, resolution, codec, bitrate
|
||
- May need to adjust encoder settings
|
||
|
||
---
|
||
|
||
## Test Results Template
|
||
|
||
Use this template to document your results:
|
||
|
||
```
|
||
TEST DATE: [date]
|
||
SYSTEM: [OS/CPU]
|
||
GO VERSION: [from: go version]
|
||
FFMPEG VERSION: [from: ffmpeg -version]
|
||
|
||
INPUT VIDEO:
|
||
- Path: /tmp/videotools_test/test_video.mp4
|
||
- Codec: h264
|
||
- Resolution: 1280x720
|
||
- Framerate: 30fps
|
||
- Duration: 5 seconds
|
||
|
||
VIDEOTOOLS TEST:
|
||
- Format selected: DVD-NTSC (MPEG-2)
|
||
- DVD Aspect Ratio: 16:9
|
||
- Output name: test_dvd_output
|
||
- Queue status: [pending/running/completed]
|
||
- Conversion status: [success/failed/error]
|
||
|
||
OUTPUT VIDEO:
|
||
- Path: test_dvd_output.mpg
|
||
- File size: [MB]
|
||
- Video codec: [mpeg2video?]
|
||
- Resolution: [720x480?]
|
||
- Framerate: [29.97?]
|
||
- Audio codec: [ac3?]
|
||
- Audio channels: [stereo?]
|
||
- Audio sample rate: [48000?]
|
||
|
||
DVDStyler COMPATIBILITY:
|
||
- Tested: [yes/no]
|
||
- Result: [success/re-encoding needed/failed]
|
||
|
||
OVERALL RESULT: [PASS/FAIL]
|
||
```
|
||
|
||
---
|
||
|
||
## Next Steps
|
||
|
||
After successful conversion:
|
||
|
||
1. **Optional: Test PAL Format**
|
||
- Repeat with DVD-PAL format
|
||
- Should auto-set to 720×576 @ 25fps
|
||
- Audio still AC-3 @ 48kHz
|
||
|
||
2. **Optional: Test Queue Features**
|
||
- Add multiple videos
|
||
- Test Pause All / Resume All
|
||
- Test job reordering
|
||
|
||
3. **Optional: Create Real DVD**
|
||
- Import .mpg into DVDStyler
|
||
- Add menus and chapters
|
||
- Burn to physical DVD disc
|
||
|
||
---
|
||
|
||
## Commands Reference
|
||
|
||
### Create Test Video (if needed)
|
||
```bash
|
||
ffmpeg -f lavfi -i "color=c=blue:s=1280x720:d=5,fps=30" -f lavfi -i "sine=f=1000:d=5" \
|
||
-c:v libx264 -c:a aac -y /tmp/videotools_test/test_video.mp4
|
||
```
|
||
|
||
### Check Input Video
|
||
```bash
|
||
ffprobe /tmp/videotools_test/test_video.mp4 -show_streams
|
||
```
|
||
|
||
### Check Output Video
|
||
```bash
|
||
ffprobe test_dvd_output.mpg -show_streams
|
||
```
|
||
|
||
### Get Quick Summary
|
||
```bash
|
||
ffprobe test_dvd_output.mpg -v error \
|
||
-select_streams v:0 -show_entries stream=codec_name,width,height,r_frame_rate \
|
||
-of default=noprint_wrappers=1:nokey=1
|
||
```
|
||
|
||
### Verify DVD Compliance
|
||
```bash
|
||
ffprobe test_dvd_output.mpg -v error \
|
||
-select_streams a:0 -show_entries stream=codec_name,sample_rate,channels \
|
||
-of default=noprint_wrappers=1:nokey=1
|
||
```
|
||
|
||
---
|
||
|
||
**Good luck with your testing! Let me know your results.** 🎬
|
||
|