iOS ffmpeg 之Linux下搭建rtmp nginx服务器

iOS直播技术有很多,针对iOS平台有苹果多HLS点播,还有其他流媒体协议例如RTMP协议、RTSP协议、MMS协议等。这里要讲的是iOS 和Android通用的RTMP,利用RTMP我们可以传输H264视频流,iOS或Android客户端接收到视频流后可以用FFmpeg实现H264 的解码最终实现视频的播放。


首先我们需要一个Linux的平台,这里用的是Ubuntu12.04 + Mac Paralles虚拟机。有了软硬件平台我们就可以着手搭建神奇的直播平台了。


先建立一个目录用于存放下载的安装包(我建在桌面目录叫softwares:~/Desktop/softwares),接下来下载这些安装包:

1.Nginx服务器 http://nginx.org/download/nginx-1.4.3.tar.gz

2.Nginx RTMP模块 https://codeload.github.com/arut/nginx-rtmp-module/zip/master, 当然如果你熟练Git可以用Git去克隆一个。

3.OpenSSL 模块 http://www.openssl.org/source/openssl-1.0.0t.tar.gz

4.PCRE 模块 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.zip

5.zlib模块 http://zlib.net/zlib-1.2.8.tar.gz

如果下载链接不可用可直接百度相应关键字进入官网下载即可,下载完这些安装包依次解压。


接下来就是编译nginx,我们要把RTMP、OpenSSL、PCRE和zlib模块编译进nginx当中。

打开Linux终端进入到nginx安装源目录:

cd Desktop/softwares/nginx-1.4.3]

添加nginx-rtmp-module-master、pcre-8.37、openssl-1.0.0t和zlib-1.2.8这些模块

./configure --add-module=../nginx-rtmp-module-master --with-pcre=../pcre-8.37 --with-openssl=../openssl-1.0.0t --with-zlib=../zlib-1.2.8

注意../ 表示 安装目录(Desktop/softwares/)

如果出现错误 error: You need a C++ compiler for C++ support 表示你需要安装gcc和g++编译器,不怕这两条命令可以帮你搞定

sudo apt-get install gcc

sudo apt-get install g++

两个命令先后执行

如果到这一步都没有问题,接下来我们进行编译(这个过程可能有点长)

sudo make

经过漫长的编译可以马上宣布大功告成,让我们敲完最后一个命令把编译终结吧(安装过程貌似很快)

sudo make install


要启动服务器进行测试了,好紧张有木有,激动人心的时刻就要到来了,小伙伴们睁大你们的双眼,先切到nginx安装目录

cd /usr/local/nginx/sbin/

sudo ./nginx

这样服务器就启动了,打开Linux自带的火狐浏览器输入 http://localhost 回车,我擦什么情况?

看这里

还没完呢,急啥?

我们需要配置一下nginx

cd /usr/local/nginx/conf

sudo gedit nginx.conf

将下面代码全部替换进去

worker_processes 1; error_log logs/error.log debug; events { worker_connections 1024; } rtmp { server { listen 1935; application myapp { live on; #record keyframes; #record_path /tmp; #record_max_size 128K; #record_interval 30s; #record_suffix .this.is.flv; #on_publish http://localhost:8080/publish; #on_play http://localhost:8080/play; #on_record_done http://localhost:8080/record_done; } } } http { server { listen 8080; location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /path/to/nginx-rtmp-module/; } location /control { rtmp_control all; } #location /publish { # return 201; #} #location /play { # return 202; #} #location /record_done { # return 203; #} #location /rtmp-publisher { # root /usr/local/nginx/test; #} #location / { # root /usr/local/nginx/test/www; #} } }

停止nginx然后重启

cd /usr/local/nginx/sbin

sudo ./nginx -s stop

sudo ./nginx

最后打开火狐浏览器输入 http://localhost 回车,出来nginx的欢迎页面没,没出来你打西我,好吧你打西我。

posted @ 2016-01-30 09:45  zhangqipu  阅读(311)  评论(0编辑  收藏  举报