我是 AVCaptureSession 的 n00b。我正在使用 OpenTok 来实现视频聊天。我想保留带宽,并且 UI 的设计使视频 View 目前只有 100 x 100。
这是 OpenTok 示例中设置预设的部分代码:
- (void) setCaptureSessionPresetNSString*)preset {
AVCaptureSession *session = [self captureSession];
if ([session canSetSessionPreset:preset] &&
![preset isEqualToString:session.sessionPreset]) {
[_captureSession beginConfiguration];
_captureSession.sessionPreset = preset;
_capturePreset = preset;
[_videoOutput setVideoSettings:
[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:
kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange],
kCVPixelBufferPixelFormatTypeKey,
nil]];
[_captureSession commitConfiguration];
}
}
当我传入 AVCaptureSessionPresetLow (在 iPhone 6 上)时,我得到 NO 。有什么方法可以设置 AVCaptureSession 以便我只能捕获帧尽可能接近 100 x 100 的视频?
另外,这是尝试节省带宽的正确策略吗?
Best Answer-推荐答案 strong>
您不能将相机强制设置为它不支持的分辨率。
较低分辨率的帧大小将导致较低的网络流量。
降低 FPS 是另一种方式。
View 大小不必映射到分辨率。您始终可以在任何尺寸的 View 中放置框架。
查看 OpenTok SDK 中的 Let-Build-OTPublisher 应用程序,更具体地说是 TBExampleVideoCapture.m 文件,了解如何处理分辨率和 FPS。
关于ios - iPhone 6 上的 AVCaptureSessionPresetLow,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/27558909/
|