问题标签 [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 回答
691 浏览

ios - 捕捉 iPhone 游戏音频

我想捕捉来自我的 iPhone 游戏的音频(音乐 + 音效)。AVCaptureSession似乎只有麦克风作为音频源。我想捕获音频,将其放入CMSampleBufferRefs 并将这些附加到AVAssetWriterInput.

我目前正在研究音频队列。还有其他想法吗?

0 投票
1 回答
1978 浏览

ios - CMSampleBuffer 中有多少帧?

这可能是一个愚蠢的问题,但我刚刚开始了解媒体格式和 AVFoundation,所以请耐心等待。

我一直在试图弄清楚来自 AVCaptureVideoDataOutput 的 CMSampleBuffer 是否可以包含多个帧。但是,从文档看来,我见过的大多数示例代码似乎都与 CMSampleBuffer 相关,就好像它是单帧一样。我只是误解了这一点吗?

如果每个缓冲区可以有超过一帧,是否可以获取各个帧并确定它是否是关键帧?

谢谢

0 投票
5 回答
24961 浏览

iphone - iOS - 缩放和裁剪 CMSampleBufferRef/CVImageBufferRef

我正在使用 AVFoundation 并从中获取示例缓冲区AVCaptureVideoDataOutput,我可以使用以下方法将其直接写入 videoWriter:

我现在要做的是在 CMSampleBufferRef 内裁剪和缩放图像,而不将其转换为 UIImage 或 CGImageRef,因为这会降低性能。

0 投票
2 回答
2848 浏览

cmsamplebufferref - 保存 CMSampleBufferRef 以供以后处理

我正在尝试使用 AVFoundation 框架从 AVCaptureStillImageOutput 快速捕获“系列”静止图像,例如某些相机中的连拍模式。我想使用完成处理程序,

并将 imageSampleBuffer 传递给 NSOperation 对象以供以后处理。但是我找不到在 NSOperation 类中保留缓冲区的方法。

有谁知道我在这里可能做错了什么?有没有更好的方法来做到这一点?

0 投票
1 回答
11138 浏览

objective-c - 如何将 CMSampleBufferRef 转换为 NSData

如何将 CMSampleBufferRef 转换为 NSData?

MPMediaItem通过遵循 Erik Aigner 在此线程上的回答,我设法获取了数据,但是数据是 type CMSampleBufferRef

我知道 CMSampleBufferRef 是一个结构,并在 iOS 开发库的CMSampleBuffer 参考中定义,但我认为我并不完全理解它是什么。CMSampleBuffer 函数似乎都不是一个明显的解决方案。

0 投票
1 回答
6838 浏览

iphone - iOS - 自动调整 CVPixelBufferRef 的大小

我正在尝试CMSampleBufferRef根据用户的输入来裁剪和缩放 a ratio,下面的代码采用 CMSampleBufferRef,将其转换为 CVImageBufferRef 并使用 CVPixelBuffer 根据其字节裁剪内部图像。这个过程的目标是有一个裁剪和缩放的 CVPixelBufferRef 来写入视频

一切正常,除了当我尝试使用此方法将其写入视频输出时,它一直收到内存警告。如果我保持相同的比例就好了

我还尝试了使用CMSampleBufferRefCGContext的不同方法。如果您可以在这里为任何方法提供解决方案,我可以给您满分

0 投票
1 回答
3475 浏览

ios - AVAssetWriter 不录制音频

我无法在 iPhone 上使用 avassetwriter 将音频录制到视频中。我可以在手机上从相机录制视频没问题,但是当我尝试添加音频时,我什么也得不到,而且相册应用程序中视频中显示的持续时间也显示出一些非常不正常的东西,一个 4 秒的视频会显示 15:54:01 或类似的内容,即使视频更短,在该数字之后制作的每个视频都会增加。我一直在尝试关注我在其他问题中看到的内容,但没有运气。

这是我设置音频输入的方式

这是我如何设置 AVAssetWriter

然后这是我如何使用 audioOutput 回调发送的 CMSampleBufferRef 编写音频样本缓冲区

非常感谢任何帮助,我整天都被困在这上面。

0 投票
0 回答
624 浏览

avaudioplayer - 在一台设备上录制音频并使用 UDP 在另一台设备上播放

我想从一台 iOS 设备录制音频并同时发送和播放到另一台设备。

我尝试在两端正确使用 AVCaptureAudioDataOutput 和发送/接收 CMSampleBufferRef 但是当我在接收器设备上播放它时,我得到:错误域 = NSOSStatusError 域代码 = 1954115647。

我正在使用以下代码将收到的 CMSampleBufferRef 转换为 Sender Device 上的 NSData :

和以下代码在 Receiver Device 上播放音频:

它似乎无法将接收到的字节识别为正确的音频格式。

请帮我接收这个问题。

谢谢。

0 投票
1 回答
8032 浏览

iphone - 从 CVPixelBuffer 参考中获取所需数据

我有一个程序可以实时查看相机输入并获取中间像素的颜色值。我使用 captureOutput: 方法从 AVCaptureSession 输出(恰好被读取为 CVPixelBuffer)中获取 CMSampleBuffer,然后使用以下代码获取像素的 rgb 值:

我虽然那个公式 ((width*height)*4)/2 会给我中间像素,但它给了我图像的顶部中间像素。我想知道我需要使用什么公式来访问屏幕中间的像素。我有点卡住了,因为我真的不知道这些像素缓冲区的内部结构。

将来我想抓取 4 个中间像素并将它们平均以获得更准确的颜色读数,但现在我只想了解这些东西是如何工作的。

0 投票
0 回答
1136 浏览

ios - 如何将音频 CMSampleBufferRef 转换为数据,并在收到数据的其他设备中播放音频

我尝试实现视频会议,我可以使用 CaputreSession 捕获视频和音频,并将视频 CMSampleBufferRef 隐藏到图像并将数据发送到其他设备。

但我不知道如何将音频 CMSampleBufferRef 转换为数据,并在其他设备中播放带有数据的音频?

有人可以帮助我吗?

编辑:

我在一个中文网站上找到了这个,它说我们可以使用 OpenAL 读取 CMSamplerBufferRef 中的数据。我已经在我的项目中尝试过代码,似乎 OpenAL 和带有音频的 AvCaptureSession 不能一起工作,因为带有文件的 OpenAL 很有趣。有人可以帮我吗??????