Почему я должен перезагружать свои USB-камеры после захвата изображений с помощью GStreamer (4 многопоточных камеры) - PullRequest
0 голосов
/ 10 октября 2018

У меня есть сценарий 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.Однако, если я запустлю это снова, мои изображения начнут выглядеть зашифрованными.Вот пример:

Scrambled Image

Я могу решить эту проблему, перезагрузив USB-устройства.(Я делаю это через fnctl в python, но это функционально аналогично повторному подключению устройств.)

Кто-нибудь может объяснить, как я мог бы изменить свою команду GStreamer, чтобы избежать такого поведения?

1 Ответ

0 голосов
/ 12 октября 2018

попробуйте добавить -ev к вашей команде gst-launch

...