Применить фильтр PhotoEffectNoir к воспроизведению видео с помощью модуля PBJVideoPlayer в swift

#ios #swift #avfoundation #pbjvision

#iOS #swift #avfoundation #pbjvision

Вопрос:

Я пытаюсь добавить черно-белый эффект к воспроизводимому видео, в котором используется модуль PBJVideoPlayer в swift. Я настроил его так, чтобы пользователь мог нажать кнопку, чтобы применить фильтр. Я полагаю, что моя проблема возникает из-за того, что я не уверен, каким будет аналог AVVideoComposition для модуля. Любая информация будет оценена.

 @IBAction func filterTapped(sender: UIButton) {


    switch self.media! {
    case .Photo(let image): self.blackAndWhiteFilterForImage(image)

    case .Video(let url): self.createBlackAndWhiteFilterForVideo(url)

    }




}


func createBlackAndWhiteFilterForVideo(url: NSURL){

        //Bamp;W Filter for Video

        let asset = AVAsset(URL: url)
        let filter = CIFilter(name: "CIPhotoEffectNoir")!
        let composition = AVVideoComposition(asset: asset, applyingCIFiltersWithHandler: { request in

            // Clamp to avoid blurring transparent pixels at the image edges
            let source = request.sourceImage.imageByClampingToExtent()
            filter.setValue(source, forKey: kCIInputImageKey)

            // Vary filter parameters based on video timing
            let seconds = CMTimeGetSeconds(request.compositionTime)
            filter.setValue(seconds * 10.0, forKey: kCIInputRadiusKey)

            // Crop the blurred output to the bounds of the original image
            let output = filter.outputImage!.imageByCroppingToRect(request.sourceImage.extent)

            // Provide the filter output to the composition
            request.finishWithImage(output, context: nil)


        })
       //Everything below this code is where I am unsure how to proceed 
        let playerItem = playerController.asset
    print(playerItem)

    /*

        playerItem.comp

        let player = AVPlayer(playerItem: playerItem)


        player.play()

    */


}
 

Ответ №1:

У меня были проблемы с применением любого из CIPhotoEffect s к видео. Другие фильтры, похоже, работают просто отлично.