nginx-rtmp-module,RTMP推流鉴权

首先编译安装PHP,NGINX和nginx-rtmp-module插件这些本篇就不细说了具体可以参考这篇文章,nginx-rtmp-module默认知道rtmp的URL就能够推送所以需要设置一个用户权限鉴定.
添加一个站点放入PHP鉴权文件

<?php
// ?name=index&pass=123456
$name = $_POST['name'];
$pass = $_POST['pass'];

$savename= 'index';
$savepass = '123456';
if(empty($name) || empty($pass)){
echo "串码流不正确!";
header('HTTP/1.0 404 Not Found');
}else{
if (strcmp($name, $savename) == 0 && strcmp($pass, $savepass) == 0) {
echo "串码流正确!";
} else {
echo "串码流不正确!";
header('HTTP/1.0 404 Not Found');
}
}

接下来编辑nginx.conf文件添加rtmp配置

rtmp { 
server { 
listen 1935; #监听的端口 
chunk_size 5000; 
application hls { #rtmp推流请求路径 
live on;
publish_notify on; 
on_publish http://xxx.xxx.xxx/on_publish.php;#鉴权文件地址
hls on;
hls_path /www/wwwroot/xxx/live;  #这个目录是推流文件存储的位置
hls_fragment 5s;
record off;
} 
} 
}

接下来测试效果
ffmpeg -re -i 1.mp4 -c copy -f flv rtmp://192.168.2.4/hls/index?pass=123456
OBS使用方法

如果密码正确则可以正常推流,如果错误则会提示错误

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注