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

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才能成功,否则断开链接

http://www.xdnf.cn/news/13199.html

相关文章:

  • 立足数字人文,深化历史叙事|科学智能赋能人文社科领域研究
  • 用 LoRA 对 Qwen2.5-VL 模型进行SFT - 训练哪些层
  • 为什么选择物理服务器租用?
  • 混合动力无人机设计与运行要点分析
  • 大模型原理、架构与落地
  • LeetCode - 394. 字符串解码
  • 广告系统中后链路数据为什么要使用流批一体技术?流批一体技术是什么?
  • LLM不按预期格式输出?提示词工程远远不够。
  • Log4Net Demo
  • 高防CDN可以防御什么类型的攻击?—— 解析高防CDN的防御能力与应用场景
  • 第十章 基本定时器
  • Gartner企业技术参考架构学习心得
  • Flutter 多版本管理工具 Puro ,它和 FVM 有什么区别?
  • 最新SpringBoot+SpringCloud+Nacos微服务框架分享
  • 【P2P使用指南】
  • Neo4j 图数据库安装教程(2024最新版)—— Windows / Linux / macOS 全平台指南
  • DAY47打卡
  • 云计算——弹性云计算器(ECS)
  • 如何在看板中有效管理突发紧急任务
  • .Net框架,除了EF还有很多很多......
  • 简易版抽奖活动的设计技术方案
  • HTML的初步学习
  • VSCode主题设计
  • React Native 导航系统实战(React Navigation)
  • 基于FPGA的PID算法学习———实现PID比例控制算法
  • 深度学习小项目合集2-视频介绍下自取
  • 飞牛os配置证书自动续期
  • postgresql|数据库|只读用户的创建和删除(备忘)
  • 多面体优化,调度变换
  • 【JavaEE】-- HTTP