BrainFrame 客户端报错

存档自 BrainFrame 论坛。发布于 2020年2月21日。 15 条回复 · 1280 次浏览 由英文原帖翻译成中文。 阅读原文

AOTU support
  1. 向客户端导入本地视频时出错,导入本地视频还有其他要求吗?文档里似乎没有提到。

    14-导入出错
  2. 打开网络摄像头时也出错。而其他工具可以正常打开这个 rtsp 地址的视频。

    15-打开网络摄像头出错
  3. 程序崩溃,提示“An exception occurred, the client must be closed”。

    16-报错
  4. 我的服务器地址设置如下,有错误吗?

    17-服务器地址设定

5. 打开客户端时的其他错误信息。

18-报错信息
AOTU support

你好 Xiaofei,欢迎来到论坛,感谢发帖!

向客户端导入本地视频时出错,导入本地视频还有其他要求吗?文档里似乎没有提到。

是的,这部分文档需要更新。要播放视频文件,请把该文件放到服务端 docker-compose.yml 所在的目录,然后用文件路径 /working_dir/video_t1.mp4 新建一个视频流。

打开网络摄像头时也出错

能否告诉我们你使用的设备 ID,以及出现的错误?

而其他工具可以正常打开这个 rtsp 地址的视频

你提供的 URL 看起来只是一个 IP 地址。RTSP 地址必须以“rtsp://”开头,通常还带有 BrainFrame 连接所需的其他信息。相关文档在这里。格式大致如下:

rtsp://[username]:[password]@[ip]/[path]

并非所有 RTSP 流都需要路径,你的情况可能不需要。如果你能告诉我们 IP 摄像头的品牌和型号,我们也许能帮你确定这个 RTSP 地址!

程序崩溃,提示“An exception occurred, the client must be closed”

这像是我们在 v0.23.0 版客户端中发现的一个 bug。请从我们的下载页面下载最新的 v0.23.1 版本,该问题已修复。

AOTU support

我重新试了一次,并把服务端和客户端都升级到了 v0_23_1。打开本地视频文件和 RTSP 地址的摄像头仍然失败,提示信息与 v0_23_0 版本似乎相同。如下:

  1. 打开 RTSP 地址的摄像头失败,失败信息见图中红框

    5-失败信息
  2. 打开本地视频文件时出现同样的错误。此时视频文件和 docker-compose.yml 在同一路径下

    6-打开本地文件的路径
    7-添加本地
    8-添加本地后,报错

3. 新版客户端打开运行后,如果选择点击关闭,程序会崩溃,如下图所示

9-关闭客户端后,程序仍未退出,输入ctrl c,提示奔溃

4. 此时服务端的运行情况

4-运行版本信息
10-运行客户端版本信息
AOTU support

打开 RTSP 地址的摄像头失败,失败信息见图中红框

这是 401 Unauthorized 错误,通常意味着提供的视频流用户名和密码不正确,或者没有提供用户名和密码。你有把 IP 摄像头的用户名和密码写进 URL 吗?

打开本地视频文件时出现同样的错误。此时视频文件和 docker-compose.yml 在同一路径下

方向是对的,只是当前的做法容易让人困惑。不要用文件浏览器选择文件,而是直接输入“/working_dir/video_t1.mp4”。我们以后会改进这一体验,让它更简单、更清晰。

3. 新版客户端打开运行后,如果选择点击关闭,程序会崩溃,如下图所示

看起来你是用 Ctrl+C 关闭客户端的。这样客户端无法正常退出,会出现 KeyboardInterrupt 错误。这通常无害,但我建议你点击窗口右上角的“X”来关闭客户端。

AOTU support
  1. 是的,图中打了马赛克的部分原本是账号和密码。我用这个地址在 VLC 媒体播放器中可以打开。

    11-输入的RTSP地址正确
  2. 我试过了,还是同样的错误

  3. 是的,我确实点了“X”关闭客户端。但终端命令行没有反应,所以只能输入“ctrl + C”来关闭。

