2013-03-10 45 views
1

有没有一种方法可以模糊在AVPlayerLayer中显示的内容?
内容是流的资产(M3U8),所以没有选项AVAssetReader等AVPlayerLayer的模糊内容

回答

0

尝试使用下一个解决方案来获得图像:

CIImage *snaphotImage = nil; 
AVPlayerItem *item = ((AVPlayerLayer*)view.layer).player.currentItem; 
if (item.status == AVPlayerItemStatusReadyToPlay) 
{ 
    AVURLAsset *asset = (AVURLAsset *)item.asset; 
    AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset]; 
    CGImageRef thumb = [imageGenerator copyCGImageAtTime:((AVPlayerLayer*)view.layer).player.currentTime 
               actualTime:NULL 
                error:NULL]; 
    snapshotImage = [CIImage imageWithCGImage:thumb]; 
    CGImageRelease(thumb); 
} 

,然后应用模糊它:

CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur" 
           keysAndValues:@"inputRadius", @9.0, 
              @"inputImage", snapshotImage, nil]; 
CIImage *resultImage = [filter outputImage]; 
UIImage *resultUIImage = [UIImage imageWithCIImage:resultImage]; 
+0

这并不回答这个问题。简单地模糊视频的单个快照。 – arielyz 2015-02-04 15:59:32