freebsd 14.1 ffmpeg rtmp сервер

Ситуация: ffmpeg при трансляции rtsp потока с камеры постоянно рвется связь, cron скрипт  заново начинает, но аудопоток все равно заметно  — каждый раз сначала начинается, получаются промежутки.
Задача: транслировать ровный поток(без сбоев вызванных прерываниями на камерах) в сеть с помощью rtmp-сервера. И уже этот поток дальше транслировать в телеграмм.

Дано jail 14.1. Вводная в pkg отсутствует ffmpeg, но есть в портах(с 14ой версии порты отключены во фре).

Решение:

  1. https://docs.freebsd.org/en/books/handbook/ports/#ports-using
    поставить git порты, ньюанс — /usr/ports/ — только для чтения, клонировал в любую пустую папку, там нашел ffmpeg и из нее запустил «make install clean BATCH=yes»(установил ffmpeg)
  2. https://dondub.com/2024/02/stek-angie-php-mariadb-postgresql-na-freebsd-14/
    установить Angie(форк nginx)
    добавить модуль rtmp в конфигурацию
  3. https://www.dmosk.ru/instruktions.php?object=nginx-rtmp
    добавить запись о rtmp-сервере в конфигурацию

 

2. Установка Angie

В первую очередь нам необходимо установить curl

# pkg install curl

Затем создаём две директории: /usr/local/etc/pkg/angie/ и /usr/local/etc/pkg/repos/

# mkdir -p /usr/local/etc/pkg/angie/ /usr/local/etc/pkg/repos/

Далее конфигурируем репозиторий. Для этого создаём файл /usr/local/etc/pkg/repos/angie.conf

# touch /usr/local/etc/pkg/repos/angie.conf

открываем его

# vi /usr/local/etc/pkg/repos/angie.conf

и в нём пропишем:

angie: {
url: «https://download.angie.software/angie/freebsd/${VERSION_MAJOR}/${ARCH}»,
signature_type: «pubkey»,
pubkey: «/usr/local/etc/pkg/angie/angie-signing.rsa»,
enabled: yes
}

а также добавим сертификат

# curl -o /usr/local/etc/pkg/angie/angie-signing.rsa https://angie.software/keys/angie-signing.rsa

После этого обновляем список пакетов

# pkg update

и устанавливаем веб-сервер Angie

# pkg install angie

а также несколько модулей к нему

# pkg install angie-module-image-filter angie-module-perl angie-module-xslt angie-module-upload angie-module-zip

Для автозагрузки в файле /etc/rc.conf пропишем такую строчку:

angie_enable=»YES»

и запустим службу angie

# service angie start

Теперь на другой машине в сети открываем браузер и в адресной строке пропишем http://IP-адрес-сервера/ и увидим экран приветствия Angie. Он будет выглядеть примерно также, как у nginx.

 

3. RTMP сервер прописать

rtmp {
live on;
dash on;
server {
listen 1935;
application cams {
dash_path /home/user/cams;
}
exec_static ffmpeg -i rtsp://логин:пароль@192.168.3.132/onvif1 -c:v libx264 -profile:v baseline -c:a libfaac -ar 44100 -f flv rtmp://127.0.0.1/cams/stream132;
}
}

 

Довольны?
[Оценок: 0 средняя: 0]