已经在个人服务器ubuntu上面集成了Nginx推流,这里在别的linux上演示一下如何集成。 比较小白一点 ,会的大家不用拍砖
集成Nginx 需要配置OpenSSL,还有设置Nginx-rtmp-module,如果没有zlib,和pcre,编译nginx会编译不通过,下面都会给大家演示清楚
大家如果要用阿里云啊什么的带公网ip的服务器,刚开始可能没有gcc g++ openssl 需要g++ nginx 需要gcc apt update apt install gcc apt install g++
执行上面三条就可以了,因为后面./configure的时候会报gcc 什么的not found 的,我这里的linux 已经有这两个环境了,所以 编译不通过的日志也没法看,你们先装吧 确保后面顺利。
链接,这里我选的是 release-1.19.0 https://github.com/openssl/openssl/releases?after=OpenSSL_1_1_1 右键复制tar.gz的下载链接,毕竟linux自带tar
wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1-pre9.tar.gz
没有wget 那就apt update 然后 apt install wget
tar -xzvf OpenSSL_1_1_1-pre9.tar.gz
这里看到 有 configure,也有config,我们使用config 配置编译就可以 1.首先,就在当前目录的libs 下面生成就可以
./config --prefix=`pwd`/libs我们看到了 create 了 makefile 那就可以make了
2.make 或者 make -j4 都可以,后者快一点,4是核数量的2倍 3.make install
libs/ 下面已经有东西了,编译openssl 成功了
链接,这里我选的是 v1.2.1 最新的 https://github.com/arut/nginx-rtmp-module/releases/
wget https://github.com/arut/nginx-rtmp-module/archive/v1.2.1.tar.gz
注意下载的目录
tar -xzvf v1.2.1.tar.gz
解压就可以了
链接,这里选择release-1.19.0 https://github.com/nginx/nginx/releases
wget https://github.com/nginx/nginx/archive/release-1.19.0.tar.gz
tar -xzvf release-1.19.0.tar.gz
进入nginx-release-1.19.0 configure在这里 我们返回上一级,因为方便点 嘿嘿嘿 我们这里记录一下目录,一个是 openssl 的目录,还有 nginx-rtmp-module的目录 两个箭头所指 一个openssl 的目录 一个是n…module的目录, 看起来是没有问题的。 1.执行:
./auto/configure --add-module=/home/zp/Desktop/nginx/nginx-rtmp-module-1.2.1 --with-openssl=/home/zp/Desktop/nginx/openssl-OpenSSL_1_1_1-pre9
–add-module=这里是nginx-rtmp-module的目录 –with-openssl=这里是openssl的目录
这里是成功的结果 这里要说一下箭头所指 的地方如果没有自带pcre 和 zlib会提示 pcre not found,然后如果有了pcre 再执行也是会提示 zlib not found 他的日志只一个一个出🤦♂️4.编译 pcre 和 zlib 如果和上面结果一样 那就继续
2.执行make 👇下面图这里可能会报错 如果报错了的同学重新执行configure 在后面在加--with-cc-opt="-Wimplicit-fallthrough=0" 就可以了
./auto/configure --add-module=/home/zp/Desktop/nginx/nginx-rtmp-module-1.2.1 --with-openssl=/home/zp/Desktop/nginx/openssl-OpenSSL_1_1_1-pre9 --with-cc-opt="-Wimplicit-fallthrough=0" 然后 make clean然后make就可以了,是我偷的图。。但是他的解决方法和我不太一样,所以就不加他的链接了
3.执行make install 可以用whoami查看输出是root的话,否者就sudo make install大家都懂哈,因为他要生成在/usr/local/目录下 到这里就编译成功了
这是他的配置信息 这里我也懒得配 我们可以从nginx-rtmp-module目录/test/下面有个nginx.conf 替换这里就行了
先备份一下 目录有双引号没双引号都一样,因为我是从文件管理拖过去的所以有,各位随便哈
文件内容长这样,不想复制文件,自己复制内容写文件也可以,各位随便
worker_processes 1; error_log logs/error.log debug; events { worker_connections 1024; } rtmp { server { listen 1935; application myapp { live on; #record keyframes; #record_path /tmp; #record_max_size 128K; #record_interval 30s; #record_suffix .this.is.flv; #on_publish http://localhost:8080/publish; #on_play http://localhost:8080/play; #on_record_done http://localhost:8080/record_done; } } } http { server { listen 8080; location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /path/to/nginx-rtmp-module/; } location /control { rtmp_control all; } #location /publish { # return 201; #} #location /play { # return 202; #} #location /record_done { # return 203; #} location /rtmp-publisher { root /path/to/nginx-rtmp-module/test; } location / { root /path/to/nginx-rtmp-module/test/www; } } }记住这个myapp
没有ffmpeg 的话自己装一个去
ffmpeg -re -i gwyg18s.mp4 -vcodec libx264 -acodec aac -f flv rtmp://172.16.99.130/myapp/mystream
-i 后面是你的mp4 推流的视频编码是x264的,音频的是aac rtmp://172.16.99.130/myapp/mystream ip就这个各位懂,还有myapp看见没有 给你们看下我的视频
看到这里不停的动,那说明基本是成功了,咱们打开vlc查看这个 没有这个的话,自己下一个。必备
打开google 浏览器,链接输入如下,就会提示你用vlc 打开,那你就打开 rtmp://172.16.99.130/myapp/mystream
如果不行的话,你就File->Open Network 输入也行
看见没有,有了,这里我是用虚拟机装的nginx 用的同一个网,然后卡顿的很,建议大家租个服务器用,毕竟推流然后在网络视频查看, 感觉绕地球一圈。大家都懂。
然后你再试试推流就会发现 大功高潮
这里需要就看不需要就不用看
链接http://www.zlib.net/ wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/ ./configure make make install
wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz tar -xzvf pcre-8.40.tar.gz cd pcre-8.40/ ./configure make make install
