搭建基于rtmp协议的推流服务器。
环境Linux centos 7.6 + Nginx
1.安装Nginx
安装Nginx依赖库:
安装Nginx的编译环境gccyum install gcc-c++ #nginx的http模块使用pcre解析正则表达式所以安装perl兼容的正则表达式库yum install -y pcre pcre-devel #nginx使用zlib对http包的内容进行gzipyum install -y zlib zlib-devel #nginx不仅支持http协议,还支持https(即在ssl协议上传输http),如果使用了https,需要安装OpenSSL库yum install -y openssl openssl-devel
————————————————
下载Nginx,下载地址: http://nginx.org/en/download.html 选择下载的版本,我这里选择 nginx-1.15.3,进入到下载路径,输入下载命令:
cd /usr/local/wget http://nginx.org/download/nginx-1.15.3.tar.gztar -zxvf nginx-1.15.3.tar.gzrm nginx-1.15.3.tar.gzmv nginx-1.15.3 nginxcd nginx./configure --prefix=/usr/local/nginxmakemake install #遇到make错误 /usr/local/nginx 路径不存在不管,继续 make install #添加Nginx环境变量,可以在命令行直接输入Nginx命令vim /etc/profile#在最后添加Nginx的路径export NGINX_HOME=/usr/local/nginxexport PATH=
NGINX_HOME/sbin #重新编译环境变量source /etc/profile #启动nginxcd sbin./nginx #我这边启动时报错:nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)2018/09/25 13:59:56 [emerg] 15555#0: open() "/usr/local/nginx/logs/access.log" failed (2: No such file or directory)#需要手动创建logs文件夹mkdir /usr/local/nginx/logs#再启动./nginx #重启命令:nginx -s reload
————————————————
Nginx安装完成,测试:打开浏览器输入IP地址显示欢迎界面则安装启动成功,如果显示访问超时,则可能是防火墙没有打开80端口。打开80端口:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
2.安装Nginx的rtmp拓展
nginx的rtmp拓展包github地址:https://github.com/arut/nginx-rtmp-module,可以使用git clone下拉或者直接下载,我这边下载解压放到:/opt/module/下。Nginx安装rtmp拓展:
cd /usr/local/nginx./configure --add-module=/opt/module/nginx-rtmp-modulemakemake install
配置Nginx的rtmp服务站点:
vim /usr/local/nginx/conf/nginx.conf # 在文件底部添加下面内容:rtmp { server { listen 1935; #监听的端口 chunk_size 4000; application tv_file { live on; #开启实时 hls on; #开启hls hls_path /usr/local/nginx/html/tv_file; #rtmp推流请求路径,文件存放路径 hls_fragment 5s; #每个TS文件包含5秒的视频内容 } }}
重启Nginx:
nginx -s reload
测试:windows打开doc,输入:
telnet 你的ip地址 1935
如果失败,则开启1935端口:
iptables -I INPUT -p tcp --dport 1935 -j ACCEPT
3.推拉流测试
安装完成,打开软件,在来源版块新建媒体源,本地文件选择一个视频视频,勾选循环,去除勾选播放结束隐藏源,在控件版块点击设置,左边的导航选择流,然后流类型选择自定义流媒体服务器,url输入rtmp://你的IP:1935/tv_file,流名称随便设置一个,这里设置zm:
设置完成点击推流。
在服务器就看到m3u8文件的生成,推流成功。
设置如下:
————————————————
版权声明:本文为CSDN博主「CyborgLin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mxdzchallpp/java/article/details/86551564