zoukankan      html  css  js  c++  java
  • 如何处理EasyNVR底层nginx崩溃后会导致摄像头视频流无法播放的情况?

    前几天我们接到某个项目团队的反馈,在 EasyNVR 的客户现场中,突然出现无法播放摄像头的情况。经检查后发现是底层 nginx 分发软件崩溃消失了。造成底层nginx崩溃的原因有很多,我们在网络中可以搜集到的原因就有内存不足导致的崩溃、高负载导致的崩溃、穿透导致的崩溃等,但是在本问题中,我们还需进一步检查崩溃原因。

    在该问题中,我们查询EasyNVR日志如下:

    从日志中我们可以发现,在相同的时间,用户修改了录像、端口等信息,nginx 进行 reload 后,原先 10554 端口为 rtsp 端口,重新绑定会出现问题。

    因此不进行 reload 模式操作,直接进行重启即可解决该问题。

    重启 nginx 的参考代码如下:

    // 如果需要重启 nginx
    if restartNginx {
       err := dss.Stop()
       if err != nil {
          log.Println(err)
          c.AbortWithStatusJSON(http.StatusInternalServerError, "nginx 停止失败,请手动重启程序!")
          return
       } else {
          if err = dss.Start(); err != nil {
             log.Println(err)
             c.AbortWithStatusJSON(http.StatusInternalServerError, "nginx 启动失败,请手动重启程序!")
             return
          }
       }
    }

    之前我们还介绍过 EasyNVR 开启多 nginx 来进行分流的方法,大家可以参考:EasyNVR搭建多nginx实现分流方法介绍

     
  • 相关阅读:
    JAVA线程池原理详解一
    并发工具类:CountDownLatch、CyclicBarrier、Semaphore
    JAVA并行框架:Fork/Join
    Mock Server实践
    MockWebServer使用指南
    mybatis学习笔记 spring与mybatis整合
    怎样使用Mock Server
    基于unittest测试框架的扩展
    运营商劫持
    单元测试实战手册
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/14784309.html
Copyright © 2011-2022 走看看