干货-通过宝塔面板安装 nginx-rtmp-module rmtp推流服务器搭建

正文开始

https://blog.csdn.net/BowenXu11/article/details/107719679 https://blog.csdn.net/qq_44314954/article/details/122075875

如果已经安装nginx 要提前删除 nginx 重新安装

宝塔面板 软件商店 nginx 卸载

下载 /www/server/nginx-rtmp-module
cd /www/server/
wget -O nginx-rtmp-module.tar.gz https://codeload.github.com/arut/nginx-rtmp-module/legacy.tar.gz/master

tar zxvf nginx-rtmp-module.tar.gz

解压的文件夹命名为 nginx-rtmp-module

宝塔面板 软件商店 nginx 安装

选择编译安装,会出现自定义模块界面,点击添加,在弹出的界面输入: 模块名称:nginx_rtmp_module 描述:nginx rtmp 参数:--add-module=/www/server/nginx-rtmp-module 保存,安装。 等待结果 nginx -v 查看结果

配置直播服务器 1. 修改Nginx配置文件,在events结束符号后加入

rtmp {
    server {
        listen 1935;
        ping 30s;
        chunk_size 4000;
        notify_method get;
        application hls {
            live on;
            hls on;
            hls_path /www/tmp/hls;
            hls_sync 100ms;
            hls_fragment 5s;
        }
        application live {
            live on;
        }
    }
}
或 引入 rmtp.cnf文件

在 events {} 后加入

include rtmp.conf;

建一个在 /www/server/nginx/conf 下建一个 rtmp.conf

rtmp_auto_push on;
rtmp {
    server {
        listen 1935;  #监听端口,记得开放
        ping 30s;
        chunk_size 4000;
        notify_method get;

        application hls {
            live on;
            hls on;
            hls_path /www/tmp/hls; #视频流暂存地址
            hls_sync 100ms;
            hls_fragment 1s;   #切片大小,越小占用资源越高,但是延时越小,默认5s
        }
        application live {
            live on;
        }
        # Video on demand
        #application vod {
        #    play /www/tmp/Videos;
        #}
        # Video on demand over HTTP
        #application vod_http {
        #    play http://localhost:8080/vod/;
        #}
    }
} 
原文链接:https://blog.csdn.net/BowenXu11/article/details/107719679

在 server {}里面的 access_log /www/wwwlogs/access.log; 前面加入:

location /stat {
     rtmp_stat all;  
        rtmp_stat_stylesheet stat.xsl;  
  }  

    location /stat.xsl {   
        root /www/server/nginx-rtmp-module;  
    }

      #这个配置为了客户端能够以http协议获取HLS的拉流 
       location /live {
                types {
                    application/vnd.apple.mpegurl m3u8;
                    video/mp2t ts;
                }
                alias /www/tmp/hls;
                add_header Cache-Control no-cache;
               add_header Access-Control-Allow-Origin *;
        }
放行防火墙的1935端口, 宝塔和阿里云安全组都要打开。

意:存放视频文件的文件夹包括里面的文件以及访问此文件所经过的文件层级都需要具有可读和可进入的权限,否则无法播放

测试

新建文件夹video,用于存放推流的音视频文件。并且拷贝一个MP4文件到该目录下,后面推流要用

mkdir /www/tmp/hls

设置权限指令

chmod -R 555 /www/tmp/hls
http查看rmtp服务器状态

http://ip:888/state

win10安装obs 测试推流 https://obsproject.com/ 打开软件,右下角设置,左上角 直播。 服务:自定义,url: 设置推流地址:rtmp://ip:1935/hls , 推流码 即是 文件名 输入demo 设置后开始推流 软件首页,媒体,场景源,选择本地视频,最右边控制按钮,直播。 如果报错: “打开nvenc编解码器失败请检查您的视频驱动程序” 则:软件设置 输出 直播 编码:切换其他的。

这时候打开宝塔的服务器文件夹,可以看到/www/tmp/hls里面生成了 demo.m3u8文件

使用VLC测试推送结果能否播放

vlc下载地址 https://www.li6.cc/tool/xz/ 找到视频栏目里 vlc 安装后,点 左上角 “媒体” “网络串流” 输入: rtmp://ip:1935/live/demo.m3u8 网页播放: http://ip:888/live/demo.m3u8 [因为苹果不支持flash所以网页使用rtmp拉流播放肯定是不行的] 运行例子 https://www.li6.cc/index/article/details/id/659 里面第二个阿里云的。【在本地或服务器站点环境下运行】

其他资源:

https://www.cnblogs.com/dong1/p/10200869.html

一、服务器端

1、nignx

2、ffmpeg

3、srs

4、livego

5、node-rtsp-rtmp-server

github搜一圈也很多

https://github.com/gwuhaolin/livego

https://github.com/sevenzoe/gortmp

https://github.com/c-bata/rtmp

二、rtmp推流器

1、rtmp发布h264裸数据

librtmp比较常用,但是不好用,还是整理了下

https://blog.csdn.net/firehood_/article/details/8783589

linux版

https://files.cnblogs.com/files/dong1/librtmp_pusher.tar.gz

windows版

https://files.cnblogs.com/files/dong1/librtmp_pusher_win.zip

2、发布h264 rtmp最省事的还是srs-librtmp

开源srs自带的示例srs_h264_raw_publish.c就很容易用起来

我导出了srs-librtmp项目,做了两个demo,分别跑在x86和arm

附件:https://files.cnblogs.com/files/dong1/srs-librtmp_pusher_demo.zip

实际项目都是推送内存,也提供个demo

附件:https://files.cnblogs.com/files/dong1/srs-librtmp_demo.zip

  1. PHZ76 写的rtmp也很不错

https://github.com/PHZ76/rtmp

4、直接用ffmpeg

https://github.com/Akagi201/ffmpeg-push

整理了下,可以推送文件和url网络实时流

https://files.cnblogs.com/files/dong1/ffmpeg_push.zip

./main source.200kbps.768x320.flv rtmp://182.61.45.149:1935/live/movie ./main rtsp://admin:12345@172.16.23.142:554/H.264/ch1/main/av_stream rtmp://182.61.45.149:1935/live/movie

5、下面这个有音频和视频两路数据,比较方便

This tool is used to encapsulate H264 and AAC to RTMP

https://github.com/rainfly123/flvmuxer

6、封装成ts也可以

ts muxer

https://github.com/felix-001/tslib

正文结束

Xshell实现Windows上传文件到Linux主机 yum安装ifconfig 命令