LINUX.ORG.RU

Одновременное использование камеры несколькими программами

 , , , ,


0

4

У меня первая программа захватыввает камеру через gst/v4l2src: devive=/dev/video0, а другая вываливается с ошибкой:
"Устройство занято".

Чо за детсад?! Как в линуксе разрешить нескольким прогаммам юзать камеру? Или это в принципе невозможно? Почему?

★★★★★

Вот более подробно как ругается:

$ gst-launch v4l2src ! xvimagesink
Установка конвейера в состояние PAUSED...
ОШИБКА: Конвейер не хочет становиться на паузу.
ПРЕДУПРЕЖДЕНИЕ: от элемента /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Устройство видео-захвата не приняло новый параметр кадровой частоты.
Дополнительная отладочная информация:
v4l2src_calls.c(262): gst_v4l2src_set_capture (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: Устройство или ресурс занято
ОШИБКА: из элемента /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not get buffers from device '/dev/video0'.
Дополнительная отладочная информация:
gstv4l2bufferpool.c(406): gst_v4l2_buffer_pool_new (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
error requesting 2 buffers: Устройство или ресурс занято
Установка конвейера в состояние NULL...
Освобождение конвейера...

Novator ★★★★★ ()
Ответ на: комментарий от rezedent12

Наверняка. Как минимум внутри приложения. И я думаю это потом можно вывести в какой-нить /dev/video2. Но вот чтобы такое из коробки...

true_admin ★★★★★ ()

Можно же просто с помощью, например, vlc захватывать камеру и транслировать поток по rtsp, который в свою очередь можно уже одновременно несколькими программами получать.

firestarter ★★★☆ ()
Последнее исправление: firestarter (всего исправлений: 1)

Чо за детсад?!

Вот именно. Камере нужно команды посылать, оборудование всё-таки. Представь что получится, если десять противоречивых команд пройдёт?

Лови поток одной командой и раздавай его дальше программно.

ziemin ★★ ()

насколько я помню из документации V4L2, то нельзя. Максимум одно приложение может захватывать видеопоток, а другое открывать файл видеоустройства и крутить настройки, больше одного приложения захватывать видеопоток не может

Harald ★★★★★ ()
Ответ на: комментарий от true_admin

можно вывести в какой-нить /dev/video2

который тоже будет читаться одним устройством :)

Тсс, главное Поттерингу идею PulseVideo не говорить )))

Harald ★★★★★ ()
Ответ на: комментарий от Harald

который тоже будет читаться одним устройством :)

ну, тогда на всякий случай открыть ещё и /dev/video3

главное Поттерингу идею PulseVideo не говорить

Блиин, а это мысль! Я давно хотел прославиться, только не знал как. Но тепееерь... теперь меня на улицах узнавать будут, главное научиться быстро бегать. Зато работу в rh предложат, что очень хорошо.

true_admin ★★★★★ ()
Ответ на: комментарий от yaba

Это всё отдельные приколюхи, хотел штатными средствами обойтись.
Ладно, всем спасибо, придется смириться. Не критично.

Novator ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.