iOS-直播的推流与拉流框架

  • 前言
  • 前期准备:搭建基于RTMP的本地Nginx服务器和VLC安装
  • 搭建基于RTMP的本地Nginx服务器
  • VLC安装(此步骤可在集成完LFLiveKit和IJKPlayer后才做,可以先安装软件)
  • 集成bilibili / IJKPlayer 拉流三方
  • 集成LFLiveKit 推流三方


前言

前期准备:搭建基于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安装 中有