Я пытаюсь сделать что-то подобное при экспорте видео в библиотеку фотографий пользователя.
![Something Like this](https://i.stack.imgur.com/pZMCZ.jpg)
Однако кажется, что применение Маска CAShapeLayer выполняется на слое путем установки animationTool в AVMutableVideoComposition . Проблема в том, что, похоже, нет никакого способа настроить несколько слоев видео, где каждый слой содержит только одно видео для animationTool для работы, чтобы маска применялась ко всему или ничего .
Я могу расположить видео по своему усмотрению, используя AVMutableVideoCompositionLayerInstruction для каждого видео, что замечательно, однако я не знаю ни одного преобразования, которое позволило бы мне добиться получения одно из видео в форме, похожей на круг, поэтому оно выглядит как на изображении ниже.
Я могу настроить инструмент анимации для работы на двух слоях, например:
videoComposition.animationTool = AVVideoCompositionCoreAnimationTool(postProcessingAsVideoLayers: [firstCALayer, secondCALayer], in: outputLayer)
Но это добавляет оба видео для каждого слоя, вместо одного видео в качестве фона в одном слое и другого видео в качестве видео внутри слоя PIP, у него есть оба видео в фоновом слое и оба видео в слое pip.
Возможно ли это вообще сделать с AVFoundation, или мне нужно будет попытаться выяснить, как это сделать в Metal? Кажется, ключом было бы как-то поместить каждое видео в свой CALayer , но я не смог понять, как это сделать.