Skip to content

customOutputSize

sunjian283019 edited this page Aug 26, 2016 · 41 revisions

分辨率进阶设定

1. 目的

如何让主播愿意用你的直播平台,那就是她(他、它)看起来更美,不是吗?因此我们让主播的手机呈现出来分辨率更高的图像,这样主播就会爱上你的直播平台,但是如果将这样高分辨率的视频推出去,那么对于带宽的要求就比较高,因此我们可以将分辨率稍微低一些的图像推出去,这样可以降低一些带宽的压力。

2. 使用说明

快速集成,KSYGPUStreamerKit是我们已经通过长时间调试的一个封装类,性能优化、线程安全,使用它可得到本SDK提供全部功能,其中对于采集和推流分辨率配置代码如下:

  • 配置界面(presetCfgView)
  • SEQ
  • 设置采集分辨率
设置采集分辨率
_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);
    }
}

3. 资源占用

配置类型 预览360P,推流360P 预览720P,推流360P 机型|
CPU占用 SEQ SEQ iPhone 5s
GPU占用对比(预览360P,推流360P/ 预览720P,推流360P)SEQSEQ

4. 效果对比

预览360P 预览720P
SEQ SEQ

1. 推流环节说明

2. 特色功能说明

2.1 采集

2.2 音频处理

2.3 视频处理

2.4 编码

2.5 推流

2.6 输入多样化

2.7 集成

3. 第三方功能

4. 技术专栏

5. 已知问题

8. FAQ

金山云计算

Clone this wiki locally