在使用GStreamer捕获图像(4个多线程摄像机)后,为什么必须重置USB摄像机

时间:2018-10-10 12:38:17

标签: python multithreading gstreamer

我有一个Python脚本,该脚本可识别连接到我的Ubuntu 18.04计算机的四个13MP USB 3.0摄像机,并在单个线程中为每个启动以下GStreamer命令(例如,此处显示的是video0):

gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! image/jpeg ! filesink location=/root/test0.jpg

每个摄像机的参数都是通过v4l2-ctl设置的:

v4l2-ctl -d /dev/video0 --set-fmt-video=width=4208,height=3120,pixelformat=MJPG

首次启动时效果很好。我得到了四个不错的13MP映像,并且CLI没有输出错误。但是,如果我再次运行此命令,我的图像将开始变得混乱。这是一个示例:

Scrambled Image

我可以通过重置USB设备来解决此问题。 (我通过python中的fnctl完成此操作,但其功能与重新插入设备相同。)

任何人都可以解释我如何修改GStreamer命令以避免这种行为吗?

1 个答案:

答案 0 :(得分:1)

尝试在您的gst-launch命令中添加-ev