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

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


person Clay Bridges    schedule 10.09.2015    source источник


Ответы (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, поделитесь им как обычной фотографией и покажите пользователю соответствующее указание.

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

person Sam0711er    schedule 10.09.2015

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

  1. JPEG; это должно иметь запись метаданных для kCGImagePropertyMakerAppleDictionary с [17 : assetIdentifier] (17 – это Apple Ключ идентификатора актива Maker Note).
  2. 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 using AVAsset you can get this from asset.metadataForFormat(AVMetadataFormatQuickTimeMetadata)
    • Отслеживание метаданных по времени с ["com.apple.quicktime.still-image-time" : 0xFF]; Фактическое время неподвижного изображения совпадает с отметкой времени презентации для этого элемента метаданных. Полезная нагрузка выглядит как один 0xFF байт (он же -1) и может быть проигнорирована. Если вы используете AVAssetReader, вы можете использовать CMSampleBufferGetOutputPresentationTimeStamp, чтобы получить это время.

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

person russbishop    schedule 09.02.2016
comment
Реализацию записи таких файлов можно найти здесь: github.com/genadyo/LivePhotoDemo - person jtbandes; 21.10.2016
comment
Это все еще имеет место в iOS 11 при создании файлов HEIC, или часть фильма заключена в тот же файл .heic, что и часть фотографии? - person jl6; 05.10.2017
comment
Таким образом, сам файл JPEG не содержит видео, в отличие от Android Motion Photo, где JPG содержит видео в том же файле. Правильно ли я понимаю? - person Flimm; 13.05.2020

Помимо документации, Live Photos состоят из 2 ресурсов: изображения и mov (файл фильма в формате QuickTime). Таким образом, каждая Live Photo имеет 2 «настоящих» файла, связанных оболочкой типа Live Photo.

person MobileVet    schedule 10.10.2015

Live Photos — это на самом деле два файла. Исходное изображение в формате JPEG и видео в формате Full HD.

person dongkang    schedule 17.12.2015

Унифицированный идентификатор типа (UTI) для формата kUTTypeLivePhoto/com.apple.live-photo

@available(OSX 10.12, *)
public let kUTTypeLivePhoto: CFString

/*
 *
 *  kUTTypeLivePhoto
 *
 *    Live Photo
 *
 *    UTI: com.apple.live-photo
 *
 *
 */
person pkamb    schedule 24.05.2017
comment
Чему соответствует kUTTypeLivePhoto? UTTypeCopyDeclaration(kUTTypeLivePhoto) говорит, что никому не соответствует. Это кажется немного странным. - person DawnSong; 27.02.2018
comment
Как это связано с com.apple.quicktime-movie? Охватывает ли com.apple.live-photo как неподвижное изображение, такое как png или jpeg, так и фильм? - person Chris Prince; 27.12.2020

некоторая дополнительная информация о живых фотографиях:

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