iOS 直播app探索(一)

最近对直播类app十分上心,十分想做一个demo出来,鉴于目前对此一无所知,还是站在巨人们对肩膀上开始学习吧。

本次先试着搭建直播推流、拉流、播放的框架。演示的话以网上大神提供的LXLiveAll为例,本人对内部代码现在不了解。先搭建框架吧。

主要使用的三个技术:

  • 推流:LFLiveKit
  • 播放:ijkplayer
  • 服务器:nginx+rtmp+ffmpeg

一、推流/拉流

LFLiveKit:框架支持RTMP,由Adobe公司开发。列出LFLiveKit的github地址https://github.com/LaiFengiOS/LFLiveKit

LFLiveKit库里已经集成GPUImage框架用于美颜功能,GPUImage基于OpenGl开发,纯OC语言框架,封装好了各种滤镜同时也可以编写自定义的滤镜,其本身内置了多达125种常见的滤镜效果。可谓功能是相当的强大。

1)项目中集成LFLiveKit

使用CocoaPods可以很方便的引入LFLiveKit框架,具体的配置方式展示以我写的Podfile文件为例

Podfile

source 'https://github.com/CocoaPods/Specs.git'
platform :ios,'8.0'

target "LXLiveAll" do

    pod 'LFLiveKit'
    pod 'AFNetworking'
    pod 'MJExtension'
    pod 'MLTransition'
    pod 'MJRefresh'
    pod 'SDWebImage'
end

二、播放

ijkplayer:是基于FFmpeg的跨平台播放器框架,github地址:https://github.com/Bilibili/ijkplayer

添加ijkplayer的方式有两种:
一种是编译ijkplayer引入IJKMediaPlayer.xcodeproj
一种是通过编辑ijkplayer自己构建IJKMediaFramework库(一般真机+模拟器)

1)由于配置时间较久,可以直接跳下载大神们以构建好的IJKMediaFramework库。

这里写图片描述

2)添加完IJKMediaFramework库后还需要导入IJKMediaFramework所需的框架。

这里写图片描述

三、服务器搭建

一、打开终端安装Homebrow
输入命令行安装Homebrow

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果想卸载可以使用以下命令

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

二、安装nginx
2.1) 先clone nginx项目到本地:

brew tap homebrew/nginx

2.2)执行安装

brew install nginx-full --with-rtmp-module

以上步骤nginx和rtmp模块就安装好了,开始来配置nginx的rtmp模块

输入brew info nginx-full 查看nginx安装路径
这里写图片描述

通过输出打印可以看到nginx的配置文件在

/usr/local/etc/nginx/nginx.conf

然后进入进入/usr/local/etc/nginx/nginx.conf文件里,在最后一行添加如下代码

rtmp {
    server {
        listen 1935;
        application rtmplive {
            live on;
            record off;
        }
    }
}

2.3) 重启nginx

nginx -s reload

三、启动nginx服务
输入命令:

nginx

在浏览器中输入地址:

http://localhost:8080

如果出现‘Welcom to nginx’则表示nginx安装成功。

四、安装ffmepg工具

ffmpeg实现视频的一系列处理

brew install ffmpeg

安装ffmpeg时间就要长一点了. 如果速度过慢, 可以尝试翻墙。等待的过程中, 再安装一个支持rtmp协议的视频播放器VLC。

安装成功后测试推流操作:

五:ffmpeg推流
以我mac桌面的一个test.mp4视频为例, 执行推流命令。(保证nginx已经正常打开)

ffmpeg -re -i /Users/maying/Desktop/test.mp4 -vcodec copy -f flv rtmp://localhost:1935/rtmplive/room

在VLC中打开rtmp://localhost:1935/rtmplive/room 地址

VLC ->File->Open Network..->输入地址如下

这里写图片描述

这里写图片描述

到这里 推流:LFLiveKit + 播放:ijkplayer + 服务器:nginx+rtmp+ffmpeg的直播需要的框架就搭建好了,接下来可以愉快的进行下一步探索了。

看到几篇不错的入门blog,收藏一下哈:
1、http://www.jianshu.com/p/339041855364
2、http://www.jianshu.com/p/30595a5bff42
3、http://www.jianshu.com/p/a0397c98d907
4、http://www.jianshu.com/p/b9486b0f770f
5、http://www.jianshu.com/p/8ea016b2720e

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值