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

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

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

本帖最后由 Debug 于 2020-4-15 17:14 编辑

主要是参考 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. include rtmp.conf;
复制代码
第七步,打开/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.     include hls.conf;
  24. include /www/server/panel/vhost/nginx/*.conf;
  25. }
复制代码
以上安装完成,其他配置优化请自行处理吧。


使用道具 举报 只看该作者 回复
发表于 2019-12-16 15:47:03 | 显示全部楼层
楼主 你的第二步:git 后面的地址应该改为 /www/server/nginx_plus/nginx-rtmp-module
要不然你第一步的往./configure 添加的 --add-module=/www/server/nginx_plus/nginx-rtmp-module是识别不到的
使用道具 举报 回复 支持 1 反对 0
发表于 2022-2-20 23:11:34 | 显示全部楼层
windows版本怎么弄啊~
使用道具 举报 回复 支持 反对
发表于 2020-9-14 11:07:55 | 显示全部楼层
omaxwello 发表于 2020-9-2 17:56
请教一下,配置后。发现生成ts文件,m3u8文件有时候有有时候没有。感觉生成m3u8文件不稳定? ...

这个不清楚哦。你试着重新安装下看看,或者看下日志有没有相关信息
使用道具 举报 回复 支持 反对
发表于 2020-9-2 17:56:30 | 显示全部楼层
请教一下,配置后。发现生成ts文件,m3u8文件有时候有有时候没有。感觉生成m3u8文件不稳定?
使用道具 举报 回复 支持 反对
发表于 2020-5-22 02:06:08 | 显示全部楼层
特卖云 发表于 2019-12-6 08:41
没找到Install_Configure

你看有没有安装nginx 要先卸载  不然nginx的shell文件是安装之后的 就没有
使用道具 举报 回复 支持 反对
发表于 2020-4-15 17:16:13 | 显示全部楼层
宝塔用户_fpqxoq 发表于 2020-2-12 13:17
上面是否说rtmp需要选择Nginx1.8?

根据对于版本编译即可。不一定1.8的
使用道具 举报 回复 支持 反对
发表于 2020-4-8 10:46:29 | 显示全部楼层
特卖云 发表于 2019-12-6 08:41
没找到Install_Configure

一定先编译安装一份nginx,只有这样nginx.sh里才会出现
使用道具 举报 回复 支持 反对
发表于 2020-4-6 01:24:01 | 显示全部楼层
大佬啊为啥我跟着你教程来的会有这种报错啊
宝塔安装失败.png
使用道具 举报 回复 支持 反对
发表于 2020-3-14 19:41:38 | 显示全部楼层
./configure --add-module=/www/server/nginx_plus/nginx-rtmp-module
这个安装拓展的命令有问题,折腾了半天,一直在报找不到config的错误,改成nginx-rtmp-module-master然后放在root目录下边才弄好。。。不知道啥原因
使用道具 举报 回复 支持 反对
发表于 2020-2-12 13:17:48 | 显示全部楼层
上面是否说rtmp需要选择Nginx1.8?
使用道具 举报 回复 支持 反对
发表于 2020-2-5 00:44:57 | 显示全部楼层
TIM截图20200205004004.jpg 到这里不知道怎么配置了
使用道具 举报 回复 支持 反对
发表于 2020-2-5 00:42:39 | 显示全部楼层
TIM截图20200205004004.jpg 如图,已安装rtmp-module 成功,nginx配置也成功了,接下来怎么配置和优化流直播?
使用道具 举报 回复 支持 反对
发表于 2020-1-17 19:39:19 | 显示全部楼层
折腾一天了,还是装不了
使用道具 举报 回复 支持 反对
发表于 2020-1-6 22:23:54 | 显示全部楼层
搞不定,有没有更详细的文档?
使用道具 举报 回复 支持 反对
发表于 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 前行忽略错误。
使用道具 举报 回复 支持 反对
发表于 2019-12-29 11:02:22 | 显示全部楼层
找不到  Install_Configure   我想搭一个流媒体服务器,里面还有共享云的服务,
Nginx + rtmp + ffmpeg 有没安装过且成功的朋友,分享下教程,谢谢
使用道具 举报 回复 支持 反对
12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表