当前位置:论坛首页 > Linux面板 > 讨论

基于宝塔nginx安装Nginx-rtmp-module搭建hls直播

发表在 Linux面板2019-6-25 03:46 [复制链接] 12 2276

主要是参考 https://www.bt.cn/bbs/thread-16118-1-1.html 帖子。

第一步,修改/www/server/panel/install/nginx.sh文件,找到 Install_Configure 部分。在每个./configure 后面插入增加模块编译语句:
  1. ./configure --add-module=/www/server/nginx_plus/nginx-rtmp-module
复制代码
批注 2019-06-25 032923.png
第二步,进入命令会话工具,执行git clone https://github.com/arut/nginx-rtmp-module /www/server/nginx_plus/语句,直到100%完成。

第三步,接着输入安装nginx脚本语句:
  1. sh /www/server/panel/install/nginx.sh install 1.8
复制代码
批注 2019-06-25 033317.png
其中install 后的1.8为你要安装或切换的版本号。比如你已经安装了1.14版本的nginx,那么这里可以填1.8或其他版本号。如果你还没安装过。可以选择自己需要的版本。

直到安装编译完成。然后输入入nginx -V 检查编译时候完整:
批注 2019-06-25 033537.png
看到rtmp关键模块后就表示模块安装成功。注意,安装成功后就不要使用宝塔后台的NGINX切换版本功能了(该功能位置请参考看第三步的截图),官方会拉取服务器的脚本执行,这样rtmp模块就会消失在新的nginx版本配置中。


第四步,在/www/server/nginx/conf下建立一个 rtmp.conf 的文件。创建如下内容:
  1. rtmp_auto_push on;
  2. rtmp {
  3.     server {
  4.         listen 1935;
  5.         ping 30s;
  6.         chunk_size 4000;
  7.         notify_method get;

  8.         application hls {
  9.             live on;
  10.             hls on;
  11.             hls_path /www/tmp/hls;
  12.             hls_sync 100ms;
  13.             hls_fragment 5s;
  14.         }
  15.         application live {
  16.                         live on;
  17.         }
  18.         # Video on demand
  19.         #application vod {
  20.         #    play /www/tmp/Videos;
  21.         #}
  22.         # Video on demand over HTTP
  23.         #application vod_http {
  24.         #    play http://localhost:8080/vod/;
  25.         #}
  26.     }
  27. }
复制代码
第五步,在/www/server/nginx/conf下建立一个 hls.conf 的文件。创建如下内容:

  1. server {
  2.     listen  8080;
  3.     location /hls {
  4.         # Serve HLS fragments
  5.         types {
  6.             application/vnd.apple.mpegurl m3u8;
  7.             video/mp2t ts;
  8.         }
  9.         root html;
  10.         expires -1;
  11.     }
  12. }
复制代码
注意:这里这是创建一个测试的播放入口。如果不需要特定测试入口,可以忽略此步。


第六步,打开/www/server/nginx/conf 下的nginx.conf文件,在events的花括号后面插入 include rtmp.conf 。修改内容如下
  1. user  www www;
  2. worker_processes auto;
  3. error_log  /www/wwwlogs/nginx_error.log  crit;
  4. pid        /www/server/nginx/logs/nginx.pid;
  5. worker_rlimit_nofile 51200;

  6. events
  7.     {
  8.         use epoll;
  9.         worker_connections 51200;
  10.         multi_accept on;
  11.     }
  12. <font color="Red"><b>include rtmp.conf;
  13. </b></font>
