Поиск по сайту

    Мои услуги на Kwork

Запись видео с камеры по 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!

Добавить комментарий

Sidebar



Яндекс.Метрика Рейтинг@Mail.ru