Как вывести изображение/поток с камеры через серый IP?
Хочу вывести видеопоток с камеры на вебсайт. Камеры пока нет, буду покупать под задачу (склоняюсь к Dahua).
К сути задачи:
За городом имеется вейкпарк с 3 реверсивными лебедками. Я занимаюсь вопросами электрики, элеткроники, пишу небольшую CMS для парка.
В парке установлены:
- простой китайский самый дешевый МиниПК в качестве сервера, на котром под Debian 12 крутится NGINX+PHP+SQL для самописной CMS управления вейкпарком (электронная очередь, браслетики, магазин, прокат, продажи, учет сотрудников и т.д.)
- 4G роутер Zyxel Runner 4G, N300 [kn-2211].
- также есть VPS-сервер в интернете для организация взаимодействия локального сервера через API с телеграмом (очередь, привязка, отправка асинхронно сообщений и т.д.)
Симка мегафон, тариф для роутеров. Серый IP. Белый для данного тарифа и роутеров не дают даже за отдельную плату.
Пробовал подключить камеру и настроить к ней доступ через DDNS и встроенный keenetic.link - ничего у меня не вышло. Порт RTSP в keenetic.link закрыт, а DDNS вообще не удалось запустить, я так понимаю из-за серого IP. Но возможно моих знаний недостаточно. Хотя в интернете читал немало информации по данному вопросу.
Настроил удаленный доступ только через VPN SSTP.
Но т.к. имеется локальный миниПК с Linux осью и отдельный VPS сервак в интернете, вот думаю может можно как-то организовать видеопоток через какие-то библиотеки или приложения? Я к сожалению полный профан в деле видеонаблюдения и сетевых взаимодействий. Максимум могу подключить камеру и пробросить порты для DDNS. Больше не приходилось сталкиваться.
Если настройки безопасности проведены, то в качестве простого решения предлагаю FRP. На VPS запускается сервер, на миниПК - клиент и пробрасываются необходимые порты. Работает как обратный прокси. Инструкция есть на GitHub. Можно также использовать Ngrok Self-Hosting.
Если простого проброса портов недостаточно, и нужен прозрачный доступ к камере, то выход только один - VPN. Сервером будет VPS, клиентом будет роутер (ограниченный список протоколов) или миниПК с Linux осью. Настраивается маршрутизация во внутреннюю сеть.
OvenMediaEngine умеет работать с камерами в режиме Push по некоторым протоколам. https://github.com/AirenSoft/OvenMediaEngine
Ставите его на VPS, камеры присылают на него поток сами, он его вам выдает на выходе в нужном формате.
Если камеры не умеют в push, то настроить VPN между Keenetic и VPS.
Если камеры умеют в push через например webrtc, то они могут и на сайт отправить поток самостоятельно.