Nginx 流媒体 服务器搭建实现推流服务器

文章目录

  • 下载地址
  • 安装PCRE、ZLIB
  • 编译Nginx
  • 配置Nginx
  • 启动停止Nginx
  • 问题:
  • 测试推流
  • Android Studio 引入 rtmpdump

下载地址

1、Nginx:https://github.com/nginx/nginx

2、OpenSSL:https://github.com/openssl/openssl

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

注意:
1、pcre:http://www.pcre.org/
点这个链接
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

不要去
https://sourceforge.net/projects/pcre/ 下载最新的

2、zlib:http://www.zlib.net/

安装PCRE、ZLIB

1、./configure

2、make

3、make install

编译Nginx

1、编译OpenSSL

./config --prefix=`pwd`/libs
make
make install

2、编译Nginx

openssl= 是上面OpenSSL 的目录
module = 是之前解压过的rtmp 模块的目录
cd 到Nginx 路径

./auto/configure --add-module=/usr/work/nginx/nginx-rtmp-module-1.2.1 --with-openssl=/usr/work/nginx/openssl-OpenSSL_1_1_1a
make
make install

Nginx生成目录:/usr/local/nginx


安装Nginx时报错

./configure: error: the HTTP rewrite module requires the PCRE library.

安装pcre-devel解决问题
yum -y install pcre-devel

配置Nginx

用:

nginx-rtmp-module-1.2.1/test/nginx.conf

替换

/usr/local/nginx/conf/nginx.conf

拷贝命令:

cp /usr/work/nginx/nginx-rtmp-module-1.2.1/test/nginx.conf /usr/local/nginx/conf/

修改nginx.conf 文件


        location /stat.xsl {
            root /path/to/nginx-rtmp-module/;
        }

这个是rtmp-module 的位置 需要改成自己的

/usr/work/nginx/nginx-rtmp-module-1.2.1

这是我的rtmp-module 的路径 替换一下

        location /stat.xsl {
            root /usr/work/nginx/nginx-rtmp-module-1.2.1/;
        }


其他几个同样的道理 也要改过来 最终

http {
    server {
        listen      8080;

        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root /usr/work/nginx/nginx-rtmp-module-1.2.1/;
        }

        location /control {
            rtmp_control all;
        }

        #location /publish {
        #    return 201;
        #}

        #location /play {
        #    return 202;
        #}

        #location /record_done {
        #    return 203;
        #}

        location /rtmp-publisher {
            root /usr/work/nginx/nginx-rtmp-module-1.2.1/test;
        }

        location / {
            root /usr/work/nginx/nginx-rtmp-module-1.2.1/test/www;
        }
    }
}

启动停止Nginx

来到 usr/local/nginx/sbin 下 执行下面的命令

1、启动:
./nginx

或者
/usr/local/nginx/sbin/nginx

2、停止
./nginx -s stop

/usr/local/nginx/sbin/nginx -s stop

判断当前nginx 是否启动

ps -ef | grep nginx

问题:

启动了无法访问 需要去阿里云后台开启80 8080 端口

安装telnet
yum install telnet

查看端口是否开放

netstat -aptn

命令行,查看所有开启的端口号

测试推流

下载ffmpge

把ffmpeg 加入环境变量

我是mac
执行下面的命令

brew install ffmpeg --option

如果出现长时间等待 换源

替换brew.git:

cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

替换homebrew-core.git:

cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git 

再执行上面的 安装命令

下面是 重置为原来的源

重置brew.git:
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git

重置homebrew-core.git:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core.git


执行推流

ffmpeg -re -i yaoshen.mp4 -vcodec libx264 -acodec aac -f flv rtmp://你的服务器IP地址/myapp/mystream

Nginx 流媒体 服务器搭建实现推流服务器_第1张图片

Android Studio 引入 rtmpdump

你可能感兴趣的:(音视频开发)