SRS关闭无人观看的流

这篇具有很好参考价值的文章主要介绍了SRS关闭无人观看的流。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里需要使用到SRS自身自带的钩子回调功能,配置文件中有标注:

Hook函数:

分为on_publish、on_play、on_stop、on_unpublish、on_dvr等类别;

其中主要介绍on_play、on_stop

on_play:

主要用于用户在对srs拉流进行播放的时候触发;

on_stop:

主要用于用户在停止播放的时候触发;

一、如何获取SRS发出的回调信息

要做到关闭无人观看的SRS流的话,需要一个http_server端来接收SRS所发出的http请求,并及时回复code:200, 否则SRS无法进行下一步的操作(放流或断流), 回复了SRS以后我们对信息进行解析即可获取到是用户断开了播放还是开始播放。

消息体如下:使用on_play举例

Body:
{
  "server_id": "vid-0xk989d",
  "action": "on_play",
  "client_id": "341w361a",
  "ip": "127.0.0.1",
  "vhost": "__defaultVhost__",
  "app": "live",
  "tcUrl": "rtmp://127.0.0.1:1935/live?vhost=__defaultVhost__",
  "stream": "livestream",
  "param": "",
  "stream_url": "video.test.com/live/livestream",
  "stream_id": "vid-124q9y3"
}

可以从上述json中的action字段看到是on_play,此时可以知道用户在拉流进行播放操作,如果用户断开播放或停止播放后,SRS会向http_server发出on_stop的信息告知用户已经停止播放。 

 二、如何对SRS进行配置,以达到SRS向指定的IP和端口发送http信息

vhost your_vhost {
    http_hooks {
        enabled         on;
        on_publish      http://127.0.0.1:8085/api/v1/on_publish;
        on_unpublish    http://127.0.0.1:8085/api/v1/on_unpublish;
        on_play         http://127.0.0.1:8085/api/v1/on_play;
        on_stop         http://127.0.0.1:8085/api/v1/on_stop;
        on_dvr          http://127.0.0.1:8085/api/v1/dvrs;
        on_hls          http://127.0.0.1:8085/api/v1/hls;
        on_hls_notify   http://127.0.0.1:8085/api/v1/hls/[app]/[stream]/[ts_url][param];
    }
}

 在SRS的配置文件中可以这样进行配置,IP和端口根据自己需求进行替换即可,如果需要https,那么直接将http替换为https即可。不需要的配置选项可以通过#符号注释掉

三、在http_server端关闭无人观看的音视频流

对SRS返回的http信息进行解析后,我们可以设置每路流的基础观看人数为0,若收到on_play信息则计数+1,收到on_stop那么计数-1即可。根据自己需求进行控制. 

四、注意事项

其中需要注意的有:

1、hls流要进行统计的话,需要打开一个配置文件参数叫hls_ctx的配置;

2、hls流在通过nginx代理过后,SRS则无法进行统计,因为hls比较特殊,是通过不断请求ts切片进行播放,所以会建立很多连接并断开,SRS内部为hls做了虚拟连接,但是这个虚拟连接会导致nginx的代理无效。以下是SRS的配置原话文章来源地址https://www.toymoban.com/news/detail-834338.html

        # Whether enable hls_ctx for HLS streaming, for which we create a "fake" connection for HTTP API and callback.
        # For each HLS streaming session, we use a child m3u8 with a session identified by query "hls_ctx", it simply
        # work as the session id.
        # Once the HLS streaming session is created, we will cleanup it when timeout in 2*hls_window seconds. So it
        # takes a long time period to identify the timeout.
        # Now we got a HLS stremaing session, just like RTMP/WebRTC/HTTP-FLV streaming, we're able to stat the session
        # as a "fake" connection, do HTTP callback when start playing the HLS streaming. You're able to do querying and
        # authentication.
        # Note that it will make NGINX edge cache always missed, so never enable HLS streaming if use NGINX edges.
        # Overwrite by env SRS_VHOST_HLS_HLS_CTX for all vhosts.
        # Default: on
        hls_ctx on;

