nginx(Engine X)是一个很流行的web服务器,以小巧、稳定、并发能力强著称。很多大公司服务器都用的这货,比如eeworld论坛:
rtmp(
Real-Time Messaging Protocol)是由Micromedia开发的一种流媒体传输协议,已归入Adobe,最先是为了播放Flash视频而开发的。是目前直播行业用的非常多的一种流媒体传输协议,有成熟的cdn加速用于分布式大并发和流量加速,是直播行业的主流解决方案。rtmp的服务器有很多,比如Adobe自己的商业服务器FMS,另有一些其它的开源解决方案,我最终选用的是nginx。因为nginx除了做web服务器外,另外有很多的插件(Module)支持,用于功能扩展。其中就用ngnix-rtmp-module,用于搭建rtmp server,实现视频点播和直播功能。接下来就我们在树莓派上搭建一个nginx服务器+rtmp流媒体服务器吧。
nginx+rtmp编译:
- 树莓派3官方的Raspbian系统本身就是Linux,具备了绝大部分搭建服务器的条件,只需安装一些必要的支持包即可,主要是nginx的一些依赖。apt-get 用起来也是很方便的,安装命令:
- sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
复制代码
- 下载nginx和nginx-rtmp-module源码,nginx源码下载地址:http://nginx.org/download/,我们可以下载各种版本,这里我们选用最新的1.9.15版本,nginx-rtmp-module可通过github下载,很方便:
- wget http://nginx.org/download/nginx-1.9.15zip
- git clone https://github.com/arut/nginx-rtmp-module.git
复制代码
- 下载完后解压nginx, unzip nginx-1.9.9.zip即可,然后在nginx-1.9.9目录下新建一个extra文件夹(mkdir extra),并将nginx-rtmp-module目录移到extra目录下。执行configure以生成Makefile配置:
- ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module
复制代码
- 再执行make -j4等待nginx编译完成。
- 一切顺利的话,编译成功再执行sudo make install,将编译好的nginx安装到系统之中,默认安装在/usr/local/nginx目录下。
nginx rtmp配置和简单测试:
nginx配置文件在/usr/local/nginx/conf目录下,配置rtmp server功能需要修改该目录下nginx.conf文件,在文件的末尾(大括号之后,不要添加到大括号里面)添加以下内容,需要sudo权限才能修改
sudo vi /usr/local/nginx/conf/nginx.conf:
- # rtmp server
- rtmp {
- server {
- listen 1935;
- chunk_size 4096;
- application live {
- live on;
- record off;
- }
- application vod {
- play /home/pi/Videos;
- }
- }
- }
复制代码
简单说明一下,这里配置了两个rtmp application,live用于直播,vod用于点播,点播的内容来自于是/home/pi/Videos目录。详细的配置方法可以参考wiki:
https://github.com/arut/nginx-rtmp-module/wiki/Directives
nginx启动并测试:
启动nginx很简单,执行
sudo /usr/local/nginx/sbin/nginx 即可。
下面开始测试nginx是否运行成功了,检测方法是在pc浏览器中输入树莓派的ip地址,访问树莓派3搭建的web服务器,如能看到下图,恭喜你,nginx启动成功了。
rtmp点播测试:
这里需要用到点特殊的播放器,也就是支持rtmp的播放器,祭出神器vlc(
下载戳我),支持各种格式、各种协议、各种硬件加速,功能非常强大,流媒体开发必备。所谓点播,就是在线播放服务器上的视频,前面配置的时候已经配置好/home/pi/Videos为点播目录了,假如Videos目录下有一个test.mp4的文件,那点播地址是什么呢?很简单rtmp://rpi3_ip/vod/test.mp4 ,我们直接在vlc中点击File ->Open Network,然后填入上面的地址就可以啦,不出意外的话,test.mp4文件缓冲一会儿之后就能开始播放啦。。。
看个tbbt