VT_Player/internal/convert/presets.go
Stu Leak d45d16f89b Implement DVD-NTSC encoding support with multi-region capabilities
Add comprehensive DVD-Video encoding functionality:

- New internal/convert package with modular architecture
  - types.go: Core types (VideoSource, ConvertConfig, FormatOption)
  - ffmpeg.go: FFmpeg codec mapping and video probing
  - presets.go: Output format definitions
  - dvd.go: NTSC-specific DVD encoding and validation
  - dvd_regions.go: PAL, SECAM, and multi-region support

- New internal/app/dvd_adapter.go for main.go integration

Features implemented:
✓ DVD-NTSC preset (720×480@29.97fps, MPEG-2/AC-3)
✓ Multi-region support (NTSC, PAL, SECAM - all region-free)
✓ Comprehensive validation system with actionable warnings
✓ Automatic framerate conversion (23.976p, 24p, 30p, 60p)
✓ Audio resampling to 48 kHz
✓ Aspect ratio handling (4:3, 16:9, letterboxing)
✓ Interlacing detection and preservation
✓ DVDStyler-compatible output (no re-encoding)
✓ PS2-safe bitrate limits (max 9000 kbps)

Complete technical specifications and integration guide in:
- DVD_IMPLEMENTATION_SUMMARY.md

All packages compile without errors or warnings.
Ready for integration with existing queue and UI systems.

🤖 Generated with Claude Code
2025-11-29 19:30:05 -05:00

10 lines
373 B
Go

package convert
// FormatOptions contains all available output format presets
var FormatOptions = []FormatOption{
{Label: "MP4 (H.264)", Ext: ".mp4", VideoCodec: "libx264"},
{Label: "MKV (H.265)", Ext: ".mkv", VideoCodec: "libx265"},
{Label: "MOV (ProRes)", Ext: ".mov", VideoCodec: "prores_ks"},
{Label: "DVD-NTSC (MPEG-2)", Ext: ".mpg", VideoCodec: "mpeg2video"},
}