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

[实战]推流服务SRS安装

业务场景

在Web浏览器端展示摄像头的视频数据。

协议

物联代理推流协议:rtmp   

浏览器器拉流协议:http-flv

推流方案

1、Nginx加nginx-http-flv-modules模块  

2、采用SRS服务器

 推流服务SRS网站:https://ossrs.io/lts/zh-cn/

 推流服务GitHub: https://github.com/ossrs/srs

两种方案。建议使用SRS服务器,简单、性能高。

SRS方案

本文详细讲解SRS方案。

SRS部署


1、Docker部署SRS
docker run -it -d -p 1935:1935 -p 1985:1985 -p 8080:8080 --name srs registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
建立目录
mkdir -p /root/srs
3、拷贝数据
把容器中的配置文件复制出来
docker cp -a srs:/usr/local/srs/conf /root/srs
把容器中的数据文件复制出来
docker cp -a srs:/usr/local/srs/objs /root/srs
4、停服务、删除容器
docker stop srs
docker rm srs
重新启动
docker run -it -p 1935:1935 -p 1985:1985 -p 8080:8080 --name srs --restart=always -v /root/srs/conf:/usr/local/srs/conf  -v  /root/srs/objs:/usr/local/srs/objs  registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5

推流地址说明


示例:rtmp://192.168.60.44:1935/live/livestream?token=xxx
live:app名称。位置不可变更
livestream:  流名称。位置不可变更
token=xxx:自定义,本示例中使用token进行验证。根据目前测试结果自定义参数只能为一个。
    对应播放地址: http://192.168.60.44:8080/live/livestream.flv

使用OBS推流设置如下:

使用VLC media player播放地址如下:

也可以使用rtmp协议进行播放

HTTP回调

通过HTTP回调配置,可以验证是否允许客户端进行推流或播放流

  •  配置回调

修改/root/srs/conf目录下的docker.conf配置文件
在【vhost __defaultVhost__ 】节点里增加
http_hooks {
  on_publish http://192.168.60.109:48083/auth;
  on_play http://192.168.60.109:48083/auth;
}
on_publish: 推流时的回调地址,可多个,以空格区分
on_play: 播放时的回调地址,可多个,以空格区分

  •  回调地址说明

回调地址必须为POST方法。
允许推流或播放返回类型使用application/json,返回{code: 0 }或者Content-Type", "text/plain; charset=utf-8 返回0。其他情况为失败,不允许播放

  •  回调请求体示例
{
  "server_id": "vid-13043e0",
  "service_id": "573n87xm",
  "action": "on_publish",
  "client_id": "564drr64",
  "ip": "192.168.60.109",
  "vhost": "__defaultVhost__",
  "app": "live",
  "tcUrl": "rtmp://192.168.60.44:1935/live",
  "stream": "livestream",
  "param": "?token=xxxx",
  "stream_url": "/live/livestream",
  "stream_id": "vid-4e37rxn"
}

浏览器拉流

可以使用flv.js实现拉流播放,本人非前端不详细说明如何使用flv.js

整体业务流程


http://www.kler.cn/a/453170.html

相关文章:

  • lxml 解析xml\html
  • Day50 图论part01
  • Virtualbox硬盘扩容
  • python爬虫----爬取视频实战
  • <数据集>风力发电机损伤识别数据集<目标检测>
  • 基于 LMS 算法的离散傅里叶分析器
  • 2024年12月26日Github流行趋势
  • 以太坊的演变:二层扩容的无限潜力和一键多链
  • 2023 年 12 月青少年软编等考 C 语言四级真题解析
  • git--批量修改本地用户名和邮箱
  • ovirt-engine登录报错
  • Lazydocker:高效便捷的Docker管理工具
  • Linux编程中的性能优化方法和工具
  • 精准识别花生豆:基于EfficientNetB0的深度学习检测与分类项目
  • @RequestParam和@PathVariable的解释与区别
  • 从自动驾驶到具身智能漫谈
  • 正则表达式(三剑客之sed)
  • HarmonyOS NEXT 实战之元服务:静态案例效果---每日玩机技巧
  • 跨境电商培训:云手机的新舞台
  • 某车之家appso层签名逆向