PLMediaStreamingKit
PLMediaStreamingKit 是一个适用于 iOS 的 RTMP 直播推流 SDK,可高度定制化和二次开发。特色是支持 iOS Camera 画面捕获并进行 H.264 硬编码,以及支持 iOS 麦克风音频采样并进行 AAC 硬编码;同时,还根据移动网络环境的多变性,实现了一套可供开发者灵活选择的编码参数集合。借助 PLMediaStreamingKit,开发者可以快速构建一款类似 Meerkat 或 Periscope 的手机直播应用。PLMediaStreamingKit 支持两种不同层次的 API,分别为 PLMediaStreamingKit 和 PLStreamingKit, PLStreamingKit 提供包括音视频编码,封包以及网络发送功能,PLMediaStreamingKit 除了提供 PLStreamingKit 的功能以外还提供了内置的采集,音视频处理以及一些系统打断事件的处理等。我们强烈推荐对音视频没有太多了解的开发者使用 PLMediaStreamingKit 提供的 API 进行开发,如果您对音视频数据的采集和处理有更多的需求,那么需要使用 PLStreamingKit 提供的 API 进行开发,不过在进行开发之前请确保您已经掌握了包括音视频采集,编码以及处理等相关的基础支持。
功能特性
- 支持硬件编码
- 可选多种码率
- 支持 H.264 视频编码
- 支持 AAC 音频编码
- 支持前后摄像头
- 支持自动对焦
- 支持手动调整对焦点
- 支持修改闪光灯操作
- 支持多种分辨率编码
- 支持 HeaderDoc 文档
- 支持构造带安全授权凭证的 RTMP 推流地址
- 支持 ARMv7, ARM64, i386, x86_64 架构
- 支持 RTMP 协议直播推流
- 支持音视频配置分离
- 支持推流时可变码率
- 提供发送 buffer
- 支持缩放操作
- 支持静音音频操作
- 支持视频方向操作
- 支持自定义 DNS 解析
- 支持弱网丢帧策略
- 支持纯音频或纯视频推流
- 支持后台音频推流
- 支持自定义滤镜功能
- 内置水印功能
- 内置美颜功能
- 支持返听功能
- 支持内置音乐播放器混音功能
- 支持内置音效功能
- 内置动态帧率功能
- 内置自适应码率功能
- 内置断线及网络切换自动重连功能
- 支持预览与直播流分别镜像
- 支持自定义音视频处理
- 支持苹果 ATS 安全标准
- 提供两种层次的 API,灵活选择,高可定制性与简单两不误
- 支持后台推送图片功能
- 支持 QUIC 推流功能
系统要求
- iOS Target : >= iOS 8
- iOS 设备 : >= iPhone 5
安装方法
CocoaPods 是一款针对 Objective-C 的依赖管理工具,它可以简化第三方库如 PLMediaStreamingKit 的安装过程,以下命令可用于安装:
$ sudo gem install cocoapods
构建 PLMediaStreamingKit 2.0.0+ 版本需要使用 CocoaPods 0.39.0+。
Podfile
为了将 PLMediaStreamingKit 集成到你的 Xcode 工程中,你需要编写你的 Podfile
文件。
source 'https://github.com/CocoaPods/Specs.git'
target 'TargetName' do
pod 'PLMediaStreamingKit'
end
- 默认为真机版本。
- 如果需要同时使用模拟器和真机版本,则按照以下配置。
pod "PLMediaStreamingKit", :podspec => 'https://raw.githubusercontent.com/pili-engineering/PLMediaStreamingKit/master/PLMediaStreamingKit-Universal.podspec'
注意:由于运行时上限,目前 iOS 上架只支持动态库真机版本,请在 App 上架前,切换至真机版本。
然后,运行以下命令:
$ pod install
PLMediaStreamingKit 文档
请参阅开发者中心文档:PLMediaStreamingKit 文档
反馈及意见
遇到任何问题,可以通过在 GitHub 的 repo 提交 issues 进行反馈,尽可能详细地描述问题,并附上错误信息。在 Labels 中标注类型为 bug 或其他。