作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用网络摄像头进行录制。相机在 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/
我正在使用网络摄像头进行录制。相机在 PhotoBooth 中看起来很棒。但是,当我在我的程序中使用 QTCaptureView 预览它,或将它记录到文件中时,速度非常非常慢。原因是 QuickTim
我是一名优秀的程序员,十分优秀!