Skip to content

apiAdjust

pengbin edited this page Apr 1, 2017 · 30 revisions

接口变动历史

v2.0.3

v2.0.2

v2.0.1

v2.0.0

v1.9.5

v1.9.4

v1.9.3

v1.9.2

v1.9.1

v1.9.0

v1.8.7

v1.8.6

v1.8.5

v1.8.4

  • kit类中添加了rotatePreview 和 rotateStream 方法

v1.8.3

  • KSYGPUPicMixer 的每个图层添加了 GPUImageRotationMode的属性, 可用于镜像属性设置 (90°或270°的旋转暂时不支持)
  • kit类中 将原本的vMixer 拆分为 预览和推流的两个mixer

v1.8.2

  • 增加AudioToolbox的音频编码器, 参见KSYAudioCodec定义 和 KSYStreamerBase的audioCodec属性
  • 增加输入数据音视频不同步错误类型 KSYStreamErrorCode_AV_SYNC_ERROR, 参见KSYStreamerBase的streamErrorCode属性
  • KSYGPUPicOutput 中添加outputPixelFormat 属性, 支持 4444AYpCbCr8 和 32BGRA两种像素格式
  • 视频编码器 VT264 增加对 KSYVideoEncodePerformance 的支持, 参见KSYStreamerBase的videoEncodePerf属性
  • KSYStreamerBase 中增加 bwEstimateMode属性, 用于设置网络自适应带宽估计模式,具体配置模式请参考KSYBWEstimateMode
  • 移除 KSYGPUCamera 中的bPauseCaptureOnNotice属性

v1.8.1

  • 新增资源文件KSYGPUResource.bundle
  • 新增特效滤镜KSYBuildInSpecialEffects, 包括6种内置特效和自定义特效接口, 内置特效需要依赖

v1.8.0

  • 版本发布方式变更:

    1. 由原来的单个framework的发布 改为 多个静态库和头文件的发布方式(可根据需要灵活组合)
    2. 提供带配置参数的脚本文件 releaseFramework/release-libKSYLive.sh, 根据参数配置生成framework
    3. Podspec 名称变更为libksygpulive, 并增加了submodule, 通过指定不同的submodule来满足不同应用场景的需求
  • kit类的源代码开放
    kit类主要作用有两个:

    1. 将积木类进行组合, 能够满足简单推流场景的需求, 简单易用
    2. 作为积木类API使用的范例, 方便用户定制开发
  • 新增图像混合类 KSYGPUPicMixer

  • 新增AVAudioSession工具类 KSYAVAudioSession

    • 以前与音频的采集播放相关的接口都挪到这个类中了, 比如
    • kit.bInterruptOtherAudio 属性挪到了 kit.avAudioSession.bInterruptOtherAudio 中
    • 另外,kit类提供了initWithInterruptCfg 和initWithDefaultCfg, 对应构造bInterruptOtherAudio属性为YES和NO的kit实例
  • kit类分辨率设置接口变更 参见

    • 新的设置方法:
    1. 采集分辨率 直接使用 Apple定义的preset
    2. 预览和推流分辨率直接通过CGSize指定, 通过GPU进行裁剪和缩放

新增接口

/**
 @abstract 初始化方法
 @discussion 创建带有默认参数的 kit,会打断其他后台的音乐播放
 
 @warning kit只支持单实例推流,构造多个实例会出现异常
 */
- (instancetype) initWithInterruptCfg;
/**
 @abstract   图像混合器
 @discussion 将多图层的内容叠加
 */
@property (nonatomic, readonly) KSYGPUPicMixer        *vMixer;
/**
 @abstract   获取渲染的图像
 @discussion 用于衔接GPU和streamer
 */
@property (nonatomic, readonly)KSYGPUPicOutput         *gpuToStr;
/**
 @abstract  配置管理 AVAudioSession的工具类
 */
@property (nonatomic, readonly) KSYAVAudioSession      *avAudioSession;
/** 摄像头图层 */
@property (nonatomic, readonly) NSInteger cameraLayer;
/** logo 图片的图层 */
@property (nonatomic, readonly) NSInteger logoPicLayer;
/** logo 文字的图层 */
@property (nonatomic, readonly) NSInteger logoTxtLayer;
/**
 @abstract   采集分辨率 (仅在开始采集前设置有效)
 @discussion 参见iOS的 AVCaptureSessionPresetXXX的定义
 @discussion https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVCaptureSession_Class/#//apple_ref/doc/constant_group/Video_Input_Presets
 @discussion 透传到 KSYGPUCamera. 默认值为AVCaptureSessionPreset640x480
 @discussion 不同设备支持的预设分辨率可能不同, 请尽量与预览分辨率一致
 */
