Проблема, которую я подтвердил, что мои исходные видео - HEVC. Я могу записать новое видео с моей камерой iPhone 15 Pro Max для «Высокой эффективности», экспортировать «немодифицированный оригинал» из фотографий на моем Mac, и убедиться, что кодек-это mpeg-h part2 /hevc (h.265).
Однако, когда я выбираю это точно так же видео в моем приложении с использованием phpickerviewcontroller. Это заставляет меня вернуться к общему типу фильма, который приводит к тому, что система предоставляет мне транскодированную версию видео H.264.
Код: Выделить всё
⚠️ 'public.hevc' not found. Falling back to generic movie type (likely H.264).
< /code>
Что я попробовал свой код явно проверяет для идентификатора public.HEVC в массиве зарегистрированных типовейдеров. Поскольку это не найдено, моя логика HEVC никогда не запускается.import UniformTypeIdentifiers
// ... inside the Coordinator class ...
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
picker.dismiss(animated: true)
guard let result = results.first else { return }
let itemProvider = result.itemProvider
let hevcIdentifier = "public.hevc"
let identifiers = itemProvider.registeredTypeIdentifiers
print("Available formats from itemProvider: \(identifiers)")
if identifiers.contains(hevcIdentifier) {
print("✅ HEVC format found, requesting raw data...")
itemProvider.loadDataRepresentation(forTypeIdentifier: hevcIdentifier) { (data, error) in
// ... process H.265 data ...
}
} else {
print("⚠️ 'public.hevc' not found. Falling back to generic movie type (likely H.264).")
itemProvider.loadFileRepresentation(forTypeIdentifier: UTType.movie.identifier) { url, error in
// ... process H.264 fallback ...
}
}
}
Мои вопросы
Есть ли конкретные условия (например, видео -Icer Под которым
PHPickerViewController< /code> itemprovider намеренно не предложит
public.hevc < /code> идентификатор типа, даже для видео HEVC? Процесс?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... hevc-video