From eb349f8365811d27e790b937b42cb290a19a7e5d Mon Sep 17 00:00:00 2001 From: Stu Leak Date: Mon, 8 Dec 2025 16:02:53 -0500 Subject: [PATCH] Add metadata map to VideoSource and add MP4 H.265 preset --- internal/convert/presets.go | 1 + internal/convert/types.go | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/convert/presets.go b/internal/convert/presets.go index 5317e63..70a4a6a 100644 --- a/internal/convert/presets.go +++ b/internal/convert/presets.go @@ -3,6 +3,7 @@ package convert // FormatOptions contains all available output format presets var FormatOptions = []FormatOption{ {Label: "MP4 (H.264)", Ext: ".mp4", VideoCodec: "libx264"}, + {Label: "MP4 (H.265)", Ext: ".mp4", VideoCodec: "libx265"}, {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"}, diff --git a/internal/convert/types.go b/internal/convert/types.go index 4d9180a..e61ad5f 100644 --- a/internal/convert/types.go +++ b/internal/convert/types.go @@ -77,8 +77,8 @@ type VideoSource struct { Duration float64 VideoCodec string AudioCodec string - Bitrate int // Video bitrate in bits per second - AudioBitrate int // Audio bitrate in bits per second + Bitrate int // Video bitrate in bits per second + AudioBitrate int // Audio bitrate in bits per second FrameRate float64 PixelFormat string AudioRate int @@ -94,6 +94,7 @@ type VideoSource struct { GOPSize int // GOP size / keyframe interval HasChapters bool // Whether file has embedded chapters HasMetadata bool // Whether file has title/copyright/etc metadata + Metadata map[string]string } // DurationString returns a human-readable duration string (HH:MM:SS or MM:SS)