问题标签 [cvpixelbuffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
501 浏览

ios - iOS 中的内存泄漏将图像转换为 CVPixelBufferRef

我正在尝试将图像转换为 CVPixelBufferRef 以便可以进一步使用,但几秒钟后我的应用程序崩溃了。我可以看到应用程序启动时使用的内存为 2mb,但仅在 15 到 20 秒后,它就达到了 300mb。我的功能是这个

我给这个函数一个 ImageRef

0 投票
1 回答
2646 浏览

ios - CVMetalTextureCacheCreateTextureFromImage 总是返回 null

我正在尝试通过 MetalKit 渲染 I420 (YCbCr planner)

大多数示例都使用来自 Camera 的 CMSampleBuffer,

但我的目标是使用给定的 I420 字节。

我做这样的事情:

基本上代码与其他示例几乎相同,但我自己创建了自己的 CVPixelBuffer。

我在创建 CVPixelBuffer 和 CVMetalTexture 时没有出错,

但它总是为 yTexture 返回 null。

如何创建正确的 CVPixelBuffer 并使用它进行渲染?

0 投票
1 回答
4086 浏览

swift - swift - CGImage 到 CVPixelBuffer

如何快速将 a 转换CGImage为 a CVPixelBuffer

我知道一些试图做相反的问题,以及一些客观的 C 答案,比如这个,但我无法让它们迅速工作。这是我最接近的:

(这不会编译,因为CVPixelBufferCreateWithBytes除了 UnsafeMutablePointer 并且CFDataGetBytePtr(dataFromImageDataProvider)UnsafePointer<UIint8>!

0 投票
1 回答
735 浏览

ios - 我想将 CIImage 转换为 UIImage 但失败了

我有一个格式为kCVPixelFormatType_420YpCbCr8BiPlanarFullRange(YCC420fN12) 的 CIImage,现在我想看看图像是什么样的,所以我将其转换为 UIImage 使用此方法:

当图像的格式是BGRA,但不是 for时NV12,它可以正常工作,控制台中的错误消息:

顺便说一句,ciimage 来自 CVPixelBufferRef,而 CVPixelBufferRef 来自 GL 纹理的地址。

现在,我该怎么办?

0 投票
1 回答
1066 浏览

uiimage - 使用 didOutputSampleBuffer 捕获图像 AVMetadataFaceObject:

我正在尝试捕捉面部区域。

这是我在didOutputMetadataObjects 中所做的:获取 AVMetadataFaceObject 并在didOutputSampleBuffer中处理它

didOutputMetadataObjects正确显示标记,我考虑偏航,滚动轴

什么可能是最好的方法,我只得到面部区域,同时我看到一个面部标记?

AVCaptureVideoDataOutputSampleBufferDelegate

0 投票
0 回答
592 浏览

ios - 无效数据字节/行:CGBitmapContextCreate:CGContextDrawImage:无效上下文 0x0

我正在尝试将图像数组转换为视频文件。在这个过程中,我必须从选定的图像中填充像素缓冲区。这是代码片段:

执行这些行后,我在 xcode 中收到以下消息: CGBitmapContextCreate: invalid data bytes/row: should be at least 13056 for 8 integer bits/component, 3 components, kCGImageAlphaPremultipliedFirst.CGContextDrawImage: invalid context 0x0。 调试后我得到以下值:

我应该怎么做才能获得有效的数据字节/行?控制台日志中指定的3 个组件是什么?我在stackoverflow中看到了类似的问题,但对我来说没有任何帮助。

0 投票
2 回答
1816 浏览

ios - CVPixelbuffer 中的平面是什么?

CVPixelBuffer对象中,有一个或多个平面。(参考)我们有方法来获取数字,高度,平面的基地址。

那么飞机究竟是什么?它是如何在 a 内部构造的CVPixelBuffer

样本:

0 投票
0 回答
450 浏览

ios - 如何使用 AVAssetWriter 同时创建多个 mp4 文件

我尝试在 iPhone 上使用 AVAssetWriter 将四个视频流保存为 .mp4。使用三个流,一切正常,但第 4 个 mp4 文件始终为空。

这是我的一段代码:

我在循环中调用此方法,并在每次运行时给出一个图像,该图像应写入四个 mp4 文件之一。最后调用的 AVAssetWriterInput 获取图像,但文件仍然为空。如果我更改调用顺序,最后调用的 AVAssetWriterInput 总是会留下一个空文件。

有什么想法吗?

0 投票
1 回答
1519 浏览

ios - 操作 CVPixelBufferRef 高度和宽度

我正在使用 GPUImage 库函数来操作 CVPixelbuffer 的高度和宽度。我正在纵向录制视频,当用户旋转设备时,我的屏幕会自行调整为横向模式。我希望横向框架适合屏幕。

例如:- 我以 320x568 的纵向模式开始视频,当我将设备转为横向时,我的帧是 568x320,我想适应 320x568。为了调整这个东西,我想操纵 CVPixelBuffer。但这会占用大量内存,最后我的应用程序崩溃了。

0 投票
2 回答
640 浏览

ios - 将 UIImages 转换为 CVPixelBufferRef 并返回会导致内存不断增加并最终崩溃

我正在从磁盘加载图像,将它们转换为CVPixelBufferRef,做一些事情,然后转换回UIImage以保存回磁盘。我试图确保我绝对释放所有必要的东西,但我的应用程序的内存使用量总是会增加,直到它崩溃。

以下是我使用的两种方法:

在实际应用中,我当然不只是保存完全相同的图像,而是从第一个图像创建新的像素缓冲区,然后保存所有这些图像。但是,即使对于这个简单的示例,也存在内存增加问题。

我一定错过了一些基本的东西,这让我发疯。