Метки
amd bittorrent bug centos debian enlightenment fedora fedora 8 fedora 9 fedora 10 fedora 11 fedora 12 fedora 13 fedora 15 fedora 16 FedoraMD fglrx firefox flash player gnome google intel interview java kde kernel linux livecd migrate moldova nvidia openoffice OpenStreetMap opera Orange ovirt radeon red hat rpmfusion Sandel skype video virtualisation vmware wine
Видео регистратор своими руками
2014-05-12 11:41 | Автор: Oleg | Filed under: Oleg
Понадобилось писать по времени видео с вебкамеры. Софта много, но как-то жрало ресурсы и было не совсем удобно. Были программы, которые писали по детектору движения, но и они не устраивали, да еще и большинство за деньги, надо было искать лекарство от жадности.
Пару недель, ковырял ffmpeg, и тогда заметил, что он умеет работать с источником напрямую. Задача ясна. Погуглив, нашел пару вариантов решения. Ось оказалась 7-ка, значит источник будем брать через dshow. Можно было брать через vfwcap, как рекомендует ffmpeg, но тогда не будет звука 🙁
Источник: HP Webcam HD-4110.
Сначала надо определить какие параметры есть у камеры. Для этого необходимо найти название камеры. Все делаем по инструкции.
Выбираем видео кодек, аудио кодек и контейнер. В моем случае камера поддерживает аппаратный MJPEG, но слишком большой размер файла получается, сжатие то по кадровое, выбор пал на mpeg4, по причине минимального потребления вычислительных ресурсов. Разрешение 1280x720 7.5fps, битрейт был выбран с учетом размера файла 800kbps, аудио кодек aac c битрейтом 32kbps и 44kHz.
Нужно организовать нарезку файлов. Чтобы не громоздить большими файлами решил нарезать файлы по 15мин.
Чтобы это все запускалось по расписанию ставлю nnCron LITE.
Строки в кронтабе:
*/15 8-19 * * 1-6 ffmpeg.exe -y -f dshow -i video="HP Webcam HD-4110":
audio="Microphone (2- HP Webcam HD-411" -s 1280x720 -r 7.5 -c:v mpeg4 -b:v 800k
-c:a libvo_aacenc -b:a 32k -ac 1 -ar 44100 -t 898 "\VIDEO_REC\%YYYY%-%MM%-%DD% %hh%-%mm%.mp4"
nnCron LITE позволяет использовать свои сокрашения типа %YYYY%.
HDD не резиновый, поэтому организуем ротацию на неделю:
0 7 * * 1-6 forfiles /P \VIDEO_REC\ /S /M *.* /D 7 /C "cmd /c del /F /Q @path"
nnCron LITE позволяет запускать приложения с приоритетами, а так же скрывать консоль.
Результатом вполне доволен. Архив на неделю имеет размер в 30Гб.
Метки: cron, dshow, ffmpeg, MJPEG, mpeg4, nnCron LITE, vfwcap, video record