Как настроить vlc / ffplay / cheese (или другой) для автоматического циклического переключения между 3 моими веб-камерами? - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть 3 веб-камеры, которые регистрируются в Ubuntu 18.04 как / dev / video0, / dev / video1 и / dev / video2.Все три отображаются нормально в сыре и ffplay (но не vlc по некоторым причинам ... не важно для этого вопроса).

Я хочу открыть окно просмотра и автоматически переключать изображение с устройства 0 на устройство 1 на устройство 2 и обратно на 0 каждые X секунд без закрытия или изменения размера окна.

Я думаю, что окончательное решение придет из создания фальшивого видеоустройства (скажем, / dev / video3), просмотра его с помощью программы и использования ffmpeg или других сценариев командной строки для изменения потока / dev /VIDEO3.(v4l2loopback казался многообещающим)

К сожалению, я потратил несколько часов на это и ничего не получил.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 26 декабря 2018

Предполагая, что все 3 клипа имеют одинаковые свойства, основной синтаксис:

ffplay -f lavfi -i movie=filename="/dev/video0":f=v4l2,setpts=PTS-STARTPTS[v1];movie=filename="/dev/video1":f=v4l2,setpts=PTS-STARTPTS[v2];movie=filename="/dev/video2":f=v4l2,setpts=PTS-STARTPTS[v3];[v2][v3]overlay=enable='between(mod(t,15),10,15)'[v23];[v1][v23]overlay=enable='between(mod(t,15),5,15)'

Это покажет 5 секунд видео0, затем 5 секунд видео1 и 5 секунд видео2.

Редактировать с помощьюОП: Используя это предложение, я смог заставить это работать для 4 камер.

ffplay -f lavfi "movie=/dev/video0:f=video4linux2, setpts=PTS-STARTPTS [zero];movie=/dev/video1:f=video4linux2, setpts=PTS-STARTPTS [one];movie=/dev/video2:f=video4linux2, setpts=PTS-STARTPTS [two];movie=/dev/video3:f=video4linux2, setpts=PTS-STARTPTS [three];[one][zero]overlay=enable='between(mod(t,20),5,10)'[conn1];[conn1][two]overlay=enable='between(mod(t,20),10,15)'[conn2];[conn2][three]overlay=enable='between(mod(t,20),15,20)'[out]"

Он определяет 4 входа для камер, а затем делает 3 сегмента видео.Первый сегмент видео занимает кулачки 0 и 1 и накладывает 1 поверх 0 (но только на секунды 5-10).Второй сегмент накладывает кулачок 2 на поток кулачков 0 + 1 (но только на секунды 10-15).Третий сегмент накладывает кулачок 3 на объединенный поток кулачков 0 + 1 + 2 (но только на секунды 15-20).Каждый поток отображается только во время его "поворота" в цикле (опять же, кратном 0-5, 5-10, 10-15, 15-20), управляемым командами наложения и магией между модулями +, предложенной Гьяном.

...