问题标签 [avcapture]

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

ios - 如何在 Swift 中将 AVCaptureVideoPreviewLayer 裁剪为正方形?

我正在使用 AVCaptureVideoPreviewLayer 制作相机应用程序。出于某种原因,我只需要使用方形屏幕捕获的一部分来显示显示输出。这类似于早期的问题:Cropping AVCaptureVideoPreviewLayer output to a square

但是,我不需要将拍摄的图像设为正方形。我唯一想要的是有一个矩形,只显示相机中红色区域的一部分。我在下面附上了一张示例图片。

在此处输入图像描述

任何人都可以快速提供一些示例代码来显示一些提示我该怎么做?

[更新] 我正在使用的代码: * 代码也可以从我的 bitbucket 下载(https://bitbucket.org/fireares/swift-avcam_swiftwithcropfunction/src/7ca5aef02173e941e255623e230129cc2e304a7a/AVCamSwift-master-3?at=questionStackoverflow

0 投票
1 回答
426 浏览

ios - AVAssetWriter 录制音频慢 2 倍?

我正在尝试使用 AVAssetWriter 录制音频。但是在播放文件时,它的播放速度比原始音频慢 2 倍。我所做的是按照以下方式创建 AVAssetWriter ..

之后我开始在数据中附加缓冲区,如下所示

我正在做的是在以下委托函数中使用 AVCapureSession 获取麦克风输出

并将 sampleBuffer 直接传递给 avassetWriter 以写入文件。

有人可以让我知道为什么它将音频数据写入文件的速度如此之慢..还有其他人面临类似的问题吗?以及该问题的可能解决方案是什么..

0 投票
1 回答
377 浏览

ios - 在 iOS 上拍摄照片时出现随机错误

我想在这里捕捉图像:

它在大多数情况下都能完美运行!

但有时我在调用时遇到错误captureStillImageAsynchronouslyFromConnection

我只是想预计会发生此错误。我尝试过测试videoConnection.enabledvideoConnection.active但两者似乎都与错误无关......

在拍摄照片之前我需要检查什么以确保一切正常?

0 投票
0 回答
416 浏览

ios - captureStillImageAsynchronouslyFromConnection 中 UIImage 的方向:AVCaptureConnection 的连接

我正在使用以下方法从AVCaptureStillImageOutput捕获帧

即使使用纵向做

我无法在缓冲区中旋转生成的图像。

我试图直接从缓冲区和旋转中获取图像

但是我应该从captureStillImageAsynchronouslyFromConnection:connection传递的CMSampleBufferRef得到的结果CVImageBufferRef是 nil:

如果我尝试旋转直接从输出数据缓冲区获取的图像表示,例如:

生成的 UIImage 它没有得到正确的方向,通过 XCode QuickLook 和 po 来查看它。

0 投票
1 回答
703 浏览

ios - 如何将 AVCaptureStillImageOutput 转换为 UIImage 并保存为 NSData?

我正在尝试使用我正在开发的应用程序发送照片,我已经制作了应用程序来拍照,然后当您点击发送时,它会发送您刚刚拍摄的照片以通过邮件发送。

但我不知道如何将类型AVCaptureStillImageOutput为的照片转换为UIImage并将其存储在 aNSData中,以便将其用作addAttachmentData.

我试图这样做:

我有这个功能

但它显示了一个错误,“使用未解析的标识符‘imageAsUIIMage’

我想获取 UIImage 以便通过电子邮件发送它。

0 投票
1 回答
1111 浏览

ios - 屏幕上的 AVCaptureVideoDataOutput 和图像显示大小

我用来AVCaptureVideoDataOutput从相机中检索图像并显示在iPhone显示器上。iPhone 6 plus我用 with运行代码iOS8.4,这很好。图像全屏显示。但是当我使用iPhone4 with iOS 7.1and时iPad mini with iOS 8.3,图像不会在全屏上显示,并且屏幕的左右(不显示图像)有空白区域。这个问题的原因可能是什么?我的代码如下所示。

0 投票
1 回答
823 浏览

ios - AvCapture / AVCaptureVideoPreviewLayer 无法获取正确的可见图像

我目前在从AVCaptureAVCaptureVideoPreviewLayer等获取我想要的东西时遇到了一些巨大的麻烦。

我目前正在创建一个应用程序(可用于 Iphone 设备,但如果它也可以在 ipad 上运行会更好),我想在我的视图中间放置一个小预览我的相机,如下图所示:

我的观点

为此,我想保持相机的比例,所以我使用了这个配置:

如您所见,我正在使用AVLayerVideoGravityResizeAspectFill属性来确保我确实具有正确的比率。

我的麻烦从这里开始,因为我尝试了很多事情,但从未真正成功。 我的目标是获得与用户可以在 previewLayer 中看到的图片等效的图片。知道视频帧提供的图像比您在预览中看到的图像更大。

我尝试了 3 种方法:

1)使用个人计算:因为我知道视频帧大小和我的屏幕大小以及层大小和位置,我试图计算比率并用它来计算视频帧中的等效位置。我实际上发现视频帧(sampleBuffer)以像素为单位,而我从 mainScreen 边界获得的位置是苹果度量,并且必须以一个比率倍数才能以像素为单位,这是假设视频帧大小是我的比率实际设备全屏尺寸。

