gpt4 book ai didi

ios5 - 从 CVPixelBufferRef 创建的 CIImage 在 GLKView 中旋转和缩小

转载 作者:行者123 更新时间:2023-12-04 15:24:02 26 4
gpt4 key购买 nike

我正在尝试使用 AVCaptureSession 抓取视频,在回调中处理视频(最终),然后将结果呈现到我的 GLKView 中。下面的代码有效,但我的 GLKView 中的图像旋转了 90 度并缩小了 50%。

glContext 使用 [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2] 创建;

我的 coreImageContext 是用 [CIContext contextWithEAGLContext:glContext] 创建的;

- (void)captureOutput:(AVCaptureOutput *)captureOutput 
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
{
// process the image
CVPixelBufferRef pixelBuffer = (CVPixelBufferRef)CMSampleBufferGetImageBuffer(sampleBuffer);
CIImage *image = [CIImage imageWithCVPixelBuffer:pixelBuffer];

// display it (using main thread)
dispatch_async( dispatch_get_main_queue(), ^{
// running synchronously on the main thread now
[self.coreImageContext drawImage:image inRect:self.view.bounds fromRect:[image extent]];
[self.glContext presentRenderbuffer:GL_RENDERBUFFER];
});
}

插入代码来执行和仿射变换似乎效率低下。我是否缺少防止旋转和缩放的设置调用或参数?

最佳答案

AVFoundation 的视频预览 View 使用图形硬件对图像进行旋转。后置摄像头的原始拍摄方向是横向左侧。它是前置摄像头的风景。当您录制视频时,AVFoundation 将在 MOV/MP4 的标题中放置一个转换,以向播放器指示视频的正确方向。如果您只是将图像从 MOV/MP4 中拉出,它们将处于原始捕获方向。查看顶部帖子中链接的两个示例程序 SO Post

关于ios5 - 从 CVPixelBufferRef 创建的 CIImage 在 GLKView 中旋转和缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8528469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com