LINUX.ORG.RU

Захват изображения с камеры двумя приложениями одновременно

 , streamer,


0

2

Здравствуйте, решил сделать домашнее видеонаблюдение. Поставил motion (только регистрация движения), screamer (пакет xawtv). Настроил motion на выполнение скрипта при обнаружении движения, скрипт записывает видео с помощью streamer (та же камера).

Как и стоило ожидать, streamer жалуется на то, что устройство «busy».

Собственно вопрос: можно ли сделать одновременный захват видео с камеры сразу двум приложениям? Если такое невозможно технически, прошу объяснить почему, сам не понимаю хоть убейте.

Драйвер камеры v4l2, archlinux

screamer (пакет xawtv)

SCREAMER!

anonymous
()

можно ли сделать одновременный захват видео с камеры сразу двум приложениям?

Можно захватывать с помощью ffmpeg так чтобы он одновременно писал в файл и транслировал. А другим приложением уже можно получать трансляцию с ffmpeg. https://trac.ffmpeg.org/wiki/Creating multiple outputs#Duplicateoutputs

Аналогично можно с помощью VLC (конструкции вида --sout '#transcode{параметры}:duplicate{dst=standard{access=file,...}, dst=rtp{параметры…}}').

(Firestarter)

anonymous
()

Захватить с одного дескриптора (файла, /dev/video0) можно, если драйвер этого устройства поддерживает нескольких потребителей. В твоем случае драйвер не поддерживает это.

Но если очень нужно... Можно нагородить решение с драйвером виртуального устройства v4l2loopback. Я с ним не работал. Поэтому далее - чисто теоретически. Предположим это устройство умеет отдавать данные нескольким потребителям. Тогда:

#ls -1 /dev/video*
/dev/video0
#modprobe v4l2loopback
#ls -1 /dev/video*
/dev/video0
/dev/video1
ffmpeg -f v4l2 -i /dev/video0 -f v4l2 /dev/video1&
mplayer /dev/video1&
mplayer /dev/video1&
покажет два экземпляра плеера, берущих поток с одного устройства.

Если будешь это пробовать, с тебя рассказ, как все прошло.

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