Linux 下 nginx + rtmp 搭建直播服务

简单粗暴直接上步骤吧:

注 : 以下示例使用的是nginx(版本1.15.3) rtmp(版本1.2.1)

下载nginx和rtmp模块

下载nginx

​ wget http://nginx.org/download/nginx-1.15.3.tar.gz

解压

​ tar xvf nginx-1.15.3.tar.gz

下载nginx rtmp模块

​ wget https://codeload.github.com/arut/nginx-rtmp-module/tar.gz/v1.2.1

解压

​ tar xvf v1.2.1

进入nginx目录

​ cd nginx-1.15.3

执行:

#--add-module 指向rtmp模块目录,add-module=后面可以直接使用绝对路径
./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1

在这个过程中可能因为环境不同而出现不同错误,比如缺少pcre、openssl等,这时候就需要安装这些库。

例如查看zlib是否安装:

dpkg -l | grep zlib

解决依赖包openssl安装,命令:

sudo apt-get install openssl libssl-dev

解决依赖包pcre安装,命令:

sudo apt-get install libpcre3 libpcre3-dev

解决依赖包zlib安装,命令:

sudo apt-get install zlib1g-dev

编译安装nginx

执行

make && make install

过程中可能会报错

# 注意  这里可能会报错
# nginx-rtmp-module/ngx_rtmp_eval.c:160:17: error: this statement may fall through [-Werror=implicit-fallthrough=]
# 进入nginx 下载目录的objs 编辑Makefile
vim objs/Makefile
# 第三行 将`-Werror` 删掉
# 最终结果为 CFLAGS =  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -g
# 保存 重新make
make && make install

修改nginx配置文件

编译完成后,安装在当前目录的bin目录下。

vim nginx.conf修改为:

user root;
worker_processes  1;

error_log  logs/error.log debug;

events {
    worker_connections  1024;
}

rtmp {
    server {
#rtmp使用端口,服务器要开放该端口
        listen 1935;
      #名称
        application myapp {
            live on;
            drop_idle_publisher 5s;
        }
    }
}
http {
    server {
#http使用端口,服务器要开放该端口
        listen      8081;
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl {
            #注意下路径
            root /root/nginx-rtmp-module-1.2.1/;
        }
        location /control {
            rtmp_control all;
        }
        location /rtmp-publisher {
            #注意下路径
            root /root/nginx-rtmp-module-1.2.1/test;
        }

        location / {
          #注意下路径
            root /root/nginx-rtmp-module-1.2.1/test/www;
        }
    }
}

关于端口

简单提下,用到的两个端口服务器一定要打开
端口占用检查: lsof -i:8080
需要注意的是目录与端口是否被占用,比如我的8080端口被占用,我改为了8081,然后需要开放端口。

启动和访问

配置完成后,就可以启动nginx了
在nginx安装目录 执行 bin/sbin/nginx 即可启动
bin/sbin/nginx -s stop 停止
一定要在当前目录启动,因为上面的配置 error_log logs/error.log debug; 会去执行命令的目录下查找 logs。
如果error_log 改成一个绝对路径 那就没关系了。
在浏览器输入
【IP】:8081
能访问就表示配置完成了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。