nginx + nginx-rtmp-module

简介: nginx + nginx-rtmp-module

nginx + nginx-rtmp-module(单纯rtmp,浏览器以不支持播放)

github

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

最近的更新是2021年的,可能真的不更新了吧(也可能转其他仓库了),

nginx配置

先在windows本地测试

windows设置(未完成)

不建议---因为需要自己编译的

  1. 下载nginx,并成功访问初始页面(如果80端口一直访问失败,可以把conf文件的端口改成8090,来判断是否是端口占用问题)
  2. 下载rtmp模块

下载nginx并成功访问

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

解压后(路径不要出现中文)

windows的PowerShell支持linux命令

更换端口为8090(也可以先尝试80端口是否可以)

开启nginx

访问localhost:8090,出现下面则成功,接着去下载rtmp模块即可,下面是一些命令

开启nginx后不能通过终端推出,需要再开一个终端

查看相关进程
tasklist /fi "imagename eq nginx.exe"
关闭nginx
./nginx -s stop
以指定文件启动nginx
./nginx -c .\conf\nginx.conf

下载rtmp模块

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

linux配置

注意,不仅要开启阿里云服务器的安全组80和1935

同时服务器的防火墙还是需要开启,我这里是用的iptables,防火墙修改后docker是需要重启的,

这里要自己考虑情况

vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1935 -j ACCEPT
systemctl restart iptables.service

nginx+rtmp

这里是nginx+rtmp

cd /opt
mkdir nginx
cd nginx
git clone https://github.com/arut/nginx-rtmp-module.git
wget http://nginx.org/download/nginx-1.24.0.tar.gz
[root@iZbp1c400avts4bhhmibppZ nginx]# ls
nginx-1.24.0.tar.gz  nginx-rtmp-module

解压

tar -zxvf nginx-1.24.0.tar.gz

安装需要的配置(直接添加rtmp模块的话会报错并提示这两个依赖库)

yum -y install pcre
 yum -y install openssl openssl-devel

cd nginx-1.24.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-file-aio --with-http_realip_module --add-module=../nginx-rtmp-module --add-module=../nginx-module-vts-master

下面的configuration就是配置路径

编译

make && make install

第一次启动

cd /usr/local/nginx
sbin/nginx

访问ip:80端口表示成功(因为是编译安装的可能之前yum安装的service未卸载完成,会出现下列情况)

修改nginx的conf文件夹下的nginx.conf文件

cd /usr/local/nginx/
vim conf/nginx.conf

rtmp与http同级别

rtmp { # rtmp
    server {
        listen 1935;
        chunk_size 4000;
        application live {
             live on;
        }
        application live {
             play /opt/video;
        }
    }
}

添加部分在http的server里

注意/stat.xsl的路径,按照自己的路径,否则/stat是空白的,/stat.xsl是404

如果失败可以看下这个方案:https://stackoverflow.com/questions/53073274/nginx-as-rtmp-server-resource-interpreted-as-stylesheet-but-transferred-with-m

location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl {
            root /opt/nginx/nginx-rtmp-module/; # 这里是下载的rtmp的stat.xsl的路径
        }

最终文件

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
rtmp { # rtmp
    server {
        listen 1935;
        chunk_size 4000;
        application live {
             live on;
        }
        application live {
             play /opt/video;
        }
    }
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
        }
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl {
            root /opt/nginx/nginx-rtmp-module/; # 这里是下载的rtmp的stat.xsl的路径
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

测试

[root@iZbp1c400avts4bhhmibppZ sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

使用新配置文件

在opt/video下放test.mp4(路径和nginx.conf的rtmp的play设置一致)

cd /usr/local/nginx
sbin/nginx -s reload

访问ip/stat

方法一:使用ffmpeg,自动弹出

ffplay rtmp://ip:1935/video/test.mp4

方法二:使用VLC media player

linux下卸载nginx

[root@iZbp1c400avts4bhhmibppZ nginx]# ps -ef | grep nginx
root      8419  7392  0 15:20 pts/0    00:00:00 grep --color=auto nginx
# 停止nignx
/usr/local/nginx/sbin/nginx -s stop
[root@iZbp1c400avts4bhhmibppZ nginx]# find / -name nginx
...
# 这个是编译mades的path默认在usr/local/nginx
[root@iZbp1c400avts4bhhmibppZ objs]# rm -rf /usr/local/nginx
# 这个是解压后的文件夹
[root@iZbp1c400avts4bhhmibppZ objs]# rm -rf /opt/nginx/nginx-1.24.0
目录
相关文章
|
3月前
|
应用服务中间件 nginx
Nginx安装nginx-rtmp-module模块
【2月更文挑战第4天】 nginx中的模块虽然就是类似插件的概念,但是它无法像VsCode那样轻松的安装扩展。 nginx要安装其它模块必须同时拿到nginx源代码和模块源代码,然后手动编译,将模块打到nginx中,最终生成一个名为nginx的可执行文件。
393 6
|
3月前
|
编解码 应用服务中间件 nginx
百度搜索:蓝易云【基于Nginx与Nginx-rtmp-module实现】
综上所述,基于Nginx与Nginx-rtmp-module的组合,可以搭建一个功能强大的流媒体服务器,用于实现直播和点播服务。
67 1
|
应用服务中间件 nginx 索引
nginx.conf中关于nginx-rtmp-module配置指令详解
译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解。指令Corertmp语法:rtmp { ... }上下文:根描述:保存所有 RTMP 配置的块。
3828 0
|
应用服务中间件 网络安全 数据安全/隐私保护
【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(二)HLS 指令详解
源码地址:https://github.com/Tinywan/PHP_Experience 一、在Nginx配置文件的RTMP模块中配置hls hls_key_path /tmp/hlskeys; 提示错误信息: nginx: [emerg] the same path name "/data/hlskeys" used in /usr/local/nginx/conf/nginx.
3414 0
|
Java 应用服务中间件 nginx
流媒体技术学习笔记之(一)nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
参照网址: 【1】http://blog.csdn.net/redstarofsleep/article/details/45092147 【2】HLS介绍:http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.
4694 0
|
网络协议 Java 应用服务中间件
nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器[转]
转 :http://redstarofsleep.iteye.com/blog/2123752   Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒体服务器.
2315 0
|
8天前
|
负载均衡 应用服务中间件 API
Nginx:location配置模块的用法(一)
Nginx:location配置模块的用法(一)
53 2
|
5天前
|
Web App开发 应用服务中间件 网络安全
如何在 Apache 和 Nginx 上配置 OCSP Stapling
如何在 Apache 和 Nginx 上配置 OCSP Stapling
23 8
|
5天前
|
jenkins 应用服务中间件 持续交付
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
25 8
|
5天前
|
存储 Ubuntu 应用服务中间件
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
10 4