9得票1回答
CVPixelBuffer与CVImageBuffer,以及缓冲区总体概述

" CMSampleBufferGetImageBuffer 返回的 CVPixelBuffer 有什么区别?我只想获取图像平面(RGBA),但我无法从CVImageBuffer中获取此信息。我正在使用Swift。 谢谢。"

9得票1回答
从CVPixelBuffer创建一个CMSampleBuffer。

我从ARSessionDelegate获取了一个CVPixelBuffer: func session(_ session: ARSession, didUpdate frame: ARFrame) { frame.capturedImage // CVPixelBufferRef ...

8得票4回答
在录制视频时将动态文本渲染到CVPixelBufferRef上

我正在使用AVCaptureVideoDataOutput和AVCaptureAudioDataOutput记录视频和音频,在captureOutput:didOutputSampleBuffer:fromConnection:代理方法中,我想将文本绘制到从视频连接接收到的每个单独的样本缓冲区...

8得票2回答
CVMetalTextureGetTexture的所有权是什么意思?

我正在尝试弄清楚函数 CVMetalTextureGetTexture 的所有权是如何工作的: CVMetalTextureRef textureRef; // ... textureRef is created id<MTLTexture> texture = CVMetalT...

8得票1回答
如何选择与AVAssetReader一起使用的像素格式类型(kCVPixelBufferPixelFormatTypeKey)?

我们正在使用AVAssetReader和AVAssetWriter,并且类似于Video Encoding using AVAssetWriter - CRASHES中所述的方式读取从照片库/资源库获取的视频,然后将其写入不同比特率以减小其大小(以便进行网络上传)。 让我们成功的技巧是在AV...

8得票3回答
使用AVAssetExportSession旋转AVAsset

我正在尝试使用AVAssetExportSession将视频旋转到正确的方向,但我总是收到以下错误: Error Domain=AVFoundationErrorDomain Code=-11841 "The operation couldn’t be completed. (AVFound...

8得票1回答
理解核心视频CVPixelBufferPool和CVOpenGLESTextureCache的语义

我正在重构我的iOS基于OpenGL的渲染管道。我的管道由许多渲染步骤组成,因此我需要许多中间纹理来进行渲染和读取。这些纹理具有各种类型(无符号字节和半浮点数),可能具有不同数量的通道。 为了节省内存和分配工作,我回收了之前在管道中使用过但不再需要的纹理。在以前的实现中,我自己完成了这个操作...

7得票1回答
CVMetalTextureCacheCreateTextureFromImage始终返回null。

我正在尝试通过MetalKit渲染I420(YCbCr planner)。 大多数示例都使用来自相机的CMSampleBuffer, 但我的目标是使用给定的I420字节。 我做了这样的事情: let data = NSMutableData(contentsOfURL: NSBundl...

7得票1回答
如何使用AVMediaTypeText实例化一个AVMutableCompositionTrack?

我正在尝试在创建的视频的某个部分放置一些文字。我意识到可以使用CALayers上的文本层覆盖整个视频长度,但是如何仅在视频的一部分上使用呢?经过一些研究,我发现可以创建一个AVMutableCompositionTrack类型为AVMediaTypeText的轨道,这似乎可以解决问题;然而,我...

7得票1回答
使用OpenGL ES纹理缓存而不是glReadPixels获取纹理数据

在iOS 5中,引入了OpenGL ES纹理缓存,为相机视频数据提供了一种直接的方式,无需复制缓冲区即可连接到OpenGL。在WWDC 2011年高级OpenGL ES会话414中简要介绍了纹理缓存。 我发现了一篇有趣的文章,它进一步滥用了这个概念,并通过简单地锁定纹理,然后直接访问缓冲区来...