注:这里用的是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

&spm=1001.2101.3001.5002&articleId=124497127&d=1&t=3&u=9c6520392aee41d1b7d2c2eb2c57d4b8)
1万+

被折叠的 条评论
为什么被折叠?