--> 这实际上在我的 IPAD 上给了我一个非常好的结果,高度和宽度都很好,但是 (x,y) 原点与原来的有点移动......(细节:实际上如果我从位置我发现我得到了很好的输出)

2)使用 StillImage 捕获:只要我在 IPAD 上,这种方法实际上就可以工作。但真正的麻烦是我正在使用这些裁剪帧来提供图像库,并且方法captureStillImageAsynchronouslyFromConnection正在为图片调用系统声音(我读了很多关于“解决方案”的内容,比如调用另一个声音来避免它等等等等但没有工作实际上并没有解决 iphone 6 上的冻结问题)所以这种方法似乎不合适。

3)使用具有比率的 metadataOuput:这实际上根本不起作用,但我认为它对我的帮助最大,因为它在 stillImage 过程中使用它(使用metadataOutputRectOfInterestForRect结果来获取倾倒百分比,然后将其与比率结合) . 我想使用它并添加图片之间的比率差异以获得正确的输出。

我希望有人能够帮助我解决这个问题。非常感谢。

0 投票
2 回答
1291 浏览

ios - 以 120/240fps 保存视频

我正在制作一个应用程序以设备最大帧速率录制视频(即,iPhone 5s 为 120fps,6 和 6s 为 240)。我已经设法配置AVCaptureDevice设置maxFrameRateDuration,我打印到日志currentDevice.activeFormat.videoSupportedFrameRateRanges,一切都很好。

但是当我尝试保存视频时,它确实保存了它,但以正常帧速率,而不是 120 或 240fps。

拜托,谁能帮我解决这个问题?任何帮助将非常感激。

提前致谢。

PS:这是我到目前为止的完整代码

0 投票
1 回答
1760 浏览

ios - Force Rotate iOS Even When Device's Portrait Orientation Lock is ON

My app needs to somehow mimic the iOS original Camera App, that even the device's AUTOROTATE is locked, the ViewController or specifically the AVCaptureVideoPreviewLayer will rotate.

So far, what I did to my project is this: Check the Landscape (right and left) in Project Properties/Settings, and then tweak each View Controllers' shouldAutorotate.

Everything is fine using this technique, until the user lock his device autorotate function (in iPAD this is a button at the side of the device, in iPhone this can be found in the settings from below the screen).

I couldn't find any answered related question on stackoverflow, so I asked.

0 投票
1 回答
249 浏览

ios - 来自 CMSampleBuffer 的 UIImage 有蓝色调

我在 UIImageView 中显示转换为 UIImages 的 CMSampleBuffers 视频源。在下面的照片中,背景层是 AVCapturePreviewLayer,中心是缓冲区提要。我的目标是去除蓝色调。

在此处输入图像描述

这是 CMSampleBuffer 到 UIImage 代码

AVCaptureVideoDataOutput 设置: