Запись видео с камеры по rtsp протоколу, ffmpeg, freebsd
Имея IP-камеры, можно настроить настраивать сбор и запись видео не на самих камерах, а непосредственно с сервера видеозаписей, централизовано.
В мое случае был сервер с FreeBSD. Для этого нам понадобиться установить дополнительно пакет ffmpeg:
root@videserv:/usr/home/disnetern # pkg install ffmpeg
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 30 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
libv4l: 1.6.3_2
jpeg-turbo: 1.4.2
py27-iso8601: 0.1.11
trousers: 0.3.13_1
tpm-emulator: 0.7.4_1
libva: 1.7.2
libXfixes: 5.0.3
fixesproto: 5.0
libdrm: 2.4.66,1
libpciaccess: 0.13.4
pciids: 20160621
libGL: 11.2.2
dri2proto: 2.8
libXdamage: 1.1.4_3
damageproto: 1.2.1
libdevq: 0.0.2_1
libXxf86vm: 1.1.4_1
xf86vidmodeproto: 2.3.1
libxshmfence: 1.2
libglapi: 11.2.2
libXvMC: 1.0.10
libXv: 1.0.11,1
videoproto: 2.3.2
libvdpau: 1.1.1
Installed packages to be UPGRADED:
ffmpeg: 2.8.5,1 -> 2.8.8_5,1
gnutls: 3.3.17.1 -> 3.4.15
nettle: 2.7.1 -> 3.2
samba43: 4.3.3 -> 4.3.11_1
libvpx: 1.5.0 -> 1.6.0
libx264: 0.144.2533_1 -> 0.148.2708
Number of packages to be installed: 24
Number of packages to be upgraded: 6
The process will require 14 MiB more space.
39 MiB to be downloaded.
Proceed with this action? [y/N]:
Запись начинается одной командой, но с несколькими параметров. Полный список можно найти в man ffmpeg
Я кинул эту команду в скрипт, где можно расписать все параметры в удобном для чтения вида:
#!/usr/local/bin/bash DUR="600" // Выбираем время записи одного ролика. В моем случае я взял 10 мин. CTIME=`date +%Y-%m-%d_%H:%M` // Формирование текущего времени, для имени файла. PATH="/mnt/video/cam1/$CTIME.avi" // Адрес хранения видео BIT="1000k" // битрейт RSL="640x480" //разрешение FPS="10" // Кадров в секунду RTSP="rtsp://user:pass@10.20.30.40:554/RVi/1/1" // Собственно ссылка rtsp потока, которую можно скопировать с самой камеры, с логином, паролем и ip камеры. /usr/local/bin/ffmpeg -t $DUR -i $RTSP -y -r $FPS -s $RSL -b $BIT -vcodec mpeg4 -f avi $PATH || echo "FAIL"
После этого скрипт прописываем в cron время указываем то, когда нам нужно записывать видео, кратное длительности записи ролика. В моем случае это $DUR=10 мин. И записывать этот скрипт будет каждые Пн-Сб с 9:00 до 18:00
*/10 9-18 * * 1-6 /root/scripts/cam_1.sh > /dev/null 2>&1




Comments
So empty here ... leave a comment!