我正在通过网络摄像头录制。相机在PhotoBooth中看起来很棒。但是,当我使用QTCaptureView在我的程序中预览它时,或将其记录到文件中时,它非常非常慢。原因是QuickTime给我最大可能的分辨率为1600x1200。我怎么能强制我的QTCaptureView和我的录音文件更合理的大小?在QTCapture中设置分辨率?
3
A
回答
7
作为described here,您可以在QTCaptureSession的输出中设置像素缓冲区属性,以更改捕获的视频的分辨率。例如:
[[[myCaptureSession outputs] objectAtIndex:0] setPixelBufferAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:480], kCVPixelBufferHeightKey,
[NSNumber numberWithInt:640], kCVPixelBufferWidthKey, nil]];
会将视频分辨率设置为捕获会话中第一个输出的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的实施方式中,使用了大量的更多的CPU功率比基MPEG4编码:这可以通过使用类似于下面的代码来设置。
3
上面的解决方案(setPixelBufferAttributes :)确实设置了预览大小,但是一旦开始录制动画,预览图像将被设置回它的原始值(我的MBP上是1280 x 1024) )任何压缩选项。
如果这只是在录制电影期间会是一回事,但是一旦录制完成,对setPixelBufferAttributes的进一步调用将不起作用。
因此,只要您不打算进行任何实际的压缩影片录制,您就可以更改预览图像大小。
这是在10.5.8/9L30 MBP与GeForce 8600M。如上所述,除无压缩或QTCompressionOptionsSD240SizeH264Video以外的任何压缩选项都会中断。
rdar:// 7447812
0
要添加关于主题的更多信息:
你不能直接specifiy上采集端的定义。相反,这是定义定义的捕获会话的输出。例如
- 如果捕获到QtCaptureDecompressedVideoOutput中,则应指定该对象的定义。
相关问题
- 1. 在.Net中设置屏幕分辨率
- 2. Camera.setMode设置小分辨率
- 3. 设置分辨率xrandr --addmode
- 4. 如何为1600x900分辨率和其他分辨率设置自适应设计?
- 5. Android4OpenCV:启动时的设置分辨率
- 6. 设置摄影机分辨率的Android
- 7. Directx.Capture如何设置分辨率
- 8. Xamarin设置摄像头分辨率
- 9. Linux Framebuffer正确设置分辨率
- 10. Android相机意图设置分辨率
- 11. 设置android屏幕分辨率
- 12. 设置我的显示分辨率
- 13. 如何手动设置流分辨率?
- 14. 如何设置视频分辨率?
- 15. 获取并设置屏幕分辨率
- 16. 设置分辨率的Facebook画布unity3d
- 17. TWAIN扫描的设置分辨率
- 18. 设置UWP应用显示分辨率
- 19. 设置分辨率JIRA与Greenhopper
- 20. Can DisplayMode可以将分辨率设置为屏幕分辨率吗?
- 21. 为Android设计 - 分辨率?
- 22. 查找设备分辨率
- 23. 多分辨率/分辨率C++容器
- 24. 用iPhone/iPad在480x480分辨率下录制视频?如何在Xcode中设置这个分辨率?
- 25. 如何在Qt中设置摄像头分辨率?
- 26. 在xcode4故事板中设置ios屏幕分辨率
- 27. 如何在Android录像机中设置视频分辨率?
- 28. 如何在Qt 5.3中使用QCamera设置图像分辨率?
- 29. 在Windows中自动查找并设置推荐分辨率
- 30. 在Linux/Ubuntu中设置Code :: Blocks的分辨率