KSYLive_iOS

KSY Live iOS SDK

Apps UsingDownloads

Apps Using Downloads

Build Status Latest release CocoaPods platform CocoaPods version CocoaPods version

Source Type: Binary SDK
Charge Type: free of charge

阅读对象

本文档面向所有使用金山云直播SDK的开发、测试人员等, 要求读者具有一定的iOS编程开发经验,并且要求读者具备阅读wiki的习惯。

live_1.png live_1.png live_1.png
live_4.png live_5.png

一. 功能特性

金山云直播SDK是金山云提供的直播解决方案的一部分,完成了iOS端音视频数据采集、处理、推流和播放的工作。

金山云直播SDK不限制用户的推流、拉流地址。用户可以只使用金山云直播SDK而不使用金山云的云服务。

金山云直播SDK不收取任何授权使用费用,不含任何失效时间或者远程下发关闭的后门。同时金山云直播SDK也不要求ak/sk等鉴权,没有任何用户标识信息。

金山云直播SDK提供了业内一流的H.265编码、解码能力,H.265能力也是免费使用,欢迎集成试用。

金山云直播SDK当前未提供开源代码,如果需要其他定制化开发功能,请通过金山云商务渠道联系。

1.1 关于热更新

金山云SDK保证,提供的金山云直播SDK未使用任何热更新技术,例如:RN(ReactNative)、weex、JSPatch等,请放心使用。

1.2 推流功能

1.3 播放特点

1.4 文档

详情请见wiki

1.4 关于热更新

金山云SDK保证,提供的KSYLive iOS直播SDK未使用热更新技术,例如:RN(ReactNative)、weex、JSPatch等,请放心使用。

1.5 关于费用

金山云SDK保证,提供的KSYLive iOS直播SDK可以用于商业应用,不会收取任何SDK使用费用。但是基于KSYLive iOS直播SDK的其他商业服务,会由特定供应商收取授权费用,大致包括:

  1. 云存储
  2. CDN分发
  3. 动态贴纸
  4. 连麦
  5. 第三方美颜

二. 推流端大事记

2.1 2016年发布大事记  

  1. 2016.02.25 上行网络自适应上线;
  2. 2016.03.26 内建美颜上线;
  3. 2016.04.11 支持四种混响模式的美声上线;
  4. 2016.05.18 耳返上线;
  5. 2016.06.12 画中画推流上线;
  6. 2016.06.27 支持短视频录制;
  7. 2016.08.24 支持纯音频推流,支持后台推流,支持视频动态发送开关;
  8. 2016.08.31 场景编码,有效提升直播画质;
  9. 2016.09.07 内建新美颜上线;
  10. 2016.09.12 kit类顶层代码开源, podspec 中将集成framework改为集成静态库
  11. 2016.09.21 特效滤镜上线;
  12. 2016.09.26 双人连麦稳定版本上线;
  13. 2016.09.28 视频硬编性能编码模式上线。音频AAC硬编功能上线。网络自适应场景上线;
  14. 2016.10.19 支持推流横竖屏动态变化;
  15. 2016.10.20 支持replaykit录屏推流;
  16. 2016.11.18 支持边推流边录制为mp4文件
  17. 2016.2.22 支持动态帧率
  18. 2016.3.1 支持主播音频采集变声
  19. 2017.3.14 支持立体声推流
  20. 2017.5.16 支持涂鸦推流
  21. 2017.7.7 支持桌面录制、手游直播
  22. 2017.7.7 支持iOS 11 HEVC 硬编推流
  23. 2017.8.3 支持采集降噪

2.2 近期工作  

  1. 2017.03.xx 多视角直播;
  2. 2017.03.xx 背景音降噪;

三. SDK集成方法介绍

3.1 系统要求

3.2 下载工程

本SDK 提供如下列出获取方式:

3.2.1 从github clone

目录结构如下所示:

$ git clone https://github.com/ksvc/KSYLive_iOS.git KSYLive_iOS --depth 1

3.2.2 从bitbucket clone

对于部分地方访问github比较慢的情况,可以从bitbucket clone,获取的库内容和github一致。

$ git clone https://bitbucket.org/ksvc/ksylive_ios.git  --depth 1

3.2.3 使用Cocoapods 进行安装

通过Cocoapods 能将本SDK的静态库和代码下载到本地,只需要将类似如下语句中的一句加入你的Podfile:

pod 'libksygpulive/KSYGPUResource'
pod 'libksygpulive/libksygpulive'

执行 pod install即可.