复制代码
第七步,打开/www/server/nginx/conf 下的nginx.conf文件,在include /www/server/panel/vhost/nginx/*.conf; 前面插入 include hls.conf 。修改内容如下
  1. server
  2.     {
  3.         listen 888;
  4.         server_name phpmyadmin;
  5.         index index.html index.htm index.php;
  6.         root  /www/server/phpmyadmin;

  7.         #error_page   404   /404.html;
  8.         include enable-php.conf;

  9.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  10.         {
  11.             expires      30d;
  12.         }

  13.         location ~ .*\.(js|css)?$
  14.         {
  15.             expires      12h;
  16.         }

  17.         location ~ /\.
  18.         {
  19.             deny all;
  20.         }

  21.         access_log  /www/wwwlogs/access.log;
  22.     }
  23.     <b><font color="Red">include hls.conf;</font></b>
  24. include /www/server/panel/vhost/nginx/*.conf;
  25. }
复制代码
以上安装完成,其他配置优化请自行处理吧。


使用道具 举报 只看该作者 回复
发表于 2019-6-25 03:50:14 | 显示全部楼层
补充说明:
1、如果第5步不执行,第7步也不需要的。
2、同时记得进入宝塔后台的安全面板中开启1935端口。
3、如果还有上一层防火墙的,还要增加1935端口映射,这里就不展开了。根据自身情况处理吧。
使用道具 举报 回复 支持 反对
发表于 2019-6-25 10:12:30 | 显示全部楼层
这类帖子应该要加精啊 @大炮运维V587
使用道具 举报 回复 支持 反对
发表于 2019-8-10 13:16:01 | 显示全部楼层
好东西 支持一下
使用道具 举报 回复 支持 反对
发表于 2019-9-3 16:33:57 | 显示全部楼层
照这个文档搭建成功了,不知道咋接收流呀,怎么对流截图
使用道具 举报 回复 支持 反对
发表于 2019-9-11 14:30:42 | 显示全部楼层
rtmp.conf 和 hls.conf中有对应配置
推流地址 比如公网IP是 11.11.11.11 那么推流地址就是 rtmp://11.11.11.11:1935,流名自定义
拉流地址 http://11.11.11.11:8080/hls/流名
使用道具 举报 回复 支持 反对
发表于 2019-12-6 08:41:24 | 显示全部楼层
没找到Install_Configure
使用道具 举报 回复 支持 反对
发表于 2019-12-6 08:51:52 | 显示全部楼层
zk3151463 发表于 2019-9-3 16:33
照这个文档搭建成功了,不知道咋接收流呀,怎么对流截图

用阿里云播放器
使用道具 举报 回复 支持 反对
发表于 2019-12-16 15:47:03 | 显示全部楼层
楼主 你的第二步:git 后面的地址应该改为 /www/server/nginx_plus/nginx-rtmp-module
要不然你第一步的往./configure 添加的 --add-module=/www/server/nginx_plus/nginx-rtmp-module是识别不到的
使用道具 举报 回复 支持 反对
发表于 2019-12-29 11:02:22 | 显示全部楼层
找不到  Install_Configure   我想搭一个流媒体服务器,里面还有共享云的服务,
Nginx + rtmp + ffmpeg 有没安装过且成功的朋友,分享下教程,谢谢
使用道具 举报 回复 支持 反对
发表于 2019-12-29 15:07:47 | 显示全部楼层
宝塔用户_bjhoqp 发表于 2019-12-29 11:02
找不到  Install_Configure   我想搭一个流媒体服务器,里面还有共享云的服务,
Nginx + rtmp + ffmpeg 有 ...

ffmpeg 可以用 RPM Fusion 仓库提供的包进行安装。官网有提供安装和启用仓库的教程。https://rpmfusion.org/Configuration/
我有个自己编写的 ffmpeg 编译脚本,但是只是对 CentOS 8 有用。
rtmp 模块可以做成 nginx 的动态模块,再用 load_module 引入即可。
具体 GitHub 上面有一篇文章,而且还是拿 rtmp 来做说明。这里说明一下,rtmp 的代码已经默认支持编译为动态模块。
https://gist.github.com/undirectlookable/2a39cc85b16e2218f162
另外如果 make 版本过高,编译 rtmp 模块会出错,需要修改一下 Makefile 前行忽略错误。
使用道具 举报 回复 支持 反对
发表于 2020-1-6 22:23:54 | 显示全部楼层
搞不定,有没有更详细的文档?
使用道具 举报 回复 支持 反对
发表于 前天 19:39 | 显示全部楼层
折腾一天了,还是装不了
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表