Формат файла Apple Live Photo

Apple представит Live Photo в iOS 9 / iPhone 6s. Где документирован формат файла?

6 ответов


здесь ссылке. В противном случае, вот текст:

Фотографии

Live Photos-это новая функция iOS 9, которая позволяет пользователям захватывать и пережить свои любимые моменты с более богатым контекстом, чем традиционные фото. Когда пользователь нажимает кнопку спуска затвора, приложение камеры захватывает гораздо больше контента вместе с обычной фотографией, в том числе аудио и дополнительные кадры до и после фото. При просмотре благодаря этим фотографиям пользователи могут взаимодействовать с ними и воспроизводить все захваченный контент, заставляющий фотографии оживать.

iOS 9.1 представляет API, которые позволяют приложениям включать воспроизведение Живые фотографии, а также экспортировать данные для обмена. Есть новые поддержка в рамках фотографий для извлечения объекта PHLivePhoto из Объект PHImageManager, который используется для представления всех данных, включает в себя живую фотографию. Вы можете использовать объект PHLivePhotoView (определенный в рамках PhotosUI) для отображения содержимого Живой фотографии. Представление PHLivePhotoView заботится о отображении изображения, обработке все взаимодействие с пользователем и применение визуальных процедур для воспроизведения содержание.

вы также можете использовать PHAssetResource для доступа к данным PHLivePhoto объект для целей совместного использования. Вы можете запросить объект PHLivePhoto для актив в библиотеке фотографий пользователя с помощью PHImageManager или UIImagePickerController. Если у вас есть расширение обмена, вы также можете получить объекты PHLivePhoto с помощью NSItemProvider. На принимающей стороне из общего ресурса можно воссоздать объект PHLivePhoto из набора файлы, первоначально экспортированные отправителем.

рекомендации по отображению живых фотографий

важно помнить, что живая фотография по-прежнему является фотографией. Если вам нужно отобразить живую фотографию в среда, которая не поддерживает PHLivePhotoView, рекомендуется что ты представьте его как обычную фотографию.

Не отображать дополнительные кадры и аудио Живой фотографии отдельно. Важно, чтобы содержание Живой фотографии было представлено в виде последовательный способ, использующий одинаковое визуальное лечение и взаимодействие модель во всех приложениях.

рекомендуется идентифицировать фотографию как живую фотографию путем размещения значок, предоставляемый методом класса PHLivePhotoView livePhotoBadgeImageWithOptions:PHLivePhotoBadgeOptionsOverContent в верхний левый угол фотографии.

обратите внимание, что нет поддержки для обеспечения визуального эффекта, который пользователи испытывают, как они проведите через фотографии в приложении Фотографии.

рекомендации по обмену живыми фотографиями

данные Живой фотографии экспортируется как набор файлов в объекте PHAssetResource. Набор файлы должны сохраняться как единое целое при их загрузке на сервер. При перестроении PHLivePhoto с этими файлы на стороне получателя, файлы проверяются; загрузка завершается неудачно, если файлы не поступают из тот же актив.

Если ваше приложение позволяет пользователям применять эффекты или откорректировать фотографии до разделяя его, обязательно применяйте одинаковые настройки ко всем кадрам Живая Фотография. В качестве альтернативы, если вы не поддерживаете настройку всего содержимое Живой фотографии, поделитесь ею как обычной фотографией и покажите соответствующее указание пользователю.

Если ваше приложение имеет UI для выбора фотографий для обмена, вы должны позволить пользователям воспроизведите все содержимое, чтобы они точно знали, что они такое разделение.При выборе фотографий для совместного использования в приложении пользователи также должны иметь возможность отключить живую фотографию, чтобы они могли опубликовать ее как традиционную фотография.


Живая фотография имеет два ресурса. Они связаны вместе с идентификатором актива (UUID в виде строки).

  1. JPEG; это должно иметь запись метаданных для kCGImagePropertyMakerAppleDictionary С [17 : assetIdentifier] (17-это ключ идентификатора актива Apple Maker Note).
  2. QuickTime MOV закодирован с H. 264 при соответствующей частоте кадров (12-15fps) и размере (1080p). Этот MOV должен иметь:
    • запись метаданных Quicktime верхнего уровня для ["com.apple.quicktime.content.identifier" : assetIdentifier]. При использовании AVAsset вы можете получить это от asset.metadataForFormat(AVMetadataFormatQuickTimeMetadata)
    • Timed метаданные трек с ["com.apple.quicktime.still-image-time" : 0xFF]; фактическое время неподвижного изображения соответствует метке времени представления для этого элемента метаданных. Полезная нагрузка, кажется, просто одна 0xFF byte (aka -1) и может быть проигнорирован. Если используется AVAssetReader можно использовать CMSampleBufferGetOutputPresentationTimeStamp чтобы получить на этот раз.

на assetIdentifier это то, что связывает два элемента вместе, а временная дорожка метаданных-это то, что сообщает системе, где находится неподвижное изображение во временной шкале фильма.


вне документации живые фотографии состоят из 2 ресурсов, изображения и mov (quicktime movie file). Поэтому каждая живая фотография 2-м файлов связанных с обертки текущий тип цены.


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
 *
 *
 */

дополнительная информация о live photos:

  1. согласен, это есть .расширение файла mov
  2. он сохранен в каталоге /var / mobile / media / DCIM / 100apple / alongside с jpg версии фото
  3. живые фотографии можно воспроизводить даже на устройстве без 3D touch (я могу воспроизвести его на моем ipad 2017 с помощью длительного нажатия на фотографию)
  4. он может воспроизводиться даже на старых телефонах (например, iphone 5) даже на iOS8 если вы установите PhotosLive tweak