easynvr拉取go2rtc视频流断流问题

Viewed 62

系统:飞牛1.2.0505
处理器:j1800
easynvr版本:EasyNVR/v7.7.412 (platfrom/linux_amd64)
go2rtc版本: 1.9.14+dev.dc1685e

bug情况:
家中有小米室外摄像机4双摄版、小米云台版2K,两个摄像头通过go2rtc转换后接入easynvr。
1.如果取流模式,设置为native,则正常调阅与录制一段时间之后,就会无法显示画面也无法录制。
2.而如果取流模式,设置为ffmpg模式,则云台版2K能正常使用,而摄像机4双摄版无法正常工作,甚至导致easynvr卡死、关闭,需在飞牛重启,立刻将摄像机4双摄版取流模式,设置为native才不再卡死。
3.重启easynvr,刚开始可以正常使用,但过了一段时间,虽然摄像头依旧像是正常连接,检测也正常,但是就是不显示画面。
QQ拼音截图20260907025213.pngQQ拼音截图20260907025203.png

以下豆包总结的分析:

EasyNVR 问题反馈描述

版本:EasyNVR v7.7.412(Linux amd64)
场景:接入 go2rtc 中转输出的 RTSP 流,前端设备为小米摄像机 4 双摄版、小米云台版 2K

问题 1:ffmpeg 取流模式下,遇到携带非标异常音频的 RTSP 流,ffmpeg 子进程卡死

  1. 部分 IPC 经过第三方中转(go2rtc)输出 RTSP,音频存在时间戳错乱、异常帧、静音帧等非标情况。
  2. 即使 EasyNVR 界面上把【启用音频】设置为关闭,ffmpeg 取流模式依旧会去解析 RTSP 流内原始音频轨道,造成 ffmpeg 子进程阻塞卡死,视频无法正常播放。
  3. 对比:同一套流,native 取流模式可以正常播放;另一台音视频输出标准的摄像头,ffmpeg 模式工作正常。

期望:界面关闭音频时,ffmpeg 侧应当忽略、不解析流中的音频轨道,不因为音频异常导致整个取流进程卡死。

问题 2:native 内置 RTSP 取流模式,无法识别 TCP 会话僵死,无自动恢复能力

  1. RTSP‑TCP 长时间运行后,中转服务(go2rtc)发生 socket 会话老化僵死,链路实际已经中断。
  2. native 内置 RTSP 解析器不能识别这种僵死连接:设备状态依旧显示在线,不会判定流异常,不会触发断开重建连接,表现为画面黑屏冻结。
  3. 当前 v7.7.412 版本 WEB 管理界面没有提供流自动重连的配置开关,僵死后只能人工手动重启流恢复,无法自动兜底。

期望:native 模式增加链路僵死检测,会话异常时自动断流重拉;WEB 页面提供自动重连相关配置项。

补充环境说明

  • 传输方式:RTSP over TCP
  • 现象复现条件:上游 RTSP 来自第三方中转服务,且源设备音频流非标。
  • 对比设备:小米云台版 2K 音视频输出标准,ffmpeg、native 模式均运行稳定;摄像机 4 双摄版存在上述两类问题。
2 Answers

目前找到一个可用的方法:
在go2rtc的配置文件中,摄像头链接的末尾加上
“#video=copy#audio=aac”
不改变视频,只将因为转为aac,
然后将easynvr调整成ffmpg模式,
能正常使用了

新版本v7.7.417支持原生接入小米摄像头了,修复了这个问题,可以从官网https://www.easynvr.com/ 获取安装包