Как удалить AVMetadata из AVExportSession - PullRequest
0 голосов
/ 03 июля 2018

Я немного редактирую видео в swift 4 , читаю видео с AVAsset() и затем использую AVExportSession для экспорта результата. Все отлично работает, кроме одной вещи: получившееся видео сохраняет метаданные оригинального видео. Эти метаданные включают (например) время и место, где было снято видео. Я видел, что AVExportSession имеет свойство metadata:[AVMetadataItem], но я не знаю, как его использовать. Я установил его на nil, и он не работал, он все еще сохранял старые метаданные. Я прочитал документацию Apple о том, что вы не создаете экземпляры и не можете изменять элемент метаданных, так как я могу это сделать? как я могу стереть эти метаданные или записать новые сгенерированные метаданные в него? Существует много информации о чтении метаданных, но не так много о ее написании.

Заранее спасибо.

Дополнительные ссылки https://developer.apple.com/documentation/avfoundation/avassetexportsession

1 Ответ

0 голосов
/ 04 июля 2018

Вы можете фильтровать метаданные с помощью AVMetadataItemFilter.forSharing(). Из спецификации: Removes user-identifying metadata items, such as location information and leaves only metadata releated to commerce or playback itself. (см. https://developer.apple.com/documentation/avfoundation/avmetadataitemfilter/1387905-forsharing)

Просто добавьте его в сеанс экспорта:

let exportSession = AVExportSession() // choose your appropriate init
exportSession.metadataItemFilter = AVMetadataItemFilter.forSharing()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...