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; # 监听端口为xxxxchunk_size 8192; # 数据块大小8192。chunk_size的默认值是4096#rtmp直播application liveI { # 应用名称live on; # 直播开启(on)allow publish all; # 允许所有的推流allow play all; # 允许所有的拉流#hlshls 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; # 允许所有的拉流#hlshls 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 fragmentstypes {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}alias /xxx/xxx/liveI; #此处填写【地址a】  expires -1;}location /liveII {# Serve HLS fragmentstypes {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相关推荐

  1. Nginx在阿里云的下载安装以及Nginx常见的命令及配置文件

    Nginx在阿里云的下载安装以及Nginx常见的命令及配置文件 首先对于在阿里云如何下载安装nginx,我试了很多的方式都失败了,最终发现这样的方式是可以成功下载并安装的. 下载安装: 第一步:安装编 ...

  2. ubuntu16.04 wget java_linux centos ubuntu下载安装JDK wget方式下载JDK

    linux centos ubuntu下载安装JDK wget方式下载JDK 本文以jdk_8u162为例 切换到源码目录 cd /usr/local/src/ wget方式下载JDK官方最新包 wg ...

  3. 更换ubuntu软件源为阿里源,解决ubuntu下载安装软件慢的问题并安装open-vm-tools和open-vm-tools-desktop

    *************** 一.更换ubuntu软件源为阿里源,解决ubuntu下载安装软件慢的问题 1.打开终端(快捷键ctrl+alt+t),输入cd /etc/apt并回车 2.输入sudo ...

  4. Ubuntu 下载安装NVIDIA显卡驱动

    Ubuntu 下载安装NVIDIA rtx3060(Laptop)驱动 文章目录 Ubuntu 下载安装NVIDIA rtx3060(Laptop)驱动 前言 一.官网下载驱动 二.安装 1. 2. ...

  5. ubuntu下载安装一条龙服务

    ubuntu下载安装教程 (1)Ubuntu官方下载 (2)Ubuntu安装 (3)安装VMware工具 (1) Ubuntu官方下载 1.点击Ubuntu官网,进入官方界面,如图所示: 2.点击Do ...

  6. Docker下载安装运行Nginx服务

    文章目录 下载安装 在 Docker 中使用镜像 运行 Docker 容器 Docker运行Nginx 1.获取Nginx镜像 2.运行Nginx容器 下载安装 https://docs.docker ...

  7. ubuntu下安装配置nginx,搭配web服务器,将8000端口转发到80端口

    1.更新软件源 重点,否则会报安装失败 sudo apt-get update 2.安装nginx sudo apt-get install nginx 安装好的文件位置: /usr/sbin/ngi ...

  8. Ubuntu下载安装EDB1.3.0 2021.07

    Ubuntu16.04x64下载安装EDB1.3.0 2021.07 1.更新gcc和g++ > 7 $ sudo add-apt-repository ppa:ubuntu-toolchain ...

  9. linux ubuntu/deepin安装tengine(nginx增强版)2.3.2

    下载地址: http://tengine.taobao.org/download.html#安装依赖 zxl@debian:~/develop/tengine-2.3.2$ sudo apt-get ...

  10. ubuntu nginx php7,ubuntu 16 安装php7+nginx

    sudo apt-get install nginx cd /etc/nginx/sites-enabled vi /etc/nginx/sites-available/default(配置文件就是这 ...

最新文章

  1. 2018 中国开源年度报告发布,阿里系独占鳌头
  2. Android多线程分析之三:Handler,Looper的实现
  3. 银行停贷、涨息、排队,8月不贷只能等明年
  4. 云计算构建基石之Hyper-V:虚拟机管理
  5. java excel添加公式_Java添加、读取Excel公式
  6. C#可视化编程技术总结:制作可视化窗体软件
  7. python反编译exe
  8. Mybatis源码详细分析(最新最全)
  9. weblogic10.3.6安装漏洞补丁
  10. 小米手机(MIUI 13)安装Fiddler CA证书
  11. 基于SSM+Vue的手机商城销售系统项目
  12. 基于线程池实现多线程任务
  13. 脱口而出的 “ 感谢的语言 ”
  14. Markdown中如何实现内容折叠操作
  15. Git使用中的一些常用小技巧
  16. 一次悲惨的被挖矿经历
  17. 一碗阳春面(一碗清汤荞麦面)
  18. perl-dbd-mysql qt_perl 安装DBI和DBD
  19. 设计模式(JAVA)
  20. 论文查重字数和重复率有什么关系吗?

热门文章

  1. 自己动手写个狗屁不通文章生成器!输入标题即可生成文章!
  2. rx584白牌救砖心得
  3. 手机远程控制软件和开源框架
  4. dw1560_【兵哥小课堂】Big Sur安装情况汇总以及DW1820A/DW1560在Big Sur中的正确插入姿势...
  5. c语言输出最小值流程图,C语言实用程序设计100例流程图
  6. oracle日期加一天的函数,关于oracle日期函数的介绍和使用
  7. isis安装指南(Liunx版本)+ ASP
  8. C# 文件与Base64的相互转换
  9. 机器学习算法(八):基于BP神经网络的预测(乳腺癌分类实践)
  10. 网络安全问题及防护措施有哪些