我有一个需求:在播放视频流(m3u8)之前获取帧图像,作为视频预览显示。我使用AVPlayerItemVideoOutpu copyPixelBufferForItemTime:itemTimeForDisplay:仅当播放视频流以获取帧图像时,您还有其他方法吗?谢谢!!
这是我的代码:
CMTime itemTime = self.playerItem.currentTime;
CVPixelBufferRef pixelBuffer = [_playerItemVideoOutput copyPixelBufferForItemTime:itemTime itemTimeForDisplay:nil];
CIImage *ciImage = [CIImage imageWithCVPixelBuffer:pixelBuffer];
CIContext *temporaryContext = [CIContext contextWithOptions:nil];
CGImageRef videoImage = [temporaryContext
createCGImage:ciImage
fromRect:CGRectMake(0, 0,
CVPixelBufferGetWidth(pixelBuffer),
CVPixelBufferGetHeight(pixelBuffer))];
UIImage *uiImage = [UIImage imageWithCGImage:videoImage];
CGImageRelease(videoImage);
NSLog(@"uiImage?%@", uiImage);
Run Code Online (Sandbox Code Playgroud)