当前位置: 首页 > news >正文

srs linux

下载编译运行

git clone https:///ossrs/srs.git
./configure --h265=on 
make

编译完成后即可启动SRS 

# 启动
./objs/srs -c conf/srs.conf
# 查看日志
tail -n 30 -f ./objs/srs.log

开放端口


默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可以通过修改conf/srs.conf文件进行变更

SRS网页管理界面

网址: http://192.168.31.14:8080/

点击进入 SRS控制台,可以查看相关详情,包括当前系统的内存CPU,当然最有用的还是查看当前的视频流参数,查看当前推流个数和用户点播个数

SRS增加身份验证

作为一个rtmp服务器,基本的验证机制是需要有的,srs很巧妙的使用了http callback的方式来实现验证机制,我测试的情况如下:

1)首先,在服务器上,使用了如下配置:

# main config for srs.
# @see full.conf for detail config.listen              1935;
max_connections     1000;
#srs_log_tank        file;
#srs_log_file        ./objs/srs.log;
daemon              on;
http_api {enabled         on;listen          1985;
}
http_server {enabled         on;listen          8081;dir             ./objs/nginx/html;
}
rtc_server {enabled on;listen 8000; # UDP port# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidatecandidate $CANDIDATE;
}
vhost __defaultVhost__ {hls {enabled         on;}http_remux {enabled     on;mount       [vhost]/[app]/[stream].flv;}rtc {enabled     on;# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtmp-to-rtcrtmp_to_rtc off;# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtc-to-rtmprtc_to_rtmp off;}# http回调http_hooks{enabled       on;on_connect http://127.0.0.1:8631/api/hook/index;on_close http://127.0.0.1:8631/api/hook/index;on_publish http://127.0.0.1:8631/api/hook/index;on_unpublish http://127.0.0.1:8631/api/hook/index;on_play http://127.0.0.1:8631/api/hook/index;on_stop http://127.0.0.1:8631/api/hook/index;on_dvr http://127.0.0.1:8631/api/hook/index; on_hls_notify http://127.0.0.1:8631/api/hook/index;}play{gop_cache_max_frames 2500;}
}

1、HTTP回调

HttpCallBack

  • 事件:发生该事件时,回调指定的HTTP地址
  • HTTP地址:可以支持多个,以空格分隔,SRS会依次回调这些接口
  • 数据传输:SRS将数据POST到HTTP接口

推流授权

回调的事件很多,这里介绍常用的推送RTMP流的场景:on_play

取RTMP流时,需要安全校验

推流地址:

rtmp://ip:1935/live/45010000041310000053-1?token=25874920-2ac7-4f3f-aaf3-21cd8e6af403

HTTP回调:

打印的POST数据如下:

{"server_id":"vid-6m79i4s","service_id":"9948qv04","action":"on_play","client_id":"ogi41j50","ip":"14.19.97.78","vhost":"__defaultVhost__","app":"live","stream":"45010000041310000053-1","tcUrl":"rtmp://ip:1935/live","param":"?token=25874920-2ac7-4f3f-aaf3-21cd8e6af403","pageUrl":"","stream_url":"/live/45010000041310000053-1","stream_id":"vid-341487w"}

此时解析 param 或 tcUrl 参数获取推流时传递的key、token等参数即可根据自己的业务逻辑进行授权判断是否合法。

如果合法,回调的接口需要返回 HTTP Code 200并且response内容为整数错误码(0表示成功),其他错误码会断开客户端连接。从而实现发布RTMP流的安全校验的目的。

必须要200ok 0才能成功,否则断开链接

相关文章:

  • asio之读写
  • 解决克隆Github源码库时的Permission denied 问题
  • JAVA中的多线程
  • 对DOM操作 与 jQuery的简单理解(通俗
  • 【数组和二分查找】
  • 鹰盾播放器禁止录屏操作的深度技术解析与全栈实现方案
  • 《高等数学》(同济大学·第7版)第三章第五节“函数的极值与最大值最小值“
  • SpringDoc集成到Springboot
  • 【PhysUnits】17.5 实现常量除法(div.rs)
  • git clone 时报错超时的问题解决方案
  • windows mysql zip部署
  • 国产 AI 绘画新标杆:HiDream-I1 的技术突破与创作
  • Python入门手册:常用的Python标准库
  • 企业中使用 MCP Server 实现业务打通
  • 全国大学生计算机应用能力与数字素养大赛 C语言程序设计赛项——本科组练习
  • 人工智能增强入侵检测系统以对抗高级持续性杀伤链
  • 《信号与系统》第 7 章 采样
  • 1.一起学习仓颉-编译环境,ide,输出hello,world
  • 鹰盾加密器基于AI的视频个性化压缩技术深度解析:从智能分析到无损压缩实践
  • Pytest断言全解析:掌握测试验证的核心艺术
  • 黄冈网站建设费用/网站推广的100种方法
  • 有了网址怎么做网站/天津做网站的
  • 阿里巴巴网站费用怎么做分录/宁德市区哪里好玩
  • 山东省住房和城乡建设网站/搜索引擎入口官网
  • 做的网站一模一样会被告吗/清远网站seo
  • 企业网站建设案例分析/网站seo优化工具