gpt4 book ai didi

cocoa - 在 QTCapture 中设置分辨率?

转载 作者:行者123 更新时间:2023-11-28 21:42:01 25 4
gpt4 key购买 nike

我正在使用网络摄像头进行录制。相机在 PhotoBooth 中看起来很棒。但是,当我在我的程序中使用 QTCaptureView 预览它,或将它记录到文件中时,速度非常非常慢。原因是 QuickTime 为我提供了 1600x1200 的最大可能分辨率。如何为我的 QTCaptureView 和记录文件强制设置更合理的大小?

最佳答案

作为described here ,您可以在 QTCaptureSession 的输出中设置像素缓冲区属性,以更改正在捕获的视频的分辨率。例如:

[[[myCaptureSession outputs] objectAtIndex:0] setPixelBufferAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:480], kCVPixelBufferHeightKey,
[NSNumber numberWithInt:640], kCVPixelBufferWidthKey, nil]];

会将捕获 session 中第一个输出的视频分辨率设置为 640x480。这还应该自行调整相机设置,使其返回该尺寸的图像帧(如果相机硬件支持)。

您可能还希望使用基本 MPEG4 编码而不是 h.264 来进行实时视频录制。这可以使用类似于以下的代码进行设置:

NSArray *outputConnections = [mCaptureMovieFileOutput connections];
QTCaptureConnection *connection;
for (connection in outputConnections)
{
if ([[connection mediaType] isEqualToString:QTMediaTypeVideo])
[mCaptureMovieFileOutput setCompressionOptions:[QTCompressionOptions compressionOptionsWithIdentifier:@"QTCompressionOptionsSD480SizeMPEG4Video"] forConnection:connection];
}

h.264 编码,尤其是 Quicktime 实现,使用比基本 MPEG4 更多的 CPU 能力进行编码。

关于cocoa - 在 QTCapture 中设置分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/795018/

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