假设nginx直播服务器已经搭建完毕,如果还没有搭建完毕可以查阅利用nginx的nginx-rtmp-module搭建流媒体直播服务器这篇文章。在开发直播项目时推流应该是需要做权限认证的,不是任何人都可以随意向直播服务器推流,这就需要权限认证,实现起来也不复杂,只需要在nginx配置文件中的rtmp->server->application 下配置on_publish选项就可以,下面给出关键示例配置:
application hls { #rtmp推流请求路径
live on;
on_publish http://验证服务器域名/check.php; #授权地址 推流时会请求
on_publish_done http://验证服务器域名/check.php; #推流结束时请求
hls on;
hls_path /home/wwwroot/video/hls;
hls_fragment 5s;
}
通过以上配置可以看到on_publish 和面跟的参数是一个授权url ,在推流客户端推流时会请求该url,如果对应的url响应状态码为200则推流会成功,如果返回其他异常状态码404或者500等则会推流失败。
那么推流时如何向该url地址发送对应的认证信息,请求到对应的url后又如何认证呢,首先看一下推流客户端如何请求,以OBS为例只需要在流名称后加入类似GET请求参数的数据格式即可,假设流名称为edu则流名称可以这样设置edu?password=123456这样就设置了认证密码为123456,在推流时会有几个参数POST到认证url,下面给出示例参数
[app] => hls
[flashver] => LNX 11,2,202,233
[swfurl] =>
[tcurl] => rtmp://推流地址:1935/hls
[pageurl] =>
[addr] => 192.168.8.223
[clientid] => 38
[call] => publish
[name] => edu
[type] => live
[password] => 123456
这样可以在程序中使用$_POST['password']获取到对应的认证密码,并作出对应的处理,示例代码如下
// 如果认证不成功 响应状态码404
if(($_POST['name'] == 'edu') && ($_POST['password'] != '123456')){
header('HTTP/1.0 404 Not Found');
}
这样就可以作出认证了,当然可以设置多个流名称(频道)对应多个密码。另外on_publish_done配置项和on_publish传递的参数几乎一样,只是on_publish在推流开始时会请求并执行认证流程,而on_publish_done在推流结束时请求。
-
离心泵 离心水泵 全焊接球阀 焊接球阀 上海螺杆泵 磁力泵 化工泵 隔膜泵36 上海离心泵 上海磁力泵 上海磁力泵 上海隔膜泵 上海螺杆泵 上海化工泵21 上海污泥螺杆泵 螺杆泵11 污泥螺杆泵27 离心泵54 直埋全焊接球阀 埋地全焊接球阀 泵 水泵 上海离心泵 上海离心水泵 焊接球阀 全焊接球阀 上海螺杆泵 离心泵 离心水泵21(0) 回复 (0)
-
学会低调,取舍间,必有得失。做自己的决定,然后准备好承担后果。慎言,独立,学会妥协的同时,也要坚持自己的底线。明白付出并不一定有结果。过去的事情可以不忘记,但一定要放下。要快乐,要坚韧,要温暖,给予真诚。愿我做到这一切,只为久等的人。 幸运飞艇走势图、 福彩双色球走势图、 幸运时时彩走势图(0) 回复 (0)
-
百家樂的玩家下注一段時間就會發現,有段時間特別好賺(0) 回复 (0)
-
讨债公司/蓝月传奇辅助/蓝月辅助(0) 回复 (0)