Oleg > Видео регистратор своими руками 2

Видео регистратор своими руками 2

2016-03-01 10:03 | Автор: Oleg | Рубрика: Oleg

Давненько я писал о "Видео регистратор своими руками", прошло много времени и нашлось множество ошибок. Одна из них, при прекращении записи и запуска новой не успевал освобождаться интерфейс камеры и я терял фрагмент. Да и кодировка постоянно пожирала 25% процессорного ресурса, несмотря на то что у меня A8-5500.

Я решил заново переосмыслить и написать скриптик все тот же под WIN32. В связи с тем, что пространства для записи достаточно решил в этот раз не пережимать на ходу, а оставить MJPEG, который дает камера.

На момент написания скрипта использовал бинарник ffmpeg version N-78358-g674cc26.

По этапам:
1. Используем DirectShow
2. Отображение всех устройств: ffmpeg -list_devices true -f dshow -i dummy
3. В списке выбираем нужную видео камеру, в моем случае HP Webcam HD-4110
4. Вывод всех форматов камеры: ffmpeg -f dshow -list_options true -i video="HP Webcam HD-4110"
Я выбрал: [dshow @ 00000000004ab160] vcodec=mjpeg min s=1280x720 fps=5 max s=1280x720 fps=30
5. В третем пункте был вывод и звука, отображение форматов звука:
ffmpeg.exe -f dshow -list_options true -i video="Микрофон (3- HP Webcam HD-4110)"
Я выбрал: [dshow @ 00000000005eb1e0] min ch=1 bits=8 rate= 11025 max ch=2 bits=16 rate=44100
6. Проверяем работоспособность:
ffmpeg.exe -f dshow -video_size 1280x720 -framerate 8 -sample_rate 44100 -channels 1 -sample_size 16 \
-vcodec mjpeg -i video="HP Webcam HD-4110":audio="Микрофон­ (3- HP Webcam HD-4110)" -c:v copy -c:a libmp3lame -b:a 128k -r 8 -t 10 -y 1.mkv

Должно записать видео в 10 секунд.

Теперь сам скрипт.
Задача:
1. Каждый файл по 30 минут.
2. Запись осуществлялась с 8 утра до 19 вечера.
3. Ротация - запись сохранялась 5 дней.

GOTO TimeCheck

:TimeCheck
forfiles /P "." /S /M *.mkv /D -5 /C "cmd /c del @path"
for /f "tokens=1,2,3 delims=: " %%a in ("%time%") do set hour=%%a&set minute=%%b&set sec=%%c
if %hour% GEQ 8 (GOTO Loop) else (GOTO Sleep)
Exit /B

:Sleep
ping 127.0.0.1 -n 1800 -w 1000 > NUL
for /f "tokens=1,2,3 delims=: " %%a in ("%time%") do set hour=%%a&set minute=%%b&set sec=%%c
if %hour% LEQ 18 (GOTO TimeCheck) else (GOTO Sleep)
Exit /B

:Loop
for /f "tokens=1,2,3 delims=: " %%a in ("%time%") do set hour=%%a&set minute=%%b&set sec=%%c
for /f "tokens=1,2,3 delims=. " %%a in ("%date%") do set day=%%a&set month=%%b&set year=%%c

ffmpeg.exe -f dshow -video_size 1280x720 -framerate 8 -sample_rate 44100 -channels 1 -sample_size 16 \
-vcodec mjpeg -i video="HP Webcam HD-4110":audio="Микрофон­ (3- HP Webcam HD-4110)" -c:v copy \
-c:a libmp3lame -b:a 128k -r 8 -t 1800 -y %year%.%month%.%day%-%hour%.%minute%.%sec%.mkv
if %hour% LEQ 18 (GOTO TimeCheck) else (GOTO Sleep)
Exit /B

Если нужно, чтобы окно консоли было скрыто, можно воспользоваться проектом Create Hidden Process

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Метки: , , , , , , , , , ,

Комментариев нет »


Комментариев нет.

Оставить комментарий