rtmp_nginx_ffmepg/OBS直播拉流推流服务
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.0.1u.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.1u --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即可得到直播的画面
本文参考:https://blog.csdn.net/qq_38403590/article/details/104085838