【问题标题】:systemd cant access to camera via opencvsystemd 无法通过 opencv 访问相机
【发布时间】:2019-06-28 23:04:33
【问题描述】:

我的问题是 OpencvSystemd 一起使用!

我在 Ubuntu 16.0.4 上安装了新的 Opencv 我编写了一个程序来获取相机流并存储一些帧。 它“没有”问题。 但不能通过 Systemd 工作。 systemd 单元处于活动状态(不会失败)但目标文件夹中没有帧存储。

我一步一步地寻找问题,我发现代码在打开相机流时挂起。那是: cap.open("MyIpCameraAddress")

  • 我尝试通过 bash 脚本而不是 .但问题存在。
  • 我还发现,当我通过 systemd 运行程序时,相对地址不起作用(当我测试打开图片时)

我的 systemd 单元文件:

[单位]
说明= abc
之后=network.target

[服务]
ExecStart= /path/to/executable
重启=始终

[安装]
WantedBy=multi-user.target


也像上面一样测试一个 systemd 单元,但要运行一个 .sh 文件

当我启动我的系统单元时,目标文件夹(期望存储一些帧)会在其上显示一个锁定图标。 但是当直接通过终端运行我的程序时,dest 文件夹上没有任何 锁定图标


编辑: 我用 Opencv v3.4.3 和 v4.0.1 测试过,结果是一样的。

【问题讨论】:

  • 您能发布您的程序的最小版本吗?如果没有该程序,我们需要猜测 systemd 可能会干扰哪些操作。
  • 我正在测试一个非常简单的程序,它挂在这个代码上:cap.open("IPadress");
  • cap 会是 VideoCapture 对象吗? documentation 声明您需要传递正确的 URL 而不是 IP 地址。
  • 您可以尝试将调试器附加到 systemd 启动的进程以查看它究竟挂在哪里,或者在strace 下运行它。

标签: c++ opencv systemd


【解决方案1】:

我找到了解决方案 问题是我安装opencv的方式(我在openvino pakage中使用了opencv) 我安装了独立版本的opencv,问题解决了。

如果有人遇到同样的问题,请随时问我

【讨论】:

    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 2020-01-13
    • 2012-02-10
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    相关资源
    最近更新 更多