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
目录
相关文章
|
6月前
|
应用服务中间件 nginx
Nginx安装nginx-rtmp-module模块
【2月更文挑战第4天】 nginx中的模块虽然就是类似插件的概念,但是它无法像VsCode那样轻松的安装扩展。 nginx要安装其它模块必须同时拿到nginx源代码和模块源代码,然后手动编译,将模块打到nginx中,最终生成一个名为nginx的可执行文件。
511 6
|
6月前
|
编解码 应用服务中间件 nginx
百度搜索:蓝易云【基于Nginx与Nginx-rtmp-module实现】
综上所述,基于Nginx与Nginx-rtmp-module的组合,可以搭建一个功能强大的流媒体服务器,用于实现直播和点播服务。
80 1
|
应用服务中间件 nginx 索引
nginx.conf中关于nginx-rtmp-module配置指令详解
译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解。指令Corertmp语法:rtmp { ... }上下文:根描述:保存所有 RTMP 配置的块。
3870 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.
3471 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.
4731 0
|
网络协议 Java 应用服务中间件
nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器[转]
转 :http://redstarofsleep.iteye.com/blog/2123752   Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒体服务器.
2331 0
|
17天前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
25天前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
221 0
|
29天前
|
应用服务中间件 Linux nginx
Jetson 环境安装(四):jetson nano配置ffmpeg和nginx(亲测)之编译错误汇总
这篇文章是关于在Jetson Nano上配置FFmpeg和Nginx时遇到的编译错误及其解决方案的汇总。
78 4
|
10天前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
nginx配置反向代理404问题