问题标签 [cmsamplebuffer]

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 投票
0 回答
626 浏览

ios - ios didOutputSampleBuffer 丢弃前几帧

我正在制作一个需要使用录制视频和音频的应用程序AVCaptureVideoDataOutputSampleBufferDelegate

我使用的功能是:

和编码帧功能:

问题是当我开始录制(将 isCapturing 标志设置为 true)时,前几帧被丢弃(原因是 FrameWasLate),Apple 的文档说这是因为 sampleBuffer 没有足够快地释放!,但我所做的只是初始化Avassetwriter而已!.

我试图将编码函数放在串行队列中,但没有成功!怎么了 ?!

0 投票
2 回答
4189 浏览

ios - CMSampleBuffer 在 Swift 3 中从纵向旋转到横向

我在 iOS 中处理 ReplayKit2,由于某些原因,我需要将 CMSampleBuffer 从纵向旋转到横向,我发现结果不正确。

我想念什么?

这是原始样本缓冲区在此处输入图像描述

这是实际的输出缓冲区在此处输入图像描述

宽度和高度是 sampleBuffer 的尺寸

0 投票
1 回答
3849 浏览

swift - 使用 RPScreenRecorder 保存屏幕录制开始捕获

我正在尝试使用 RPScreenRecorder.shared().startCapture 将屏幕录制保存到 Firebase。我知道如何从 AVCapture 保存视频,但不知道如何处理 CMSampleBuffer 以创建文件以保存到 firebase。请帮助我在任何地方都找不到这方面的文档,这是方法调用:

即使指向正确的方向也会有所帮助,但我不知道如何将样本缓冲区保存为可以作为视频播放的文件

0 投票
1 回答
1899 浏览

ios - CIContext 渲染:toCVPixelBuffer:边界:colorSpace:函数不适用于具有 alpha 通道的图像

我正在尝试在使用 AVFoundation 的 AVCaptureVideoDataOutput 录制的视频上添加水印/徽标。我遇到的问题是 UIImage 的透明部分在写入视频后是黑色的。我做错了什么?

……

……

0 投票
1 回答
5052 浏览

swift - 在没有预览窗口的情况下使用 AVCaptureVideoDataOutputSampleBufferDelegate

我正在开发一个基于 Swift 的 macOS 应用程序,我需要在其中捕获视频输入,但不将其显示在屏幕上......而不是显示视频,我想将缓冲的数据发送到其他地方进行处理,并最终显示它在SceneKit场景中的一个物体上。

我有一个CameraInputprepareCamera方法的类:

还有一个startSession启动AVCaptureSession会话的方法:

我还实现AVCaptureVideoDataOutputSampleBufferDelegate了 ,我打算在其中捕获以CMSampleBuffer供以后使用:

但是,永远不会调用委托。这是我必须显示视频输出才能调用它的情况吗?

0 投票
1 回答
1304 浏览

ios - iOS:将 UIImage 转换为 CMSampleBuffer

一些问题涉及如何将 CMSampleBuffer 转换为 UIImage,但没有关于如何执行相反操作的答案,即将 UIImage 转换为 CMSampleBuffer。

这个问题与类似问题不同,因为下面的代码提供了将 UIImage 转换为 CVPixelBuffer 的起点,希望具有更多 AVFoundation 专业知识的人可以帮助修复转换为 CMSampleBuffer。

0 投票
0 回答
192 浏览

ios - 在 pixelBuffer 上添加文本时音频丢失

我正在尝试在视频上添加文本覆盖,当在 iPhone 5s 或更低质量的设备中以高质量录制并在其上写入文本时,1 或 2 秒后音频丢失,但这不会发生在 iPhone 6/6s 等大型设备上. 如果我删除该文本编写器方法,那么它可以在所有设备上正常工作,或者如果我在 5 秒内降低视频质量,那么它也可以正常工作。我如何在 iPhone 5s 中使用叠加文本获取带音频的视频。

这是我的代码

}

如果assetWriterPixelBufferInput我们不使用videoInput.append(sample)此方法,但我们会丢失文本覆盖。

水印(文字叠加)示例代码——

0 投票
1 回答
804 浏览

ios - 使用 AVAssetReader 从 iPad 上的视频中读取帧时,图像的方向不正确

我想先确定几件事:

  • 这适用于多部 iPhone(iOS 10.3 和 11.x)
  • 这适用于任何 iPad 模拟器 (iOS 11.x)

我剩下的情况是,当我运行以下代码(从我的应用程序中压缩以删除不相关的代码)时,我得到的图像是颠倒的(横向)或旋转 90 度(纵向)。查看在此步骤之前处理的视频表明它的方向正确。所有测试均在 iOS 11.2.5 上完成。

* 更新 *

我做了一些进一步的测试,发现了一些更有趣的项目:

  • 如果视频是从手机或外部来源导入的,则已正确处理
  • 如果视频是在 iPad 上以纵向录制的,那么阅读器会将其向左旋转 90 度提取
  • 如果视频是在 iPad 上以横向录制的,则阅读器将其倒置提取
  • 在上述两种情况下,UIImage报告一个纵向的方向

所涉及代码的精简版本:

0 投票
0 回答
209 浏览

ios - 从前置摄像头到 UIImage 的 CMSampleBuffer

我正在尝试从 CMSampleBuffer 创建 UIImage。以下代码适用于来自后置摄像头的样本缓冲区,但不适用于前置摄像头。使用前置摄像头时,CGContext初始化失败,即CGContext构造函数返回nil。我怀疑我需要使用正确的位图信息,但是有很多组合。

它伴随着以下错误:“CGBitmapContextCreate:无效数据字节/行:对于 8 个整数位/分量、3 个分量、kCGImageAlphaPremultipliedFirst,应至少为 2560。”

0 投票
0 回答
3364 浏览

ios - 旋转 CMSampleBuffer/CVPixelBuffer

我目前正在尝试通过首先将 CMSampleBuffer 转换为 CVPixelBuffer 然后使用 vImageRotate90_ARGB8888 转换缓冲区来更改其方向。我的代码的问题是,当 vImageRotate90_ARGB8888 执行时,它会立即崩溃。我知道有答案(比如这个这个),但是所有这些解决方案都无法在我的情况下工作,我真的找不到任何类型的错误,或者想到任何会导致这种行为的事情。我当前的代码如下: