运行此程序报错(报缺少IJKMediaFramework.framework的错误),请下载IJKMediaFramework.framework解压IJKMediaFramework.framework.zip后直接拖进工程运行即可。
此APP使用OC
和Swift
混编,结构使用SB搭建更能直观展现项目结构。其中IJKMediaFramework
和pili-librtmp
使用OC桥接swift。通过抓取映客的接口实现直播,推流使用的搭建本地服务器实现推流。没有完全照搬映客APP,主要是为了熟悉Swift下常用三方库的使用。所以此App不是高仿只是Demo但是基本直播功能均已实现。
- 采集: iOS系统因为软硬件适配性比较好, 只要能熟练运用三方库就好。
- 处理: 美颜,模糊效果, 水印...,直接运用GPUImage。
- 编码: 重难点在于要在分辨率,帧率,码率,GOP等参数设计上找到最佳平衡点I,P,B帧和PTS,DTS的关系,GOP相关。
- 传输: 各大厂商都会提供SDK,网易直播云、七牛、腾讯、百度、新浪。使用直播云的就是能快速上线App,功能十分齐全,可以播放器和推流端,集成速度快就是流量费太贵了。
- 服务器处理: 让推送上来的流适配各个平台各种不同的协议, 比如:RTMP,HLS,FLV...
- 解码渲染: 从服务器获取数据播放,这里就会遇到软硬解码问题区别,还有音画同步。
-
播放器采用ijkplayer,是基于FFmpeg的跨平台播放器针对RTMP优化,开源项目已经被多个App使用,其中映客、美拍和斗鱼使用了。这是已经打包好的直接导入就好IJKMediaFramework.framework
-
接口采用映客的只支持刷新(最置顶5条),没有抓到加载接口。。。。。。
-
礼物已经有许多造好的轮子直接拿过来用就好,还有一些模仿着写。 弹幕。
-
关于
ijkplayer
方法使用在Demo中已经有详细注释。
-
技术点特别多但是三方框架方法已经写好直接调用就好注释还是中文的。LFLiveKit
-
关于本地服务器的搭建快速集成iOS基于RTMP的视频推流
-
美颜模糊处理。
-
视频质量,分辨率,帧数,码率