iOS-直播的推流与拉流框架
- 前言
- 前期准备:搭建基于RTMP的本地Nginx服务器和VLC安装
- 搭建基于RTMP的本地Nginx服务器
- VLC安装(此步骤可在集成完LFLiveKit和IJKPlayer后才做,可以先安装软件)
- 集成bilibili / IJKPlayer 拉流三方
- 集成LFLiveKit 推流三方
前言
- 关于直播技术的推流:LFLiveKit和IJKPlayer的基本集成和使用
- 集成后的demo下载
前期准备:搭建基于RTMP的本地Nginx服务器和VLC安装
搭建基于RTMP的本地Nginx服务器
- 第一步:查看brew有没有安装 终端输入如下:
man brew
- 如果有,如下图,直接跳到第二步,可直接在终端输入
wq
退出 - 如果没有安装,则在终端输入以下命令安装
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 第二步:先clone nginx项目到本地 终端输入如下:
brew tap homebrew/nginx
- 报错如下:
- 出现的原因是homebrew/nginx的git路径变了(貌似是2018年3月更新),查找得到把克隆到本地的命令更改后可解决,在终端再输入如下:
brew tap denji/homebrew-nginx
- 第三步:克隆成功,安装Nginx 终端输入如下:
brew install nginx-full --with-rtmp-module
- 如果报错,如下图,执行第四步,如果没有报错也执行一下第四步
- 第四步:克隆成功,安装Nginx 终端输入如下:
brew unlink nginx
- 第五步:启动Nginx 终端输入如下:
nginx
- 在你的浏览器输入 http://192.168.1.105:8080(192.168.1.105为本机IP地址) ,显示如下图则成功,如果不成功请百度搜索:8080端口被占用
- 如何查看当前电脑的ip地址
- 第六步:搜索nginx.conf
- 在终端 按住 Command+F 搜索 nginx.conf
- 第七步:打开nginx.conf - 回到桌面按住 Shift+Command+G 前往 nginx.conf (终端不要关闭,不然会重新来)
- 第八步:选择文本编辑打开 nginx.conf ,并且输入
- 1.配置Nginx,支持rtmp协议推流,将如下代码插入,如下图
rtmp {
server {
listen 1935;
application rtmplive {
live on;
max_connections 1024;
}
application hls{
live on;
hls on;
hls_path /usr/local/var/www/hls;
hls_fragment 1s;
}
}
}
- 2.配置Nginx,支持http协议拉流,将如下代码插入,如下图
location /hls {
#Serve HLS config
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /usr/local/var/www;
add_header Cache-Control no-cache;
}
- 第九步:最后一步,重启nginx 终端输入如下:
nginx -s reload
- 在此本地推流的工作完成,暂时不支持外网推流
VLC安装(此步骤可在集成完LFLiveKit和IJKPlayer后才做,可以先安装软件)
- 百度搜索 VLC
- 使用VLC:rtmp://192.168.1.105:1935/rtmplive/room (192.168.1.105为本机IP地址)
- rtmp://192.168.1.105:1935/rtmplive/room (192.168.1.105为本机IP地址) 将此复制进去,点击open,等待一会儿即可
集成bilibili / IJKPlayer 拉流三方
- github 搜索IJKPlayer,下载完成后,打开
- 运行肯定不成功
- 第一步在 终端输入,等待ffmpeg安装:
cd ijkplayer-master
./init-ios.sh
- 第二步 成功后,终端输入:
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
- 运行还是不成功 - 直接将我的 IJKMediaFramework.framework 拿出来即可
- 在工程中加入以下framework,并且将 IJKMediaFramework.framework 移到工程中
AudioToolbox.framework
AVFoundation.framework
CoreGraphics.framework
CoreMedia.framework
CoreVideo.framework
libbz2.tbd
libz.tbd
MediaPlayer.framework
MobileCoreServices.framework
OpenGLES.framework
QuartzCore.framework
UIKit.framework
VideoToolbox.framework
- 如果不够详细,百度ijkplayer的集成即可
集成LFLiveKit 推流三方
- 直接在pod中 输入即可集成:
pod 'LFLiveKit'
- 在info.plist 中输入
<key>NSCameraUsageDescription</key>
<string>打开相机</string>
<key>NSMicrophoneUsageDescription</key>
<string>打开麦克风</string>
- 直接使用直播 本地直播rtmp://192.168.1.105:1935/rtmplive/room (192.168.1.105为本机IP地址) 即可,在本文VLC安装 中有