概述
ubuntu环境:nginx+rtmp下载安装搭建
- 下载安装包
- nginx
- pcre
- zlib
- openssl
- nginx-rtmp-module
- 安装nginx
- 解压压缩包
- 安装nginx
- 测试nginx
- 复制文件
- 修改nginx的参数
- rtmp模块
- http模块
下载安装包
nginx
Nginx是一款轻量级服务器/反向代理服务器及电子邮件代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强。
wget http://nginx.org/download/nginx-1.10.3.tar.gz
pcre
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括Perl兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。Boost太庞大了,使用boost regex后,程序的编译速度明显变慢。测试了一下,同样一个程序,使用boost::regex编译时需要3秒,而使用pcre不到1秒。因此改用pcre来解决C语言中使用正则表达式的问题。
wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz
zlib
zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。
wget http://zlib.net/zlib-1.2.11.tar.gz
openssl
在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
nginx-rtmp-module
RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。这个协议建立在TCP协议或者轮询HTTP协议之上,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种它有多种变种:
- RTMP工作在TCP之上,默认使用端口1935;
- RTMPE在RTMP的基础上增加了加密功能;
- RTMPT封装在 HTTP请求之上,可穿透防火墙;
- RTMPS类似RTMPT,增加了TLS/SSL的安全功能;
为了使得nginx变为支持rtmp流媒体服务器,所以需要下载nginx-rtmp-module。
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
安装nginx
解压压缩包
首先,解压四个安装包。
xxxx.tar.gz的压缩包,解压命令为:
tar -zxvf xxxx.tar,gz
xxx.zip的压缩包,解压命令为:
unzip xxxx.zip
解压完成后,你会拥有5个文件夹。名称分别为:
- nginx
- pcre-8.40
- zlib-1.2.11
- openssl-1.0.2k
- nginx-rtmp-module-master。
以上依赖的包(pcre、openssl、zlib)不需要安装,只需要解压即可。老版本的Nginx都是要安装,但是试下来不行,make的时候会报错。
安装nginx
./configure --prefix=/xxx/你希望nginx安装在哪里,就写哪里的路径名称/xxx/nginx --with-pcre=/xxx/pcre文件夹的位置/pcre-8.40 --with-zlib=/xxx/zlib文件夹的位置/zlib-1.2.11 --with-openssl=/xxx/openssl文件夹的位置/openssl-1.0.2k --add-module=/xxx/nginx-rtmp-module文件夹的位置/nginx-rtmp-module-master
【上面这个长长的指令就是下面这个】
./configure
–prefix=/xxx/你希望nginx安装在哪里,就写哪里的路径名称/xxx/nginx
–with-pcre=/xxx/pcre文件夹的位置/pcre-8.40
–with-zlib=/xxx/zlib文件夹的位置/zlib-1.2.11
–with-openssl=/xxx/openssl文件夹的位置/openssl-1.0.2k
–add-module=/xxx/nginx-rtmp-module文件夹的位置/nginx-rtmp-module-master
make
make install
测试nginx
cd /nginx安装的文件夹/nginx/
./sbin/nginx
如果遇到(98:address already in use),则查看端口占用情况:
sudo netstat -apn | grep 80
查看占用端口的进程:
ps -ef | grep 进程(例如:abcdef)
之后杀死进程:
sudo kill -9 abcdef
如果可以确定是Nginx自己占了端口,则可以使用
./sbin/nginx -s stop
杀死进程
在浏览器中输入:localhost,看到以下内容说明成功了。
复制文件
将nginx-rtmp-module-master文件夹下的stat.xsl复制到nginx文件夹
cp /你自己的地址/nginx-rtmp-module-master/stat.xsl /你自己的地址/nginx
修改nginx的参数
sudo vim /nginx的目录/conf/nginx.conf
可以参考好多网页,比如:
https://www.cnblogs.com/zx-admin/p/5783523.html
https://www.cnblogs.com/boonya/p/8022117.html
贴一份我自己的nginx.conf文件部分内容。实现的作用:
- 支持rtmp与hls直播拉流观看
- 一边直播一边存储
rtmp模块
# 配置RTMP模块
rtmp {
# server里存放服务器的实例。存放了application.
server {
listen xxxx; # 监听端口为xxxx
chunk_size 8192; # 数据块大小8192。chunk_size的默认值是4096
#rtmp直播
application liveI { # 应用名称
live on; # 直播开启(on)
allow publish all; # 允许所有的推流
allow play all; # 允许所有的拉流
#hls
hls on;
wait_key on;
hls_path /xxx/xxx/liveI; #假设这个地址记为【地址a】
hls_fragment 3s;
hls_playlist_length 15s;
hls_continuous on;
hls_cleanup on;
# 视频存储
recorder rec1{
record_path /xxxx/xxx/liveI; # 存储路径
record all; # 录制所有
record_suffix -%Y-%m-%d-%H_%M_%S.flv; # 录制文件的文件名称:年-月-日-时-分-秒
}
}
application liveII { # 应用名称
live on; # 直播开启(on)
allow publish all; # 允许所有的推流
allow play all; # 允许所有的拉流
#hls
hls on;
wait_key on;
hls_path /xxx/xxx/liveII;#假设这个地址记为【地址b】
hls_fragment 3s;
hls_playlist_length 15s;
hls_continuous on;
hls_cleanup on;
# 视频存储
recorder rec2{
record_path /xxx/xxx/liveII; # 存储路径
record all; # 录制所有
record_suffix -%Y-%m-%d-%H_%M_%S.flv; # 录制文件的文件名称:年-月-日-时-分-秒
}
}
http模块
http {
##### 省略了前面的部分 ###
server {
listen 8000;
server_name localhost;
#charset koi8-r;
#监控页面
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /nginx文件夹的位置/nginx/;
}
###hls
location /liveI {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias /xxx/xxx/liveI; #此处填写【地址a】
expires -1;
}
location /liveII {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias /xxx/xx/liveII; #此处填写【地址b】
expires -1;
}
### 省略了后面的部分 ###
}
之后重启Nginx
./sbin/nginx -s reload
之后在网页输入localhost/stat,可看到监控页面:
这是一个监视页面,可以监视服务器的状态。
统计表各属性说明为:
- clients:连接数
- live streams:流名
- codec:编码
- bits:分辨率
- size:视频画面大小
- fps:每秒传输帧数
- freq:音频率
- chan:音频声道
- State:流状态
- Time:流活动时间
最后
以上就是冷傲冰淇淋为你收集整理的ubuntu下载安装nginx+nginx-rtmp-module下载安装包安装nginx的全部内容,希望文章能够帮你解决ubuntu下载安装nginx+nginx-rtmp-module下载安装包安装nginx所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复