zoukankan      html  css  js  c++  java
  • 国标GB28181协议视频人脸识别/车牌识别平台EasyCVR录像计划关闭无效问题排查

    EasyCVR根据不同客户端进行全平台直播,可以分发出RTMP和HLS流,能够完美覆盖目前市面上所有需求平台,同时,EasyCVR在直播时,还提供了多种配套功能进行辅助:直播鉴权功能、按需直播功能。此外,EasyCVR内还支持通过录像计划实现视频录像。

    我们日常测试EasyCVR时,对某一通道开启云端录像的录像计划进行录制,一段时间后关闭录像计划,此时录像是能够正常停止的,但是当再次点击播放该通道的直播流数据时,会出现重新开始录制的情况。

    此时设备云端录像列表与录像计划设置如下所示:

    当有用户在播放时,设备录像列表截图

    可以看出来,假如设备没有开启云端录像的录像计划,当用户在播放视频流时,设备依然会录像。

    通过排查代直播流程代码发现,当设备直播时回去且设备录像保留天数大于0时,就会开启云端录像推送数据。

    mediaSession.Snaping = true
    mediaSession.Pusher = rtmp.NewStreamPusher(rtmpID, rtmpURL)
    err = mediaSession.Pusher.Open()
    if mediaSession.Record != 0 {
           mediaSession.RecordPusher = rtmp.NewStreamPusher(recordID, recordURL)
           if err := mediaSession.RecordPusher.Open(); err != nil {
                  sms_log.Log.Fatalf("[%s]record pusher open failed:[%s]", rtmpID, err.Error())
           }
    }
    

    因为加了录像计划的开关,所以这里的代码需要做如下调整,启动一个监听录像计划的后台进程,当有满足录像计划的设备时,自动开启录像

    for _, l := range uax.ChannelDispatcher.GetListeners(fmt.Sprintf("cloud_record_%s_%s", session.GetDeviceID(), session.GetChannelID())) {
           uax.ChannelDispatcher.RemoveListener(l)
    }
    cloudRecordListener := events.NewListener(fmt.Sprintf("cloud_record_%s_%s", session.GetDeviceID(), session.GetChannelID()), func(arg ...interface{}) bool {
           if arg[0].(uint) > 0 {
                  if session.RecordPusher == nil {
                         _recordID := fmt.Sprintf("%s_%s", session.GetDeviceID(), session.GetChannelID())
                         _recordURL := fmt.Sprintf("rtmp://127.0.0.1:%d/record/%s", dss.GetRTMPPort(), _recordID)
                         session.RecordPusher = rtmp.NewStreamPusher(_recordID, _recordURL)
                         session.RecordPusher.Open()
                  }
    
    

    再次测试,当录像计划停止时,再次点击观看,设备也不会继续录像,问题解决。

  • 相关阅读:
    路由聚合(路由发布时)
    RIP
    路由选择和静态路由
    传输介质和IP地址
    升级VRP
    文件系统
    命令行基础
    常见的网络设备
    mysql基本的修改表的命令
    mysql的外键知识
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14217788.html
Copyright © 2011-2022 走看看