-
Notifications
You must be signed in to change notification settings - Fork 271
customOutputSize
Franken Zeng edited this page Oct 20, 2016
·
41 revisions
预览分辨率和编码推流分辨率可以不一致,这时候,较高的预览分辨率可以让主播预览时画质更清晰。
设置较高的采集分辨率,该分辨率图像将用于预览。 kit类的capPreset属性可配置取值,请参考:Video Input Presets 一览表。
- 设置采集分辨率
设置采集分辨率
_kit.videoDimension = [self.presetCfgView capResolution];
//采集分辨率
- (KSYVideoDimension) capResolution {
return [self resolution: _resolutionUI.selectedSegmentIndex];//_resolutionUI指的是上图中的采集分辨率分段控制器
}
//分辨率
- (KSYVideoDimension) resolution: (NSInteger)idx {
//@"360p",@"540p",@"720p"
switch ( idx) {
case 0:
return KSYVideoDimension_16_9__640x360;
case 1:
return KSYVideoDimension_16_9__960x540;
case 2:
return KSYVideoDimension_16_9__1280x720;
case 3:
return KSYVideoDimension_4_3__640x480;
default:
return KSYVideoDimension_16_9__640x360;
}
}
- 设置推流分辨率
//设置推流分辨率
KSYVideoDimension strDim = [self.presetCfgView strResolution];
//推流分辨率
- (KSYVideoDimension) strResolution {
return [self resolution: _streamResoUI.selectedSegmentIndex];//_streamResoUI视图中的推流分辨率分段控制器
}
//分辨率
- (KSYVideoDimension) resolution: (NSInteger)idx {
//@"360p",@"540p",@"720p"
switch ( idx) {
case 0:
return KSYVideoDimension_16_9__640x360;
case 1:
return KSYVideoDimension_16_9__960x540;
case 2:
return KSYVideoDimension_16_9__1280x720;
case 3:
return KSYVideoDimension_4_3__640x480;
default:
return KSYVideoDimension_16_9__640x360;
}
}
//如果采集分辨率 不等于 推流分辨率
if(_kit.videoDimension != strDim){
//开启分辨率自定义开关
_kit.bCustomStreamDimension = YES;
//根据分辨率类型获得实际的宽度和高度
_kit.streamDimension = [self.presetCfgView strResolutionSize ];
}
- (CGSize) strResolutionSize {
NSInteger idx = _streamResoUI.selectedSegmentIndex;
return [self dimensionToSize:[self resolution:idx ]];
}
- (CGSize) dimensionToSize:(KSYVideoDimension) dim {
switch ( dim) {
case KSYVideoDimension_16_9__640x360:
return CGSizeMake(640, 360);
case KSYVideoDimension_16_9__960x540:
return CGSizeMake(960, 540);
case KSYVideoDimension_16_9__1280x720:
return CGSizeMake(1280, 720);
case KSYVideoDimension_4_3__640x480:
return CGSizeMake(640, 480);
default:
return CGSizeMake(640, 360);
}
}