Запись видео с камер: различия между версиями

Материал из IT в школе
Перейти к навигацииПерейти к поиску
нет описания правки
Строка 19: Строка 19:
#url камеры
#url камеры
CAMURL="rtsp://subaccount:Subxxxxx@10.xx.xx.xx"
CAMURL="rtsp://subaccount:Subxxxxx@10.xx.xx.xx"
#укажите номер кабинета
CAB="302"
#формат даты можно установить по вкусу прочитав man date
DATE=`date +%F-%H-%M`
#файл куда писать. например в самба шару
#файл куда писать. например в самба шару
FILE="/home/share/FILE1%02d.mp4"
FILE="/home/share/${DATE}-${CAB}-%02d.mp4"
#длительность записи в секундах
#длительность записи в секундах
LEN=4000
LEN=4000
#длительность одного файла (программа нарезает запись как Вам надо)
SEGMENT=3600


ffmpeg -i ${CAMURL} -vcodec copy -acodec copy -map 0 -t ${LEN} -f segment -segment_time 3600 -segment_format mp4 ${FILE} >/dev/null 2>/dev/null &
ffmpeg -i ${CAMURL} -vcodec copy -acodec copy -map 0 -t ${LEN} -f segment -segment_time ${SEGMENT} -segment_format mp4 ${FILE} >/dev/null 2>/dev/null &
</syntaxhighlight>
</syntaxhighlight>
Пояснение: знак & в конце означает запустить программу и выйти в shell - то есть по сути сделать программу резидентной или демоном. НО! это работает долго  только если программа ничего не выводит (иначе при закрытии shell, когда некуда будет выводить, команда закроется). Чтобы этого не происходило, вывод перенаправлнен в /dev/null - то  есть в пустоту. Обратите внимание, Linux имеет два выводных потока - обычный, так называемый stdout и ошибок  stderr. И перенаправлять надо оба, что и сделано. Если есть желание почитать что выводит программа, можно перенаправить вывод в файл (только чтобы он был в каталоге, доступном для записи)  
Пояснение: знак & в конце означает запустить программу и выйти в shell - то есть по сути сделать программу резидентной или демоном. НО! это работает долго  только если программа ничего не выводит (иначе при закрытии shell, когда некуда будет выводить, команда закроется). Чтобы этого не происходило, вывод перенаправлнен в /dev/null - то  есть в пустоту. Обратите внимание, Linux имеет два выводных потока - обычный, так называемый stdout и ошибок  stderr. И перенаправлять надо оба, что и сделано. Если есть желание почитать что выводит программа, можно перенаправить вывод в файл (только чтобы он был в каталоге, доступном для записи)  

Навигация