Я использую AVMutableVideoComposition (ресурс: applyCIFiltersWithHandler:) , чтобы применить CIFilter для каждого кадра. Вот мой код:
let mainTrackAsset = AVAsset(url: url)
let mainCompositionWithFilter = AVMutableVideoComposition(asset: mainTrackAsset) { request in
let source = request.sourceImage
}
Он отлично работает с видео, записанным с устройства, но если я сохраню видео, например, с Google Диска, source
будет пустым CIImage fill [0 0 0 1 devicergb]
extent=[infinite][0 0 1 1]
opaque
Единственное различие между записанным и сохраненным из веб-видео тем, что первый элемент mainTrackAsset.tracks
имеет тип носителя video
для записанного и audio
для сохраненного из Интернета
Это ошибка в AVFoundation или я не понял как это работает? Есть ли возможность переставить индексы mainTrackAsset.tracks
?