问题标签 [cmsamplebufferref]

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 回答
4002 浏览

uiimage - 如何将 CIImage 转换为 CMSampleBufferRef

我正在使用 AVCapturesession 录制视频我以 CMSamplbufferRef 的形式在 didrecive 样本缓冲区方法中接收。我已将其转换为 CIImage 并进行了一些更改,现在我想将该 CIImage 转换为 CMSampleBufferRef 任何人都可以帮助我,我很烦恼,但我没有在任何地方找到答案,我希望我能在这里找到它。

0 投票
1 回答
2677 浏览

ios - 将 NSData 转换为 CMSampleBufferRef

有什么方法可以从 NSData 创建 CMSampleBufferRef 吗?NSData 对象以前也是从 CMSampleBufferRef 构造的。我需要这种转换,因为我想保存使用 AVFoundation 从实时摄像机拍摄的 CMSampleBufferRef 帧(作为 NSData),然后能够使用 CMSampleBufferRef 帧(通过将 NSData 对象转换为 CMSampleBufferRef)来构建视频。

提前致谢...

0 投票
1 回答
4163 浏览

objective-c - 将 CVImageBufferRef YUV 420 转换为 cv::Mat RGB 并将其显示在 CALayer 中?

一旦我无法从相机成功获得任何与 YCbCr 420 不同的东西(https://stackoverflow.com/questions/19673770/objective-c-avcapturevideodataoutput-videosettings-how-to-identify-which-pix

所以,我的目标是在使用 opencv 处理之后,在 CALayer 中将这个 CMSampleBufferRef(YCbCr 420)显示为彩色帧(CGImageRef,使用 RGB 颜色模型)。

0 投票
1 回答
5396 浏览

ios7 - AVAssetWriter 始终处于 AVAssetWriterStatusFailed 状态

我的目标是实时在相机输入上应用一些过滤器。为了逐步做到这一点,我试图从带有 AVFoundation 的相机中获取输入,录制视频并将其保存在相机胶卷中。我试过了,但由于某种原因, AVAssetWriter 总是在 AVAssetWriterStatusFailed 中,所以 appendSampleBuffer: 方法总是失败。我的错误在哪里?有人可以帮助我吗?

谢谢!

视图控制器.h

视图控制器.m

0 投票
0 回答
1014 浏览

ios - 视频捕获:ios 6 中丢弃的帧

我正在使用 AVFoundation 框架使用 AVCaptureSession 对视频进行编码。

视频和音频在 ios7 (iPAD) 中成功录制并保存到相机胶卷中,但在我的 ios 6 (iPOD TOUCH) 中没有

以下代码将示例缓冲区添加到音频和视频 AVAssetWriterInput。

我得出的结论是,在 iPOD 即 iOS 6 中捕获的大多数帧都被使用以下代码丢弃。

请帮助我,我被严重困在这里,无法继续前进。

建议我一些解决方案,或者至少建议您对这些情况的宝贵想法和假设。

提前谢谢你。

0 投票
1 回答
2593 浏览

ios - 核心图像 - 在 CMSampleBufferRef 上渲染透明图像会导致其周围出现黑框

我正在尝试在使用 AVFoundation 的 AVCaptureVideoDataOutput 录制的视频上添加水印/徽标。我的类设置为 sampleBufferDelegate 并接收 CMSamplebufferRefs。我已经对 CMSampleBufferRefs CVPixelBuffer 应用了一些效果,并将其传递回 AVAssetWriter。

左上角的徽标使用透明 PNG 交付。我遇到的问题是 UIImage 的透明部分在写入视频后是黑色的。任何人都知道我做错了什么或可能忘记了?

下面的代码片段:

看起来 CIContext 没有绘制 CIImages alpha。有任何想法吗?

0 投票
1 回答
1678 浏览

ios - 缩放和裁剪 CMSampleBufferRef

我正在使用 AvFoundation 和 AVCaptureVideoDataOutputSampleBufferDelegate 来录制视频。

我需要在正在录制的视频中实现缩放功能。我正在使用以下委托方法。

我使用它来获取视频帧,因为我需要稍后在其上添加文本和图像,然后再将其附加到 AVAssetWriterInput,使用

我认为执行缩放的唯一方法是缩放和裁剪我从委托方法获得的“(CMSampleBufferRef)sampleBuffer”。

请帮我解决这个问题。我需要知道缩放和裁剪“CMSampleBufferRef”的可能方法。

0 投票
1 回答
452 浏览

objective-c - 如何从 AVCaptureSession 监听 iPhone 耳机上的音频?

我希望能够在捕获视频之前和期间监控耳机上的音频。

我有一个AVCaptureSession设置来捕获视频和音频。

我的想法是为此连接并AVCaptureAudioDataOutput实例AVCaptureSession化,并CMSampleBufferRefs使用实现AVCaptureAudioDataOutputSampleBufferDelegate协议的类来处理。

但我不确定如何将音频从那里路由到耳机。

最直接的方法是什么(最高级别的框架,一般方法)?

0 投票
1 回答
1345 浏览

ios - 使用 AVCaptureVideoDataOutput 将 120/240 fps 捕获到使用低分辨率的帧缓冲区中

目前,使用 iPhone 5s/6 我可以将 120(iPhone 5s)或 240(iPhone 6)帧/秒捕获到 CMSampleBufferRef 中。但是,返回给我的 AVCaptureDeviceFormat 仅提供这些高速帧速率,分辨率为 1280x720。

我想以较低的分辨率(640x480 或更低)捕获它,因为我会将它放入循环缓冲区中以进行存储。虽然我能够降低 didOutputSampleBuffer 委托方法中的分辨率,但我想知道 CMSampleBufferRef 是否有任何方法可以通过配置设备或设置直接为我提供较低的分辨率,而不是获取 720p 图像并降低分辨率手动使用 CVPixelBuffer。

我需要将图像存储在缓冲区中以供以后处理,并希望应用最少的必要处理,否则我将开始丢帧。如果我可以避免调整大小并直接从 didOutputSampleBuffer 委托方法获得较低分辨率的 CMSampleBuffer,那将是理想的。

在 240fps 时,我需要在 5ms 内处理每个图像,并且调整大小例程无法跟上以这种速度缩小图像。但是,我想将它存储到一个循环缓冲区中以供以后处理(例如,使用 AVAssetWriter 将其写入电影),但需要较低的分辨率。

高帧率录制中唯一支持的图像尺寸似乎是 1280x720。将此分辨率的多个图像放入帧缓冲区会产生内存压力,因此如果可以节省内存并跟上帧速率,我希望直接从 didOutputSampleBuffer 捕获较低分辨率的图像。

谢谢您的帮助。

0 投票
3 回答
4807 浏览

ios - 将 CMSampleBuffer 转换为 UIImage

这是一个将 CMSampleBuffer 转换为 UIImage 的函数(来自 Apple 文档的代码)

当我尝试使用 UIImageView 可视化 UIImage 时,我什么也得不到。
有任何想法吗?