下記コードを参考に動画にCIFilterをかけてAVVideoCompositionを作成しました。
swift
1 2let playerItem = AVPlayerItem(asset: asset) 3let filter = CIFilter(name: "CIGaussianBlur")! 4let composition = AVVideoComposition(asset: asset, applyingCIFiltersWithHandler: { request in 5 6 // Clamp to avoid blurring transparent pixels at the image edges 7 let source = request.sourceImage.imageByClampingToExtent() 8 filter.setValue(source, forKey: kCIInputImageKey) 9 10 // Vary filter parameters based on video timing 11 let seconds = CMTimeGetSeconds(request.compositionTime) 12 filter.setValue(seconds * 10.0, forKey: kCIInputRadiusKey) 13 14 // Crop the blurred output to the bounds of the original image 15 let output = filter.outputImage!.imageByCroppingToRect(request.sourceImage.extent) 16 17 // Provide the filter output to the composition 18 request.finishWithImage(output, context: nil) 19}) 20 21player = AVPlayer(playerItem: playerItem) 22playerItem.videoComposition = composition 23playerLayer.player = player 24player.play() 25
AVMutableVideoCompositionの場合はrenderSizeとinstructionsを変更して動画の向きを回転させることができたのですが、AVVideoCompositionの場合、get-only propertyのためrenderSizeとinstructionsを変更することができません。
何かいい方法があれば教えてください。
現在横向きに表示されている動画を縦方向にしたいです。
回答1件
あなたの回答
tips
プレビュー