LINUX.ORG.RU

motion - как записать короткий видеофайл каждый час, независимо от наличия движения?


0

3

motion открыл камеру /dev/video0 и пасёт на ней движения. Хочется каждые N минут записывать 30-секундный из льющегося из /dev/video0 потока, независимо от наличия движения и не прекращая задачу отслеживания движения. Внутри у motion ведь архитектура позволяет это сделать - он там умеет параллельно поток и в видеофайл писать и jpeg-и сохранять и в веб транслировать. Может я просто не вижу этой настройки или не в курсе про какой-то патч?

Параллельно открыть ту же камеру (ffmpeg, guvcview) из другого приложения не получается, облом на этапе выполнения некоторых ioctl (камера UVC). Про виртуальную loop-камеру слышал, не думаю, что поможет. Ибо ffmpeg при открытии камеры пытается изменить её настройки (яркость, резкость и проч.), что мне нежелательно, т.к. тонко подобранные настройки задаются вручную через v4l2-ctl из скрипта, запускаемого сразу после старта motion.

Или можно заставить ffmpeg параллельно открыть ту же камеру в каком-нибудь «мягком» режиме, без перенастройки?

может немножко подхакать motion, добавить туда какой-нить счётчик и сбрасывать его каждый раз при записи, если интервал превысил время, то начать запись

dimon555 ★★★★★
()

а может пойти от обратного и motion'у кормить файл после ffmpeg или vlc?

ktk ★★★★
()

а если поиграть с єтими параметрами?

# Интервал в секундах без обнаружения движения, который сигнализирует о прекращении записи
# Рекомендуемое значение 60 секунд (по умолчанию). Значение 0 разрешено и приводит к тому
# что все движения будут записываться в один файл
gap 60

# Максимальная длительность mpeg видео
# Когда время истекает – создается новый файл. (По умолчанию: 0 = неограничено)
max_mpeg_time 3600

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

Эти параметры не дадут эффекта. gap - это время между концом движения и прекращением записи, т.е. если движения не было, никакой записи не начнётся.

max_mpeg_time - это нарубание видеофайлов на куски.

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

а если gap выставить в максимальное значение, а вторым параметром задать требуемые 30 секунд?

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

Ну и будет у меня каждое зарегистрированное движение сохраняться в видеофайл, длиннее на 30 секунд, чем длится движение. А в штиль вообще ни одного файла не появится.

kiverattes ★☆
() автор топика

snapshot_filename

с помощью этой опции заставьте motion выкладывать jpeg-снэпшоты в нужное место с нужными именами файлов. «С нужными» - это такими, чтобы потом было удобно сделать выборку из этих файлов и скормить их mencoder'у по cron'у.

braindef
()
Ответ на: snapshot_filename от braindef

Как мне этой опцией задать запись набора кадров с частотой 20fps каждый час в течение 30 секунд?

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

20 fps - никак. Я не осознал задачу, видимо.

Я имел в виду, что снэпшот (опции snapshot_interval и snapshot_filename) откладывается *независимо* от моушн-триггера, что и требовалось. Однако, снэпшот-интервал задается целыми секундами и 20 кадров в сек не выйдет.

Те же jpeg'и, к-рые откладываются опцией jpeg_filename параллельно с выдачей видео-потока, дадут Вам набор кадров заданной fps, но они пишутся *только при срабатывании* моушн-триггера, как и весь видео-поток.

Что если попробовать
output_all on
и из нужных кадров делать 30-секундный ролик, а прочие - выбрасывать?

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