Apple представит живое фото в iOS 9/iPhone 6s. Где задокументирован формат файла?
Формат файла Apple Live Photo
Ответы (6)
Вот ссылка< /а>. В противном случае вот текст:
Живые фото
Живые фотографии — это новая функция iOS 9, которая позволяет пользователям запечатлеть и пережить свои любимые моменты с более богатым контекстом, чем традиционные фотографии. Когда пользователь нажимает кнопку спуска затвора, приложение «Камера» захватывает гораздо больше контента вместе с обычной фотографией, включая звук и дополнительные кадры до и после фотографии. Просматривая эти фотографии, пользователи могут взаимодействовать с ними и воспроизводить весь захваченный контент, оживляя фотографии.
В iOS 9.1 представлены API-интерфейсы, которые позволяют приложениям включать воспроизведение Live Photos, а также экспортировать данные для совместного использования. В среде Photos появилась новая поддержка для извлечения объекта PHLivePhoto из объекта PHImageManager, который используется для представления всех данных, составляющих Live Photo. Вы можете использовать объект PHLivePhotoView (определенный в структуре PhotosUI) для отображения содержимого Live Photo. Представление PHLivePhotoView отвечает за отображение изображения, обработку всех действий пользователя и применение визуальных эффектов для воспроизведения содержимого.
Вы также можете использовать PHAssetResource для доступа к данным объекта PHLivePhoto для совместного использования. Вы можете запросить объект PHLivePhoto для актива в библиотеке фотографий пользователя, используя PHImageManager или UIImagePickerController. Если у вас есть расширение общего доступа, вы также можете получить объекты PHLivePhoto с помощью NSItemProvider. На принимающей стороне общего ресурса вы можете воссоздать объект PHLivePhoto из набора файлов, изначально экспортированных отправителем.
Рекомендации по показу живых фотографий
Важно помнить, что Live Photo — это все же фотография. Если вам нужно отобразить Live Photo в среде, которая не поддерживает PHLivePhotoView, рекомендуется представить его как обычную фотографию.
Не отображайте дополнительные кадры и звук Live Photo отдельно. Важно, чтобы содержимое Live Photo было представлено согласованным образом с использованием одной и той же модели визуальной обработки и взаимодействия во всех приложениях.
Рекомендуется идентифицировать фотографию как Live Photo, поместив значок, предоставленный методом класса PHLivePhotoView livePhotoBadgeImageWithOptions:PHLivePhotoBadgeOptionsOverContent, в верхний левый угол фотографии.
Обратите внимание, что поддержка визуального эффекта, с которым пользователи сталкиваются при пролистывании фотографий в приложении «Фотографии», не поддерживается.
Рекомендации по обмену живыми фотографиями
Данные Live Photo экспортируются в виде набора файлов в объекте PHAssetResource. Набор файлов должен быть сохранен как единое целое, когда вы загружаете их на сервер. Когда вы перестраиваете PHLivePhoto с этими файлами на стороне получателя, файлы проверяются; загрузка завершается ошибкой, если файлы не принадлежат одному ресурсу.
Если ваше приложение позволяет пользователям применять эффекты или корректировки к фотографии перед ее публикацией, обязательно примените одни и те же корректировки ко всем кадрам Live Photo. В качестве альтернативы, если вы не поддерживаете настройку всего содержимого Live Photo, поделитесь им как обычной фотографией и покажите пользователю соответствующее указание.
Если в вашем приложении есть пользовательский интерфейс для выбора фотографий для публикации, вы должны позволить пользователям воспроизводить все содержимое, чтобы они точно знали, чем они делятся. чтобы они могли опубликовать это как традиционную фотографию.
Живое фото имеет два ресурса. Они связаны вместе с идентификатором актива (UUID в виде строки).
- JPEG; это должно иметь запись метаданных для
kCGImagePropertyMakerAppleDictionary
с[17 : assetIdentifier]
(17 – это Apple Ключ идентификатора актива Maker Note). - A Quicktime MOV encoded with H.264 at the appropriate framerate (12-15fps) and size (1080p). This MOV must have:
- Top-level Quicktime Metadata entry for
["com.apple.quicktime.content.identifier" : assetIdentifier]
. If usingAVAsset
you can get this fromasset.metadataForFormat(AVMetadataFormatQuickTimeMetadata)
- Отслеживание метаданных по времени с
["com.apple.quicktime.still-image-time" : 0xFF]
; Фактическое время неподвижного изображения совпадает с отметкой времени презентации для этого элемента метаданных. Полезная нагрузка выглядит как один0xFF
байт (он же -1) и может быть проигнорирована. Если вы используетеAVAssetReader
, вы можете использоватьCMSampleBufferGetOutputPresentationTimeStamp
, чтобы получить это время.
- Top-level Quicktime Metadata entry for
assetIdentifier
— это то, что связывает два элемента вместе, а временная дорожка метаданных — это то, что сообщает системе, где неподвижное изображение находится на временной шкале фильма.
Помимо документации, Live Photos состоят из 2 ресурсов: изображения и mov (файл фильма в формате QuickTime). Таким образом, каждая Live Photo имеет 2 «настоящих» файла, связанных оболочкой типа Live Photo.
Live Photos — это на самом деле два файла. Исходное изображение в формате JPEG и видео в формате Full HD.
Унифицированный идентификатор типа (UTI) для формата kUTTypeLivePhoto
/com.apple.live-photo
@available(OSX 10.12, *)
public let kUTTypeLivePhoto: CFString
/*
*
* kUTTypeLivePhoto
*
* Live Photo
*
* UTI: com.apple.live-photo
*
*
*/
kUTTypeLivePhoto
? UTTypeCopyDeclaration(kUTTypeLivePhoto)
говорит, что никому не соответствует. Это кажется немного странным.
- person DawnSong; 27.02.2018
com.apple.quicktime-movie
? Охватывает ли com.apple.live-photo
как неподвижное изображение, такое как png или jpeg, так и фильм?
- person Chris Prince; 27.12.2020
некоторая дополнительная информация о живых фотографиях:
- согласен, у него расширение .mov
- он сохранен в каталоге /var/mobile/media/DCIM/100apple/ вместе с версией фотографии в формате jpg.
- живые фотографии можно воспроизводить даже на устройстве без 3D Touch (я могу воспроизвести их на своем iPad 2017, нажав и удерживая фотографию)
- в нее можно играть хоть на старых телефонах (таких как iphone 5) хоть на iOS8 если поставить твик PhotosLive