自建直播系统(nginx+rtmp+hls+php)

注:这里用的是hls 延迟有10秒左右,所以慎重

一、安装RTMP

给nginx安装第三方模块nginx-rtmp-module

https://github.com/arut/nginx-rtmp-module.git 

1、进入nginx的目录

cd /nginx目录

2、加入第三方包nginx-rtmp-module

./configure --add-module=nginx-rtmp-module的绝对路径

3、重新编译nginx

make && make install

4、查看是否安装nginx-rtmp-module

nginx -v

看看configure里面有没有nginx-rtmp-module的路径 有代表安装成功,没有代表失败

5、启动nginx

二、配置rtmp->hls

rtmp {
  server {
    listen 1935;                        //rtmp监听的断开
    chunk_size 8129;                //块的大小
    notify_method post; #接口校验的请求方式

application hls {
      live on;                                //开启直播
      hls on;                                //开启hls模式
      max_connections 1024;                    # 最大连接数    
      hls_path /www/wwwroot/ModStartCMS-master/public/data/live; #ls片段存放的位置
      hls_fragment 3s; #设置 HLS 分段长度。默认为 5 秒钟。
      hls_playlist_length 30s; #设置 HLS 播放列表长度。默认为 30 秒钟。
      hls_sync 100ms; #设置 HLS 时间戳同步阈值。默认为 2 ms。这一功能可以防止由低分辨率 RTMP (1KHz) 转换到高分辨率 MPEG-TS (90KHz) 之后出现噪音。
      hls_continuous on; #切换 HLS 连续模式。这一模式下 HLS 序列号由其上次停止的最后时间开始。老的分段保留下来。默认为 off。
      hls_nested on; #切换 HLS 嵌套模式。这一模式下为每个流创建了一个 hls_path 的子目录。播放列表和分段在那个子目录中创建。默认为 off。
      hls_cleanup off; #切换 HLS 清理。这一功能默认为开启的。在这一模式下 nginx 缓存管理进程将老的 HLS 片段和播放列表由 HLS 清理掉。
      publish_notify on;#验证开启
      on_publish http://80.vaiwan.cn/api/live/auth;                #鉴权的地址
    }
  }

}

三、鉴权 (根据自己规则或者业务需求修改)

public function liveAuth(Request $request){
    //rtmp推流时有个串密钥,他会作为name参数发送给你
    $key = $request->get('name','');
    if (empty($key)) {
        header('HTTP/1.1 401 Unauthorized');
        header('Status: 401 Unauthorized');
        exit();
    }
    //此处我是解密这个密钥串的信息,看看是否正确,是否失效(建议给每个密钥串一个过期时间)
    if (empty(LiveUtil::orderSecury($key,'D'))) {
        header('HTTP/1.1 401 Unauthorized');
        header('Status: 401 Unauthorized');
        exit();
    }
    //校验密钥串对应直播间是否正常,如果是封号则不允许推流
    $l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PHP小渣渣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值