1 Star 1 Fork 0

cnsuer / KlinkLive

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README

#KSY Live iOS SDK

Build Status CocoaPods platform CocoaPods doc

  • github : CocoaPods version
  • ks3 : CocoaPods version

一. 功能特性

1.1 推流功能

1.2 文档

详情请见wiki

1.3 播放特点

  • 与系统播放器MPMoviePlayerController接口一致,可以无缝快速切换至KSYMediaPlayer;
  • 本地全媒体格式支持, 并对主流的媒体格式(mp4, avi, wmv, flv, mkv, mov, rmvb 等 )进行优化;
  • 支持广泛的流式视频格式, HLS, RTMP, HTTP Pseudo-Streaming 等;
  • 低延时直播体验,配合金山云推流sdk,可以达到全程直播稳定的4秒内延时;
  • 实现快速满屏播放,为用户带来更快捷优质的播放体验;
  • 版本适配支持iOS 7.0以上版本;
  • 业内一流的H.265解码;
  • 小于2M大小的超轻量级直播sdk;

二. 推流端大事记

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.04 两人连麦内测;
  8. 2016.08.24 支持纯音频推流,支持后台推流,支持视频动态发送开关;
  9. 2016.08.31 场景编码,有效提升直播画质;
  10. 2016.09.07 内建新美颜上线;
  11. 2016.09.12 kit类顶层代码开源, podspec 中将集成framework改为集成静态库
  12. 2016.09.21 特效滤镜上线;
  13. 2016.09.26 双人连麦稳定版本上线;
  14. 2016.09.28 视频硬编性能编码模式上线。音频AAC硬编功能上线。网络自适应场景上线;
  15. 2016.10.19 支持推流横竖屏动态变化
  16. 2016.10.20 支持replaykit录屏推流
  17. 2016.11.18 支持边推流边录制为mp4文件

2.2 近期工作

  1. 2017.02.xx 动态帧率;
  2. 2017.02.xx 变声处理;
  3. 2017.02.xx 行车记录仪直播;
  4. 2017.03.xx 多视角直播;
  5. 2017.03.xx 背景音降噪;

三. SDK集成方法介绍

3.1 系统要求

  • 最低支持iOS版本:iOS 7.0
  • 最低支持iPhone型号:iPhone 4
  • 支持CPU架构: armv7,armv7s,arm64(和i386,x86_64模拟器)
  • 含有i386和x86_64模拟器版本的库文件,推流功能无法在模拟器上工作,播放功能完全支持模拟器。

3.2 下载工程

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

3.2.1 从github clone

目录结构如下所示:

  • demo : demo工程为KSYLive ,演示本SDK的主要接口的使用
  • doc/docset : appleDoc风格的接口文档,安装后可在xcode中直接看到方法和属性的文档
  • doc/html : appleDoc风格的网页版接口文档,也可查看在线版
  • prebuilt : 预编译库的头文件和库文件
  • source : 顶层kit类的源代码
  • releaseFramework: 用于将预编译库打包为方便集成的framework的脚本和工程
$ git clone https://github.com/ksvc/KSYLive_iOS.git KSYLive_iOS --depth 1

3.2.2 从csdn clone

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

$ git clone https://code.csdn.net/ksvc/ksylive_ios.git  --depth 1

3.2.3 使用Cocoapods 进行安装

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

# 本地开发版 (sdk clone或下载到本地后)
pod 'libksygpulive/libksygpulive', :path => '../'

# 私有库 (直接指定SDK的github仓库地址)
pod 'libksygpulive/libksygpulive', :git => 'https://github.com/ksvc/KSYLive_iOS.git'

# 私有库 (直接指定SDK的github仓库地址和版本号)
pod 'libksygpulive/libksygpulive', :git => 'https://github.com/ksvc/KSYLive_iOS.git', :tag => 'v1.8.0'

# 更新repo
pod repo update

# 从cocoapod官方库Trunk获取spec, 从github下载sdk
pod 'libksygpulive/libksygpulive'

# 从cocoapod官方库Trunk获取spec, 从金山云存储 ks3 下载sdk (国内速度较快)
pod 'libksygpulive_ks3/libksygpulive'

执行 pod install即可.

  • 注意1: 不能将以上语句都加入Podfile, 他们作用是一样的, 只是Podspec读取位置不同.
  • 注意2: 如果pod install 时出现无法找到specification的提示, 请先更新repo

其中, libksygpulive为子模块, 为了满足不同用户的需求, libksygpulive中提供了4个不同的子模块:

  • KSYMediaPlayer : 用于直播的播放内核(支持格式精简)
  • KSYMediaPlayer_vod : 用于点播的播放内核(支持格式丰富)
  • libksygpulive     : 用于直播推流和播放的SDK(直播推流功能和精简版本的播放SDK)
  • libksygpulive_265 : 用于直播推流和播放的SDK (支持265推流和精简版本的播放SDK)
  • KSYGPUResource     : 直播推流用到的资源文件, 主要用于特效滤镜

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

  • 将SDK 打包为framework

将压缩包解压(或者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添加库依赖选项

打开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>

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

  • GPUImage.h是因为依赖第三方framework需要引入的

  • KSYGPUStreamerKit.h 为开放的顶层kit类, kit类可以直接使用, 也可以自行修改

  • 当需要自定义修改GPUImage时,GPUImage的版本要求是0.1.7

3.5 SDK版本号查询

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

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

3.6 集成时的注意事项

  • 本framework已经包含播放SDK
    且会跟播放SDK产生冲突,在集成前,请先保证将之前集成的KSY播放SDK移除
  • 本framework可能与其他使用了FFmpeg的静态库冲突 (冲突时可以考虑使用动态库)
  • 本framework为静态库,虽然库的大小为20M+,但是最后链接后,对app的增量只有5M+
  • 如果使用cocoapod官方库Trunk时,发现找不到最新版本的库, 需要先执行如下命令, 更新spec库
pod repo update

四. 参考文档

五. 播放器使用示例

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

六. 反馈与建议

Empty file

About

Klink推流 expand collapse
Objective-C
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
Objective-C
1
https://gitee.com/cnsuer/KlinkLive.git
git@gitee.com:cnsuer/KlinkLive.git
cnsuer
KlinkLive
KlinkLive
master

Search