非常感谢你的回复!

AOTU support

嗯,很有意思!为了帮我们找出问题,你能运行下面的命令吗?

GST_DEBUG=3 gst-play rtsp://your-url-here

请把这条命令输出的日志发给我们,谢谢!

在截图里你填的是“/opt/BrainFrame/video_t1.mp4”。“video_t1.mp4”必须放在与 docker-compose.yml 相同的根目录下。

└── BrainFrame
    ├── docker-compose.yml
    └── video_t1.mp4

然后把文件路径设为“/working_dir/video_t1.mp4”。

我不确定为什么客户端关闭要花很长时间。通常它会等所有视频流连接都干净地关闭之后才退出。也许是花了比较久?不管怎样,这不是什么大问题。

AOTU support
  1. 显示如下:

    12-技术人员反馈让输入的命令
    命令是“GST_DEBUG=3 gst-play rtsp://admin:****@192.168.2.64:554/h264/ch1/main/av_stream”

  2. 我把文件路径设为“/working_dir/video_t1.mp4”后就可以了,太好了!
    13-本地文件路径OK后,能够读取视频

AOTU support

抱歉,我忘了提依赖项。

安装 gstreamer:

sudo apt install gstreamer1.0-plugins-{base,good,bad,ugly} gstreamer1.0-tools

测试视频流:

GST_DEBUG=3 gst-play rtsp://your-url-here
AOTU support

错误信息如下,请查看:

16-调试提示错误
按“k”键来显示键盘快捷键列表。
正在播放 rtsp://admin:****@192.168.2.64:554/Streaming/Channels/101?transportmode=unicast
0:00:00.378669369  9016 0x55f0679e6e70 WARN            uridecodebin gsturidecodebin.c:1409:gen_source_element: error: “rtsp”未实现 URI 处理器。
ERROR “rtsp”未实现 URI 处理器。 for rtsp://admin:****@192.168.2.64:554/Streaming/Channels/101?transportmode=unicast
ERROR debug information: gsturidecodebin.c(1409): gen_source_element (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0
到达播放列表结尾。
AOTU support

这很奇怪,这个错误通常意味着没有安装 GStreamer 的 RTSP 插件,但它们应该包含在 gstreamer1.0-plugins-good 软件包里。运行下面的命令会怎样?

gst-inspect-1.0 rtspsrc
AOTU support

No plugs ‘rtspsrc’
接下来该怎么办?还有别的办法吗?

17-调试提示错误
AOTU support

你确定这条命令成功执行完了吗?

sudo apt install gstreamer1.0-plugins-{base,good,bad,ugly} gstreamer1.0-tools

方便的话,能把这条命令的输出发给我吗?

AOTU support

是这样吗?

18-调试提示错误
AOTU support

我刚想到——你是不是在用 Anaconda?:fearful:

arrow

我们以前遇到过 Anaconda 的问题,因为它自带了一个版本的 gstreamer(只包含部分 gstreamer 插件)。

能否退出 Anaconda 环境后再试一次?

conda deactivate
gst-inspect-1.0 rtspsrc

如果这样可以,再试一下那个 URL?

GST_DEBUG=3 gst-play rtsp://your-url-here
AOTU support

好的!问题已经远程解决了。给以后来这个帖子查看的人:最终的问题是 rtsp 摄像头的密码里包含“@”符号。这会让 gstreamer 的解析器混淆,在客户端日志里表现为“401 unauthorized”错误。

我们修改了摄像头的密码,之后就正常了!

另一种解决办法是在客户端里把“@”替换为“%40”。这是“@”的 URL 编码,可以被正确解析。

AOTU support

太好了!做得好!
@AOTU support 非常感谢!

© 2026 Aotu 版权所有 · 网站隐私声明
Built on 2026-10-10 00:24:09 UTC