其中, 第一段libksygpulive为SDK名,第二段KSYGPUResource和libksygpulive为子模块名

本SDK提供了多个不同的子模块以满足不同用户的需求:

Pod依赖进阶 <b markdown=1> * 本地开发版 (sdk clone或下载到本地后) ``` pod 'libksygpulive/libksygpulive', :path => '../' ``` * 直接指定SDK的github仓库地址和版本号 ``` pod 'libksygpulive/libksygpulive', :git => 'https://github.com/ksvc/KSYLive_iOS.git', :tag => 'v1.8.0' ``` * 从cocoapod官方库Trunk获取spec, 从github下载sdk ``` pod 'libksygpulive/libksygpulive' ``` * 从cocoapod官方库Trunk获取spec, 从金山云存储 ks3 下载sdk (国内速度较快) ``` pod 'libksygpulive_ks3/libksygpulive' ``` * 如果pod install 时出现无法找到specification的提示, 请先更新repo ``` pod repo update ``` * **注意1**: 不能将以上语句都加入Podfile, 他们作用是一样的, 只是Podspec读取位置不同. </b>

3.2.4 GPUImage依赖

请参考官方cocoapods提供的GPUImage,当前我们测试通过的版本是0.1.7

3.3 开始运行demo工程

!!!!!注意: 这里提供以下两种方法运行demo, 但是只能二选一; 如果要换另一种方法请重新下载解压, 或恢复git仓库的原状后再尝试.!!!!!

3.3.1 使用Cocoapod的的方式来运行demo

demo 目录中已经有一个Podfile, 指定了本地开发版的pod
在demo目录下执行如下命令, 即可开始编译运行demo

$ cd demo
$ pod install
$ open KSYLiveDemo.xcworkspace

注意:

  1. 更新pod之后, 需要打开 xcwrokspace, 而不是xcodeproj

3.3.2 手动编译framework生成依赖项运行示例demo

将压缩包解压(或者clone成功)后, 进入 releaseFramework 目录, 通过 release-libKSYLive.sh 下载依赖项并打包出framework,生成到KSYLive_iOS/framework/static目录下。

$ cd releaseFramework
$ ./release-libKSYLive.sh libksygpulive lite
$ ls ../framework/static
Bugly.framework  GPUImage.framework  libksygpulive.framework

参数的详细说明请参考脚本release-libKSYLive.sh的帮助(./release-libKSYLive.sh -h)或动态库第4点说明.

Bugly.framework 是为了收集demo的崩溃信息用的(仅仅demo里用到). 集成SDK到用户项目中时,不依赖Bugly.

打开demo目录下的KSYLiveDemo.xcodeproj, 修改KSYLiveDemo项目的配置文件:
选中KSYLiveDemo工程->选中Project KSYLiveDemo->选中 Info 标签->选择Configurations->Debug或Release->给KSYLiveDemo分别选择对应的KSYLiveDemo-framework.xcconfig文件。注意,如果使用动态库则选择KSYLiveDemo-dy-framework.xcconfig。

xcode_configs

或者手动在项目配置中添加如下参数: (具体请参见 demo目录下的 KSYLiveDemo-framework.xcconfig)

OTHER_LDFLAGS = $(inherited) -ObjC -all_load -framework libksygpulive -framework GPUImage -framework Bugly -lstdc++.6 -lz
FRAMEWORK_SEARCH_PATHS = $(inherited) ../framework/ ../framework/static

以上为静态库的集成方法,动态库的配置使用方法请参考Wiki中动态库相关内容。

3.4 添加头文件到需要使用本SDK的文件中

#import <GPUImage/GPUImage.h>
#import <libksygpulive/KSYGPUStreamerKit.h>

以上两个头文件都是需要引入的:

3.5 SDK版本号查询

本SDK的版本号 主要通过核心类查询

NSLog(@"version: %@", [streamerBase getKSYVersion]);
NSLog(@"version: %@", [kit getKSYVersion]);

3.6 集成时的注意事项

四. 参考文档

五. 播放器使用示例

请见github库:https://github.com/ksvc/KSYMediaPlayer_iOS.git

六. 反馈与建议

6.1 反馈模板

类型   描述
SDK名称 KSYLive_iOS
SDK版本 v2.5.0
设备型号 iphone7
OS版本 iOS 10
问题描述 描述问题出现的现象
操作描述 描述经过如何操作出现上述问题                    
额外附件 文本形式控制台log、crash报告、其他辅助信息(界面截屏或录像等)

6.2 联系方式

金山云计算