У меня есть сценарий python, который идентифицирует четыре 13-мегапиксельные камеры USB 3.0, подключенные к моей машине с Ubuntu 18.04, и запускает следующую команду 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.Однако, если я запустлю это снова, мои изображения начнут выглядеть зашифрованными.Вот пример:
Я могу решить эту проблему, перезагрузив USB-устройства.(Я делаю это через fnctl в python, но это функционально аналогично повторному подключению устройств.)
Кто-нибудь может объяснить, как я мог бы изменить свою команду GStreamer, чтобы избежать такого поведения?