iOS简单直播实现(一:创建本地rtmp服务器)

  由于业务需求,需要从腾讯直播sdk要迅速转移到自主开发(先让我默哀三分钟)。不多说,直接开始唠嗑!

  这个项目超级简单,简单到只能一个推流,一个拉流的功能。需求多的再另谈。

  前期准备:推流用优酷开源的LFLiveKit框架。

       拉流(实际上就是一个播放器)用ijkplayer 框架,当然这个也是开源的。

       创建本地rtmp服务器

创建本地rtmp服务器。(这个地方坑比较多,老夫深陷其中欲罢不能)

一.打开终端, 查看是否已经安装了Homebrew, 直接终端输入命令

  man brew

如果已经安装就会显示帮助信息,没有的情况下就去安装,终端之行命令:

  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执行命令:(分布执行)

  brew tap homebrew/nginx

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

  nginx

三个命令执行完成后浏览器打开:

  http://localhost:8080

如果出现 welcome to nginx! .......表示成功

如果出现端口被占用,则查看端口PID,执行

  lsof -i tcp:8080

找到自己的端口kill 掉,执行

  kill xxxx(xxxx表示自己的端口)

重复二

三.配置nginx和ramp

1.查看nginx的安装路径,执行命令:

  brew info nginx-full

2.找到nginx.conf的所在位置,然后进入文件夹,用记事本打开nginx.conf,滚到最后空白处粘贴:

# 在http节点后面加上rtmp配置:
rtmp {
    server {
        listen 1935;
        application rtmplive {
            live on;
            record off;
        }
    }
}

3.查看nginx版本号,执行:

  nginx -v

4.重启nginx

/usr/local/Cellar/nginx-full/xxxx/bin/nginx -s reload   (xxxx表示nginx版本号)

四.安装ffmpeg,执行:

  brew install ffmpeg(这个有50兆,建议FQ啊亲!!)

安装完成后,本地的rtmp服务器久已经安装完成了。

五.测试

1.在桌面放上一个mp4的文件,例如文件名为:text.mp4

2.终端执行:ffmpeg -re -i /Users/a123/Desktop/text.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://localhost:1935/rtmplive/room
黄色为这个视频文件的路径,终端会显示你想要的结果(你应该能看得懂)。

3.如果(我是说如果,你还想从服务器里面读取这个推流上来的视频),那就去下载一个播放器,自行百度。然后打开:rtmp://localhost:1935/rtmplive/room就能播放了。

终~~~~~~~~~(好多都是借鉴别人的,好紧张啊,会不会被举报呀http://www.cnblogs.com/damiao/p/5231221.html)

时间: 2024-08-25 07:36:44

iOS简单直播实现(一:创建本地rtmp服务器)的相关文章

iOS简单直播实现(三:IJKMediaFramework拉流)

推流完成后,需要拉流才能进行完整的直播.拉流我们采用的也是一个开源的第三方库IJKMediaFramework. 这个库本质是一个播放器,能播放flv格式的播放器.用起来和ios自带的AVPlayer很相似. 实现功能:1.拉流播放.2.监听. 一.创建占位图和卡顿占位动效,代码如下: //直播前的占位图片- (UIImageView *)placeHolderView { if (!_placeHolderView) { _placeHolderView = [[UIImageView all

iOS简单直播实现(二:推流)

推流用的是一个第三方的IFLiveKit框架.这个框架基于rtmp协议的,c语言和oc语言分开的非常清楚,对oc语言非常友好,使用起来相对简单. IFLiveKit内部集成了GPUIImage.内部实现了图片渲染等美艳效果.减少了开发时候美艳效果的调试. 需求:创建一个简单的推流页面.包含功能有:1.推流状态监听.2.切换摄像头.3.切换美艳效果.4.开关推流. 一.推流之前需要检查摄像头和麦克风等权限是否开启,并启动摄像头,核心代码如下: //判断是否有摄像头 if(![UIImagePick

转:代码管理技巧——两步创建本地SVN服务器图文教程

from: http://www.cnblogs.com/tianhonghui/archive/2012/07/22/2603454.html 当我们进行开发的时候,不论是独立开发还是处在团队中,合理的对源代码管理是十分重要的. 下面我就介绍一下如何在本地创建SVN服务器. 我们需要首先安装 TortoiseSVN 之后教程开始: 首先我们需要在本地创建一个文件夹,作为SVN服务的文件夹 之后我们右键选择菜单下Create Repository here如下图: 屏幕剪辑的捕获时间: 2012

Linux自动同步网络时间,并创建本地Ntp服务器。

NTP (Network Time Protocol)作用:将网络中的各个主机的时间进行同步,局域网中的误差<0.1ms架构:C/S实验环境:两台有网络的Centos,其中134为服务端,135为客户端.134同步网络时间,其他服务器同步134时间.1.查看134的系统信息.时间和时区cat /etc/redhat-release datetimedatectl | grep "Time zone"此时可以看到134时区为上海.时间和网络时间不同步2.查看135的系统信息.时间和

iOS创建本地通知和删除对应的通知,工作日通知

本文的代码主要是:创建本地通知,删除对应的本地通知,创建工作日闹钟 直接上代码: // // ViewController.m // LocalNSNotification // // Created by wusiping on 16/1/27. // Copyright © 2016年 wusiping. All rights reserved. // #import "ViewController.h" #define LOCAL_NOTIFY_SCHEDULE_ID @&quo

iOS 电脑新装的系统, 使用sourceTree 创建本地仓库的时候, 总是提示, 无效路径

把qq聊天记录分享出来: 我电脑新装的系统, 使用sourceTree 创建本地仓库的时候, 总是提示, 无效路径 请问哪位遇到过 求指教 群里有产品经理没有? ssh 配制的不对 重装系统过后,重新生成一下你的ssh,然后在GitHub 上添加你的ssh,再用source tree 就可以了 确实如此, 重新生成就好了

ReplayKit库,iOS原生直播神器

版权声明:本文为博主原创,如需转载请注明出处. 前言 ReplayKit 是WWDC15推出的苹果原生录屏 API.在iOS9的时候主要提供的是录屏,录制完成后可以进行查看.编辑.通过指定方式分享出去. 在WWDC16上新版的 ReplayKit 提出了了 live 功能,简单说就是通过 ReplayKit 可以进行录屏直播.这对于苹果的手游直播行业有着很重要的意义. 首先给出视频地址和API文档 Go Live with ReplayKit - WWDC 2016 ReplayKit API

iOS简单易用的标签列表界面

iOS简单易用的标签列表界面 Demo效果: Demo演示: 1.使用cocoapods引入YZTagListView,或者直接拖入YZTagListView文件夹到项目中 2.导入YZTagListView.h头文件 1 #import "YZTagList.h" 3.创建YZTagListView控件 1 2 3   YZTagList *tagList = [[YZTagList alloc] init];   tagList.backgroundColor = [UIColor

实现输出h264直播流的rtmp服务器 flash直播服务器

实现输出h264直播流的rtmp服务器 RTMP(Real Time Messaging Protocol)是常见的流媒体协议,用来传输音视频数据,结合flash,广泛用于直播.点播.聊天等应用,以及pc.移动.嵌入式等平台,是做流媒体开发经常会接触到的协议.我之前曾经写过一篇文章“RTMP协议发送H.264编码及AAC编码的音视频”,简单介绍过如何在自己的程序里使用rtmp协议,不过那篇文章讲的主要是如何实现一个rtmp直播的发布端,主要侧重在“采集-编码-rtmp发布”这样的流程.这篇文章的