【项目一 · 直播】 ☞ 3. 推流直播
一、推流
1. 概念
推流,就是将采集到的音频,视频数据通过流媒体协议发送到流媒体服务器。
2. 推流过程
- 推流前的工作:采集,处理,编码压缩
- 推流中做的工作: 封装,上传
3. 推流框架介绍
- LFLiveKit (推荐):由Adobe公司开发。框架已经实现了 后台录制、美颜功能,支持H264(视频编码)、AAC(音频编码)编码,支持RTMP传输协议,动态改变速率,弱网丢帧(网络慢的情况下,为了保证视频通畅,通常采用丢帧处理)等。
- LFLiveKit库里已经集成GPUImage框架用于美颜功能,GPUImage基于OpenGl开发,纯OC语言框架,封装好了各种滤镜同时也可以编写自定义的滤镜,其本身内置了多达125种常见的滤镜效果。
- LiveVideoCoreSDK : 实现了美颜直播和滤镜功能,我们只要填写RTMP服务地址,直接就可以进行推流啦。
- PLCameraStreamingKit: 也是一个不错的 RTMP 直播推流 SDK。
PS: 另外其实好多第三方的集成也很好用,可参考
- 七牛云
- 腾讯的直播 LVB
- 网易云信 SDK
- 趣拍云
二、LFLiveKit框架的使用
- (LFLiveSession*)session { if (!_session) { _session = [[LFLiveSession alloc] initWithAudioConfiguration:[LFLiveAudioConfiguration defaultConfiguration] videoConfiguration:[LFLiveVideoConfiguration defaultConfiguration]]; _session.preView = self; _session.delegate = self; } return _session; } - (void)startLive { LFLiveStreamInfo *streamInfo = [LFLiveStreamInfo new]; streamInfo.url = @"your server rtmp url"; [self.session startLive:streamInfo]; } - (void)stopLive { [self.session stopLive]; } //MARK: - CallBack: - (void)liveSession:(nullable LFLiveSession *)session liveStateDidChange: (LFLiveState)state; - (void)liveSession:(nullable LFLiveSession *)session debugInfo:(nullable LFLiveDebug*)debugInfo; - (void)liveSession:(nullable LFLiveSession*)session errorCode:(LFLiveSocketErrorCode)errorCode;
相关推荐
wwzaqw 2020-09-04
chensen 2020-11-14
lwnylslwnyls 2020-11-06
ATenhong 2020-10-15
yanzhelee 2020-10-13
佛系程序员J 2020-10-10
guojin0 2020-10-08
佛系程序员J 2020-10-08
bluewelkin 2020-09-16
zhongdaowendao 2020-09-02
favouriter 2020-08-18
奎因amp华洛 2020-08-15
一青年 2020-08-13
千锋 2020-08-10
nangongyanya 2020-08-09
dongxurr 2020-08-08
明天你好 2020-08-03
kyelu 2020-08-03
Ashes 2020-08-03