Страница rtsp-simple-server на github.
Лучший вариант - запуск через systemd одного инстанса для одного потока.
Далее привожу, как нужно изменить файл-пример конфига, который скачивается с исполняемым файлом (пояснения в скобках не добавлять! ):
paths:
main:
source: rtsp://...
all:
# Source of the stream. This can be:
(возможно понадобиться добавить …admin:Supervisor@…)
Пример:
[Unit]
Wants=network.target
[Service]
ExecStart=/usr/local/bin/rtsp-simple-server /home/pc1/proxy/rtsp-simple-server/rtsp-simple-server83.yml
Restart=always
RuntimeMaxSec=24h
[Install]
WantedBy=multi-user.target
В данном примере запускается инстанс из исполняемого файла по полному пути /usr/local/bin/rtsp-simple-server
, а конфиг по полному пути - /home/pc1/proxy/rtsp-simple-server/rtsp-simple-server83.yml
RuntimeMaxSec=24h - обязательный перезапуск через 24 часа
Называем как-нибудь типо rtsp-simple1.service
(.service - обязательная часть), кладем его в папку /etc/systemd/system/ и он становится доступен для запуска.
Подсказка: если назвать сервисы единообразно (к примеру,
rtsp-simple1.service
,rtsp-simple2.service
, …), то можно с несколькими из них делать одно и то же действие одновременно (к примеру,sudo systemctl start rtsp-simple*
)
Картинка с ним хуже, но этот способ удобнее для менеджмента нескольких инстансов.
Из подготовки конфига нужно только прописать путь до нативного потока камеры.
Пример docker-compose.yml:
version: '3'
services:
rtsp-simple-server51: (название внутри этого docker-compose.yml)
image: aler9/rtsp-simple-server (ПОСЛЕДНЯЯ ВЕРСИЯ docker-образа rtsp-simple-server'a)
environment:
- "RTSP_PROTOCOLS=tcp" (форсирование использования tcp)
container_name: rtsp-simple-server51 (название контейнера, который можно будет увидеть через docker ps)
ports:
- "7051:8554" (проброс порта: <хост:внутри_контейнера>)
volumes:
- ~/rtsp-simple-server/rtsp-simple-server51.yml:/rtsp-simple-server.yml (монтирование (перенос) конфига внутрь контейнера)
restart: always (всегда перезапускать)
rtsp-simple-server52:
image: aler9/rtsp-simple-server
environment:
- "RTSP_PROTOCOLS=tcp"
container_name: rtsp-simple-server52
ports:
- "7052:7052"
volumes:
- ~/rtsp-simple-server/rtsp-simple-server52.yml:/rtsp-simple-server.yml
restart: always