gpt4 book ai didi

size - 在 mac 上使用 AVFoundation 和 AVCaptureVideoDataOutput 时如何使用自定义视频分辨率

转载 作者:行者123 更新时间:2023-12-04 15:45:37 25 4
gpt4 key购买 nike

我需要处理捕获的视频帧的每一帧,尽管 AVCaptureDevice.formats提供了这么多不同尺寸的框架尺寸,似乎AVCaptureSession仅支持预设中定义的那些帧尺寸。

我也试过设置 AVCaptureDevice.activeFormat之前 AVCaptureInputDevice或之后,无论我设置什么设置,如果我设置 AVCaptureSessionPresetHighAVCaptureSession ,它总是给我一个 1280x720 的帧。类似,如果我设置 AVCaptureSessionPreset 640x480,那么我只能得到 640x480 的帧大小。

那么,如何设置像 800x600 这样的自定义视频帧大小?
使用windows下的Media Foundation或者linux下的V4L2,捕捉时可以轻松设置任意自定义帧大小。

在 mac 下似乎无法做到这一点。

最佳答案

套装kCVPixelBufferWidthKeykCVPixelBufferHeightKey AVCaptureVideoDataOutput 上的选项目的。最小样本如下(添加错误检查)。

_sessionOutput = [[AVCaptureVideoDataOutput alloc] init];

NSDictionary *pixelBufferOptions = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble:width], (id)kCVPixelBufferWidthKey,
[NSNumber numberWithDouble:height], (id)kCVPixelBufferHeightKey,
[NSNumber numberWithUnsignedInt:kCVPixelFormatType_32BGRA], (id)kCVPixelBufferPixelFormatTypeKey,
nil];
[_sessionOutput setVideoSettings:pixelBufferOptions];

注意:此宽度/高度将覆盖 session 预设宽度/高度(如果不同)。

关于size - 在 mac 上使用 AVFoundation 和 AVCaptureVideoDataOutput 时如何使用自定义视频分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com