创建播放器和输出
- (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;
}