到了这里,关于SRS关闭无人观看的流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Structured Streaming: Apache Spark的流处理引擎

    欢迎来到我们的技术博客!今天,我们要探讨的主题是Apache Spark的一个核心组件——Structured Streaming。作为一个可扩展且容错的流处理引擎,Structured Streaming使得处理实时数据流变得更加高效和简便。 Structured Streaming是基于Apache Spark SQL引擎构建的高级流处理框架。它允许用户

    2024年01月25日
    浏览(53)
  • 什么是Node.js的流(stream)?它们有什么作用?

    聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而

    2024年02月06日
    浏览(37)
  • 学堂在线网课自动观看

    使用教程 本脚本只支持Edge和Google浏览器,其他浏览器暂不支持。 建议将浏览器更新至最新版本再来看下面的教程。 谷歌浏览器: 打开http://chromedriver.storage.googleapis.com/index.html Edge浏览器: 打开Microsoft Edge WebDriver - Microsoft Edge Developer 在里面找到和你的浏览器版本(浏览器版本

    2024年02月09日
    浏览(32)
  • Java核心技术知识点笔记—Java SE 8的流库(二)

    前言:约简是一种终结操作(terminal operation),它们会将流约简为可以在程序中使用的非流值。例如:Stream中的count方法,返回流中元素的数量。 1、简单约简举例: (1)OptionalT max(Comparator? super T comparator):使用给定的comparator规则,产生流的最大元素,如果流为空,则产生一

    2023年04月18日
    浏览(55)
  • Flink的流处理和人工智能:将人工智能融入流处理

    作者:禅与计算机程序设计艺术 作为一位人工智能专家,程序员和软件架构师,我深知流处理的重要性和价值。流处理是一种高并行、高可扩展性的数据处理方式,能够大大提高数据处理的速度和效率。同时,结合人工智能技术,可以进一步提高流处理的智能和自适应能力。

    2024年02月15日
    浏览(35)
  • 【第二章】分析一下 Flink中的流执行模式和批执行模式

    目录 1、什么是有界流、无界流 2、什么是批执行模式、流执行模式 3、怎样选择执行模式? 4、怎样配置执行模式? 方式1:提交计算任务时,通过参数来指定(推荐,这种方式更灵活) 方式2:在Driver程序中配置执行模式(不推荐) 5、这是一个完整的入门案例 有界流:        

    2024年02月11日
    浏览(36)
  • 视频观看行为高级分析(大数据分析)

     今天介绍一下我们的视频观看行为高级分析功能。 观看行为分析,基于Polyv大数据分析,能够以秒为粒度展示观众如何观看您的视频。 视频观看热力图是单次观看行为的图形化表示,Polyv云点播视频的每一次播放,都会产生一个热力图。这是一种强大的工具,因为热力图不

    2024年02月08日
    浏览(37)
  • java在线观看(jav在线网站)

    java在线网站给大家展示6个java在线网站)。后面还有java在线API,各种java在线在线api地址。 java在线观看1、LintCode Java学习爱好者的福音,和LeetCode类似,也是一个刷题的OJ网站,提供闯关式的阶梯训练以及国内外知名大厂的笔试面试真题。它不仅有算法题、数据库题、Java题目可

    2024年02月09日
    浏览(32)
  • 关于repeater录制的流量子调用的identity中带有~S的情况

    前段时间同事问我,我们录制的流量中,尤其是dubbo的子调用显示经常他的末尾会带上一个小尾巴这个是什么意思呢,其实之前我没有太在意这个事情,只是同事这么疑问了,确实激起了好奇心,所以就差了下 到底是什么 我们先看下是什么样的现象, 如下图所示: 如上,

    2024年02月01日
    浏览(24)
  • java 解读zip文件,获取压缩包内各文件的流的集合

    解读zip文件,把zip文件内的众文件转化成流集合,方便其他后续操作

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包