diff --git a/TEST_DVD_CONVERSION.md b/TEST_DVD_CONVERSION.md new file mode 100644 index 0000000..42dfb3c --- /dev/null +++ b/TEST_DVD_CONVERSION.md @@ -0,0 +1,357 @@ +# 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.** 🎬 +