搭建nginx rtmp直播服务器,ffmpeg模拟推流

原文:http://cxuef.github.io/linux/%E3%80%90%E7%BD%AE%E9%A1%B6%E3%80%91%E6%90%AD%E5%BB%BAnginx-rtmp%E7%9B%B4%E6%92%AD%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%8Cffmpeg%E6%A8%A1%E6%8B%9F%E6%8E%A8%E6%B5%81/


Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案。这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善并可支持RTMP和HLS的流媒体服务器。
nginx配合ffmpeg做流媒体服务器的原理是:nginx通过rtmp模块提供rtmp服务,ffmpeg推送一个rtmp流到nginx,然后客户端通过访问nginx来收看实时视频流。HLS也是差不多的原理,只是最终客户端是通过HTTP协议来访问的,但是ffmpeg推送流仍然是rtmp的。

好啦,现在开始进入主题吧~

1. 从github下载nginx-rtmp-module

eirot@ubuntu64:~/MyDev$ git clone https://github.com/arut/nginx-rtmp-module.git

2. 下载nginx压缩包并解压

http://nginx.org/en/download.html

3. 解压nginx-1.11.1.tar.gz并进入查看

eirot@ubuntu64:~/MyDev$ tar -xvf nginx-1.11.1.tar.gz

4. 配置nginx

eirot@ubuntu64:~/MyDev/nginx-1.11.1$ ./configure –prefix=/usr/local/nginx –add-module=/home/eirot/MyDev/nginx-rtmp-module –with-http_ssl_module –with-debug

【注意】如果安装失败,请检查系统是否有PCRE、OpenSSL、zlib 等library

5. 直接开始make nginx-rtmp-module

eirot@ubuntu64:~/MyDev/nginx-1.11.1$ make

6. 然而出错啦!好吧,修改/home/eirot/MyDev/nginx-rtmp-module/ngx_rtmp_core_module.c中的memcpy函数参数类型

7. 修改后再次make,没有报错得到*.o编译输出

eirot@ubuntu64:~/MyDev/nginx-1.11.1$ make

8. OK之后,执行make install

eirot@ubuntu64:~/MyDev/nginx-1.11.1$ sudo make install

9. 检查/usr/local/nginx/sbin/下是否有生成nginx

10. 修改nginx.conf,添加rtmp配置项(端口和服务名可以自己修改)

       
       
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
       
       
rtmp {
server {
listen 1935;
chunk_size 4096;
application myapp {
live on;
}
application hls {
live on;
hls on;
hls_path /tmp/hls;
}
}
}

别忘了执行sudo ./nginx -c nginx.conf使配置生效!

11. 启动nginx

eirot@ubuntu64:/usr/local/nginx/sbin$ sudo ./nginx

12. 检查端口是否占用

eirot@ubuntu64:/usr/local/nginx/sbin$ netstat -ntlp

13. 在浏览器输入localhost,看是否能成功进入nginx的欢迎页面

14. 用ffmpeg产生一个模拟直播源,向rtmp服务器推送

eirot@ubuntu64:~/MyDev/video$ ffmpeg -re -i test.flv -f flv rtmp://192.168.242.172/myapp/test1

eirot@ubuntu64:~/MyDev/video$ ffmpeg -re -i Caminandes.mp4 -vprofile baseline -vcodec copy -acodec copy -strict -2 -f flv rtmp://192.168.242.172/myapp/test2

15.使用ffplayer或者vlc播放rtmp流

eirot@ubuntu64:~/MyDev/video$ ffplay rtmp://192.168.242.172/myapp/test1

参考blog

https://github.com/arut/nginx-rtmp-module

http://blog.csdn.net/zgl_dm/article/details/8167128

http://www.cnblogs.com/wainiwann/p/3866254.html

http://www.thinksaas.cn/topics/0/277/277674.html

http://redstarofsleep.iteye.com/blog/2123752

http://blog.csdn.net/ygm_linux/article/details/49978119

http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html

http://www.w2bc.com/article/124934

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一款免费的流媒体直播软件,主要用于流媒体直播,视频直播,视频点播,视频录制等应用,与FMS、WOWZA、RED5一道,作为用户流媒体直播应用的可选方案。 1、支持Windows/Linux等多种操作系统; 2、采用开发的流媒体协议,而非私有协议,可以与主流系统对接,至少支持RTMP推流RTMP拉流,RTSP拉流三种方式获取直播流,支持对获取的直播流再按照TS组播或者单播,RTMP,RTSP,HLS,TS OVER HTTP,FLV OVER HTTP等标准流媒体协议的方式进行对外直播转发; 3、支持录制,可定时录制或手动录制,能录制MP4或者FLV格式文件,录制时支持生成新文件或者追加文件两种方式,支持录制超过4G的文件; 4、单台服务器可支持1000个以上并发用户,直播延时小于2秒; 5、支持RTMP转发功能,能够把AMS上的直播流转发给其它AMS服务器或者第三方的RTMP服务器,例如RED5,FMS,WOWZA流媒体服务器; 6、 支持PC/手机/平板电脑等多终端访问,无论是windows,linux,或者andriod以及IOS系统访问收看直播时都无需下载插件,直接观看; 7、响应点播时间控制在100ms以内,支持暂停、拖动等特技操作; 8、支持文件直播,可把硬盘上存在的FLV文件编目后,按设定好的任务和顺序进行直播; 9、内置Web应用系统,无需复杂配置,可直接部署到用户服务器使用,也可以选配更复杂的媒资管理系统,完成类似优酷土豆的应用模式; 10、开放的系统架构,提供二次开发接口,可轻松的融入到用户已有的平台或网站平台中、或在此基础上进行二次开放等 ------------------------------------------------------------------------- 使用说明: 1、关于安装运行:软件解压到硬盘上后,执行AokuMServiceManager,即可完成AMS服务的安装,安装完成后,在Windows系统服务中会出现一个AokuMService服务; 2、关于端口:AMS默认的管理端口是9001,可通过浏览器登陆http://127.0.0.1:9001/main.html进行管理;AMS默认的RTMP端口是1935,默认的rtsp端口是5554,默认的flv over http端口是7000,默认的ts over http端口是8008,默认的hls端口也是9001; 3、关于推流:使用直播你需要有一个支持rtmp推流的编码器,建议用奥酷全接口高清编码器,当然你也可以通过FME进行软编码来实现; 4、关于接收直播:AMS正常启动并发布上直播流后,你可以在网络内的任一电脑上打开http://ip:9001,通过浏览器观看直播,若开启了hls功能,通过iphone或者ipad登陆http://ip:9001即可观看直播。 5、若开启了TS组播,请确认防火墙是否允许组播,另外您网络内的路由器是否支持组播,接收组播是需要用VLC播放器来完成; 6、接收flv over http也是通过VLC播放器或者支持类似协议的播放器来测试。 7、若使用中出现问题,你可以查看logs目录下的rtmpserver.log文件,里面有详细的错误日志描述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值