AVPlayer直播视频截图

创建播放器和输出

- (void)viewDidLoad {
    [super viewDidLoad];

    NSMutableString *filepath = [[NSMutableString alloc]initWithString:[NSString stringWithFormat:@"http://119.44.6.100:8011/live/ppfuns_cctv1.m3u8"]];
    
   // NSString *filepath = @"http://hls.quanmin.tv/live/44397/playlist.m3u8";
    
    //NSString *filepath = [[NSBundle mainBundle]pathForResource:@"hehe" ofType:@"mp4"];
    NSURL *url = [NSURL URLWithString:filepath];
    self.playerItem = [AVPlayerItem playerItemWithURL:url];
    self.PlayerItemVideoOutput = [[AVPlayerItemVideoOutput alloc] init];
    [self.playerItem addOutput:self.PlayerItemVideoOutput];

    AVPlayer* player = [[AVPlayer alloc]initWithPlayerItem:self.playerItem];
    AVPlayerViewController *playerVC = [[AVPlayerViewController alloc]init];
    playerVC.showsPlaybackControls = NO;
    playerVC.player = player;
    //[playerVC setVideoGravity:AVLayerVideoGravityResize];
    playerVC.view.frame = CGRectMake(0, 20, ScreenWidth, ScreenWidth*9/16);
    [player play];
    [self.view addSubview:playerVC.view];
    
}

截图

- (IBAction)takeaphoto:(UIButton *)sender {

    CMTime itemTime = self.playerItem.currentTime;
    CVPixelBufferRef pixelBuffer = [self.PlayerItemVideoOutput copyPixelBufferForItemTime:itemTime itemTimeForDisplay:nil];
    NSLog(@"%@",pixelBuffer);//为空
       CIImage *ciImage = [CIImage imageWithCVPixelBuffer:pixelBuffer];
    CIContext *temporaryContext = [CIContext contextWithOptions:nil];
    CGImageRef videoImage = [temporaryContext
                             createCGImage:ciImage
                             fromRect:CGRectMake(0, 0,
                                                 CVPixelBufferGetWidth(pixelBuffer),
                                                 CVPixelBufferGetHeight(pixelBuffer))];
    UIImage *frameImg = [UIImage imageWithCGImage:videoImage];
    CGImageRelease(videoImage);
    self.imageView.image = frameImg;
}

你可能感兴趣的:(AVPlayer直播视频截图)