基于RTMP协议主要有两种封装库来实现推流:
1、FFmpeg推流(Mac上搭建nginx+rtmp直播服务器)
http://www.jianshu.com/p/a0397c98d907
2、LFLiveKit推流:FFmpeg集成工程中比较麻烦,相对来说LFLiveKit在工程中集成则更方便一点,重要的是对于新手来说包含采集、美颜、推流封装模块,可以直接上手使用。
下面来介绍下LFLiveKit客户端推流
1、首先需要 pod 'LFLiveKit'引入第三方库,然后在采集后加入服务器推流地址url即可
-(void)startLiveButton:(id)sender
{
UIButton *startButton = (UIButton *)sender;
startButton.selected = !startButton.selected;
if(startButton.selected){
[_startLiveButton setTitle:@"结束直播" forState:UIControlStateNormal];
LFLiveStreamInfo *stream = [LFLiveStreamInfo new];
stream.url = @"rtmp://192.168.1.178:1935/rtmplive/room";
[_liveSession startLive:stream];
} else {
[_startLiveButton setTitle:@"开始直播" forState:UIControlStateNormal];
[_liveSession stopLive];
}
}
2、手机上运行直播demo
3.然后打开 VLC 中 的 file -- Open Network, 直接输入代码中的 url:
下面是效果图,会有些延迟:
ps:由于我们是本地搭建服务器,所以运行服务器的电脑和手机保证在同一WiFi下,另外在运行真机的demo中必须把地址换成你自己的电脑IP(192.168.1.178 ),不能再用local 本地代替了。
ps:
1.直播已有一些 SDK ,如暴风云直播、七牛云直播、网易云信直播 SDK、腾讯直播 SDK 等,可选性比较多,第三方框架也比较多,当然也有通过自己封装的协议进行直播的。
2.相关第三方框架
GDLiveStreaming 是对开源框架 VideoCore 简单封装,提供视频录制、推送与存储,找到这个框架,但pod下来之后,编译过不去,不过可以研究下开源代码。
参考资料:
http://blog.csdn.net/pilgrim1385/article/details/51681332
http://www.jianshu.com/p/c71bfda055fa