【问题标题】:Using Python3 gstreamer1.0 with pylonsrc using basler camera and pylon5 gives error in the processing loop使用 Python3 gstreamer1.0 和 pylonsrc 使用 basler 相机和 pylon5 在处理循环中出现错误
【发布时间】:2019-12-20 01:01:42
【问题描述】:

我在 python3 中使用gstreamer1.0pylonsrc 元素从basler 相机捕获视频片段。

例如使用这个管道:

[GST_DEBUG=pylonsrc:5 gst-launch-1.0 pylonsrc userid="testCam" imageformat=rgb8 lightsource="off" autoexposure="continuous" autowhitebalance="continuous" autogain="continuous" limitbandwidth="false" flipx= “假”翻转=“假”!视频转换! xvimagesink]

有时会出现处理循环中的错误并停止录制。

我注意到的是,我运行了许多其他消耗资源的进程,例如,如果我打开 chromium,则会出现此错误。 另一个例子是,当我处理来自以太网和其他协议的大量数据时,一些线程开始处理这些数据,出现错误并且相机停止。

我尝试了不同的管道,当我使用大量系统资源时都会出现这个问题。

有关错误的详细信息:

[将管道设置为 PLAYING ...
0:00:00.586949696 22636 0x50fb70 DEBUG pylonsrc gstpylonsrc.c:921:gst_pylonsrc_set_caps:设置上限为视频/x-raw,格式=(字符串)RGB,宽度=(整数)1280,高度=(整数)720,帧率=(分数)0/1
新时钟:GstSystemClock
0:00:13.221158272 22636 0x50fb70 错误 pylonsrc gstpylonsrc.c:2100:gst_pylonsrc_create:图像处理循环出错。
错误:来自元素 /GstPipeline:pipeline0/GstPylonsrc:pylonsrc0:内部数据流错误。

附加调试信息:

gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstPylonsrc:pylonsrc0: 流式传输任务暂停,原因错误 (-5) 执行在 0:00:12.634486400 之后结束 将管道设置为 PAUSED ... ]

【问题讨论】:

    标签: python gstreamer


    【解决方案1】:

    我认为问题是由 CPU 中断引起的。

    整个相机应用程序在 Nvidia TX2 和 Ubuntu 16.04LTS 上运行。

    Nvidia CAN 控制器在主 CPU 上创建中断,这会干扰在相同 CPU 内核上运行中断的相机应用程序。

    我还看到 6 个内核中有 2 个内核(丹佛处理器)不工作。

    我已激活所有内核并在这些新激活的内核上移动(关联)can0 和 can1 中断。

    现在我不会丢失帧,因此处理循环中不再出现错误。

    但我建议修改 gstpylonsrc.c 第 2099 行中的文件并设置 else 条件,如果没有抓取任何帧,则保留最后一帧。 这将避免停止管道。

    详情: {https://github.com/zingmars/gst-pylonsrc/issues/5}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多