iOS - объединение нескольких видео с применением CIFilter - PullRequest
1 голос
/ 16 января 2020

Я хочу объединить два или более видео (хранящихся на диске) в один файл. Он отлично работал с AVAssetExportSession. Но следующая проблема - применить разные CIFilter для каждого видео. Для применения CIFilter для одного видео я использовал AVMutableVideoComposition(asset:applyingCIFiltersWithHandler:) Можно ли объединить две (и режимные) композиции AVMutableVideoComposition без сохранения каждого видео с фильтром на диске отдельно? Или я должен использовать AVAssetReader/Writer для этой цели?

1 Ответ

0 голосов
/ 16 января 2020

Да, это возможно. Однако, к сожалению, все немного сложнее. И вам нужно гораздо больше связующего кода.

Вы можете полностью настроить состав нескольких видео (и что происходит с отдельными кадрами ранее), внедрив собственный композитор, который реализует протокол AVVideoCompositing. Существует старый пример проекта от Apple , демонстрирующий весь процесс. Также есть этот вопрос и ответ на StackOverflow, к которому вы можете обратиться.

Основная идея c состоит в том, что вы реализуете свой фильтр и логику композиции c в startRequest(_:) метод вашего пользовательского композитора. Там вы будете иметь доступ к кадрам всех входных видео. Так что вы можете обрабатывать и составлять их по своему вкусу.

...