rtmp_nginx_ffmepg/OBS直播拉流推流服务

本文参考:https://blog.csdn.net/qq_38403590/article/details/104085838

src/core/ngx_murmurhash.c: In function ‘ngx_murmur_hash2’: src/core/ngx_murmurhash.c:37:11: error: this statement may fall through [-Wer ror=implicit-fallthrough=] h ^= data[2] << 16; ~~^~~~~~~~~~~~~~~~ src/core/ngx_murmurhash.c:38:5: note: here case 2: ^~~~ 
src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Wer ror=implicit-fallthrough=] h ^= data[1] << 8; ~~^~~~~~~~~~~~~~~ 
src/core/ngx_murmurhash.c:40:5: note: here case 1: ^~~~ cc1: all warnings being treated as errors objs/Makefile:517: recipe for target 'objs/src/core/ngx_murmurhash.o' failed make[1]: *** 
[objs/src/core/ngx_murmurhash.o] Error 1 make[1]: Leaving directory '/home/bell/source/nginx-1.8.1' Makefile:8: recipe for target 'build' 
failed make: *** [build] Error 

编译的时候报这个错:

总结:

1.库要下载对,比如这次高版本的openssl编译报错,不兼容,换成低版本的重新安装

2.因为-Werror命令行把很多警告直接当成错误中断编译,我们需要把nginx下临时生成的Makefile里把这个-Werror去掉
3.没有仔细看作者的(安装目录和解压目录的区别,当然作者直接写=/hadoop/...有一定的误导性)
4.搭建阿里云服务器忘记了enable端口导致一直访问不到rtmp端口号
5推流可以用ffmepg命令,
也可以用作者的指定的OBS, 获取vlc, 总之所有的东东都要试一遍才知道哪里有问题


1.首先我们要有gcc g++环境
centos:
yum install -y gcc gcc-c++ autoconf wget
yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype* 
Ubuntu:
sudo apt-get install build-essential 
sudo apt-get install gcc 
sudo apt-get install g++
2.openssl/pcre/zlib插件

openssl官网:http://www.openssl.org/
tar -zxvf tar -zxvf openssl-1.1.1d.tar.gz 
cd openssl-1.0.1u
sudo ./config --prefix=/lib/openssl-1.0.1u    #prefix指定安装目录(自定义)
sudo make
sudo make install

pcre官网:http://www.pcre.org/
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35
sudo ./configure --prefix=/lib/pcre-8.35    #prefix指定安装目录(自定义)
sudo make
sudo make install

zlib官网:http://www.zlib.net/
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
sudo ./configure --prefix=/lib/zlib-1.2.8    #prefix指定安装目录(自定义)
sudo make
sudo make install

3.下载nginx-rtmp-module
官方github Git地址:https://github.com/arut/nginx-rtmp-module


4安装nginx
#cd nginx-1.14.0/

源码路径(非安装目录):
--with--xxx=DIR       DIR一定是源码路径(解压后的路径)  xxx对应lib名称
--add-module=DIR  DIR是unzip解压rtmp的的路径

#./configure --prefix=/usr/local/nginx-1.14.0  --with-openssl=../openssl-1.0.1d --with-pcre=../pcre-8.35  --with-zlib=../zlib-1.2.8 --add-module=../nginx-rtmp-module-master --with-http_ssl_module
#sudo make
#sudo make install

5配置nginx  只需要增加 rtmp模块
rtmp {
    server {
        listen 1935;  #监听的端口
        chunk_size 4096;   
        application hls {  #rtmp推流请求路径  
            live on;    
            hls on;    
            hls_path /opt/live/hls  #你的流存放路径;    #hls_path需要可读可写的权限。
            hls_fragment 5s;    #一个片段含5秒内容,也就是1给文件含有5秒的内容进行保存
        }    
    }    
} 

6启动nginx
sudo ./usr/local/nginx/sbin/nginx 
sudo ./usr/local/nginx/sbin/nginx -s reload 
sudo ./usr/local/nginx/sbin/nginx  -s stop
ps aux | grep nginx 查看进程状态及启动情况

7本地查看是否安装启动成功:
(1)在本地浏览器输入本地的ip 看是否返回nginx欢迎页面
(2)或者如果安装的是阿里云服务器,远程登录ip,如果没有反应,
可以查看控制台是否把对应的端口禁用了,enable就可以了

8推流:
(1)用ffmpeg 推流 ffmpeg -i ./1.mp4 -vcodec libx264 -acodec aac -f flv rtmp://ip:1935/hls
(2)用OBS推流(下载OBS studio):有很多种方式,录屏、摄像头、视频、音频。。。
本次采用本地视频: 点+ 号 导入视频,设置视频格式,在视频设置中点击推流:自定义,服务器:rtmp://ip地址:1935/hls

9推流成功后可以看下服务器对应目录下的文件
ls /opt/live/hls

10拉流
用vlc   输入 rtmp://ip:1935/hls即可得到直播的画面
上一篇:ssh-ssl编译安装


下一篇:NFLSOJ #12445 -「NOIP2021模拟赛p_b_p_b#1」不等(构造)