From 8d2ad149c14edd614dc49a6c4fd044dcf2b1636b Mon Sep 17 00:00:00 2001 From: sjhddh Date: Sun, 12 Apr 2026 01:24:50 +0200 Subject: [PATCH] fix: use hvc1 codec tag for HEVC in MP4/MOV for macOS compatibility ffmpeg writes the hev1 codec tag by default for HEVC streams, but Apple's AVFoundation (Finder, QuickLook, QuickTime, Photos) only recognizes hvc1. This causes compressed HEVC videos to have no thumbnails and fail QuickLook preview on macOS. Appends -tag:v:0 hvc1 when the output codec is HEVC and the container is MP4 or MOV. Zero-cost metadata-only change with no impact on quality, file size, or encoding speed. Fixes #122 --- src-tauri/src/core/ffmpeg.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src-tauri/src/core/ffmpeg.rs b/src-tauri/src/core/ffmpeg.rs index 36be33b..abbd843 100644 --- a/src-tauri/src/core/ffmpeg.rs +++ b/src-tauri/src/core/ffmpeg.rs @@ -260,6 +260,15 @@ impl FFMPEG { }; cmd_args.extend_from_slice(&["-c:v:0", output_codec.as_str()]); + // For HEVC codecs in MP4/MOV containers, use hvc1 tag for Apple compatibility. + // By default ffmpeg writes hev1, which macOS Finder/QuickLook/QuickTime don't recognize. + let needs_hvc1_tag = (output_codec.contains("265") + || output_codec.contains("hevc")) + && matches!(convert_to_extension, "mp4" | "mov"); + if needs_hvc1_tag { + cmd_args.extend_from_slice(&["-tag:v:0", "hvc1"]); + } + // Quality let compression_quality: String = { let default_crf: u16 = 28;