2014-12-19 70 views
2

我是AVCaptureSession的n00b。我使用OpenTok來實現視頻聊天。我想保留帶寬,UI的設計使得視頻視圖目前只有100 x 100。iPhone 6上的AVCaptureSessionPresetLow

這是從OpenTok示例中的代碼的一部分,其中它設置預設:

- (void) setCaptureSessionPreset:(NSString*)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?

此外,這是嘗試節省帶寬的正確策略嗎?

回答

1

您無法強制相機達到不支持的分辨率。 較低的分辨率幀大小將導致較低的網絡流量。降低FPS是另一種方式。

視圖大小不必映射到分辨率。您可以隨時在任何尺寸的視圖中放入相框。

查看OpenTok SDK中的Let-Build-OTPublisher應用程序,更具體地看TBExampleVideoCapture.m文件,瞭解如何處理分辨率和FPS。 「

+0

」較低分辨率的幀大小將導致較低的網絡流量。「 - 那麼你是否建議我只用最低的預設值進行捕捉,但在發送之前我可以將其後處理成更小的幀?我一直在看TBExampleVideoCapture.m,但我是AVCaptureSession框架的新手,所以只是尋找一些指導。 – Ramsel 2014-12-19 22:12:55