Skip to content

customOutputSize

Franken Zeng edited this page Oct 12, 2016 · 41 revisions

分辨率进阶设定

1. 目的

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

2. 使用说明

快速集成,KSYGPUStreamerKit是我们已经通过长时间调试的一个封装类,性能优化、线程安全,使用它可得到本SDK提供全部功能。

  • 设置采集分辨率
设置采集分辨率
_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);
    }
}

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