VideoTools/internal/convert
Stu Leak 71a282b828 Add Compare module and Target File Size encoding feature
This commit implements two new features:

1. Compare Module:
   - New UI module for side-by-side video comparison
   - Loads two video files and displays detailed metadata comparison
   - Shows format, resolution, codecs, bitrates, frame rate, color info, etc.
   - Accessible via GUI module button or CLI: videotools compare <file1> <file2>
   - Added formatBitrate() helper function for consistent bitrate display

2. Target File Size Encoding Mode:
   - New bitrate mode "Target Size" for convert module
   - Allows users to specify desired output file size (e.g., "25MB", "100MB", "8MB")
   - Automatically calculates required video bitrate based on:
     * Target file size
     * Video duration
     * Audio bitrate
     * Container overhead (3% reserved)
   - Implemented ParseFileSize() to parse size strings (KB, MB, GB)
   - Implemented CalculateBitrateForTargetSize() for bitrate calculation
   - Works in both GUI convert view and job queue execution

Additional changes:
- Updated printUsage() to include compare command
- Added compare button to module grid with pink color
- Added compareFile1 and compareFile2 to appState
- Consistent "Target Size" naming throughout (UI and code)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 20:14:31 -05:00
..
dvd_regions.go Implement DVD-NTSC encoding support with multi-region capabilities 2025-11-29 19:30:05 -05:00
dvd.go Implement DVD-NTSC encoding support with multi-region capabilities 2025-11-29 19:30:05 -05:00
ffmpeg.go Add target file size feature and fix multiple encoding issues 2025-12-03 10:00:14 -05:00
presets.go Implement DVD-NTSC encoding support with multi-region capabilities 2025-11-29 19:30:05 -05:00
types.go Add Compare module and Target File Size encoding feature 2025-12-03 20:14:31 -05:00