@property (nonatomic, assign) NSString * capPreset;
/**
 @abstract   查询实际的采集分辨率
 @discussion 参见iOS的 AVCaptureSessionPresetXXX的定义
 */
- (CGSize) captureDimension;
/**
 @abstract  gpu output pixel format (默认:kCVPixelFormatType_32BGRA)
 @discussion 目前只支持 kCVPixelFormatType_32BGRA 和 kCVPixelFormatType_4444AYpCbCr8
 @discussion kCVPixelFormatType_4444AYpCbCr8 的排列顺序为 (A Y' Cb Cr)
 @discussion 其他非法都会被当做 kCVPixelFormatType_32BGRA 处理
 @discussion 仅在开始推流前设置有效
 */
@property(nonatomic, assign) OSType gpuOutputPixelFormat;

调整接口

1.视频采集接口
V1.8.0 earlyer
/**
 @abstract   获取开始推流后的采集设备
 @discussion 通过该指针可以对摄像头进行操作
 */
@property (nonatomic, readonly) KSYGPUCamera*   capDev;

V1.8.0 and later
/**
 @abstract   视频采集设备
 @discussion 通过该指针可以对摄像头进行操作 (操作接口参见GPUImage)
 */
@property (nonatomic, readonly) KSYGPUCamera       *vCapDev;
2.音频采集接口
V1.8.0 earlier

/**
 @abstract  Audio Unit 音频采集
 */
@property (nonatomic, readonly) KSYAUAudioCapture* audioCapDev;

V1.8.0 and later
/**
 @abstract  音频采集设备 Audio Unit 音频采集
 */
@property (nonatomic, readonly) KSYAUAudioCapture      *aCapDev;
3.混音调节器
V1.8.0 earlier
/**
 @abstract  混音调节器
 */
@property (nonatomic, readonly) KSYAudioMixer * audioMixer;

V1.8.0 and later
/**
 @abstract   音频混合器
 @discussion 用于将多路音频进行混合,将混合后的音频送入streamerBase
 */
@property (nonatomic, readonly) KSYAudioMixer          *aMixer;

删除接口

- (void) setVideoOrientationBy: (UIInterfaceOrientation)uiOrien;
/**
 @abstract   AVCaptureVideoOrientation / UIInterfaceOrientation
 */
+ (AVCaptureVideoOrientation) getCapOrientation: (UIInterfaceOrientation) orient ;

v1.7.1

删除接口

/**
 @abstract   是否将视频数据送入streamer (默认为NO)

 @see streamer
 */
@property BOOL  bStreamVideo;

/**
 @abstract   是否将音频数据送入streamer (默认为YES)
 
 @see streamer
 */
@property BOOL  bStreamAudio;

调整接口

  • 在V1.7.1之前采集接口
/**
 @abstract   获取开始推流后的采集设备

 @discussion 通过该指针可以对摄像头进行操作
 */
@property (nonatomic, readonly) KSYGPUCamera*   capDev;
  • 在1.7.1调整为
/**
 @abstract   视频采集设备

 @discussion 通过该指针可以对摄像头进行操作 (操作接口参见GPUImage)
 */
@property (nonatomic, readonly) KSYGPUCamera       *capDev;

使用方法:
    初始化:
    _capDev = [[KSYGPUCamera alloc] initWithSessionPreset:_capPreset
                                            cameraPosition:_cameraPosition];
    视图输出方向
    _capDev.outputImageOrientation = UIInterfaceOrientationPortrait;
    开始采集
    [_capDev startCameraCapture];
    摄像头原始数据回调
    _capDev.videoProcessingCallback = ^(CMSampleBufferRef but){

    };
    停止采集
    [_capDev      stopCameraCapture];

/**
 @abstract  音频采集设备 Audio Unit 音频采集
 */
@property (nonatomic, readonly) KSYAUAudioCapture      *audioCapDev;

使用方法:
    初始化音频采集模块
    _audioCapDev = [[KSYAUAudioCapture alloc] init];
    音频采集, 语音数据送入混音器
    _audioCapDev.audioProcessingCallback = ^(CMSampleBufferRef buf){
        [kit mixAudio:buf to:KSYMicTrack];
    };
    开始采集
    [_audioCapDev startCapture];

v1.7.0

新增接口

/**
 @abstract   本次直播的目标场景 (默认为KSYLiveScene_Default)

 @discussion KSY内部会根据场景的特征进行参数调优,开始推流前设置有效
 */
@property (nonatomic, assign) KSYLiveScene              liveScene;
/**
 @abstract   视频编码性能档次 ( 默认为 KSYVideoEncodePer_LowPower)

 @discussion 视频质量和设备资源之间的权衡,开始推流前设置有效
 */
@property (nonatomic, assign) KSYVideoEncodePerformance videoEncodePerf;

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