Камера
Home Qt Сервер-ретранслятор для IP H264 камер.

Сервер-ретранслятор для IP H264 камер.

by Pavelk
Published: Last Updated on Камера

Приветствую!

В одном проекте возникла необходимость получать видео с IP камеры, вещающей в H264 формате и всё было хорошо, пока клиентов, подключённых к камере, было раз-два да обчёлся.

Но пользователей проекта становилось всё больше и камера просто не выдерживала по 5-6 клиентов и начинала адцки лагать т.к. сеть у неё всего 10 мб и производительность около нуля.

Было решено найти софт сервера-ретранслятора, т.к. канал от сервера до клиентов достаточно толстый, а большую часть времени он просто курит бамбук,

но поиски готового софта, который бы позволил просто  клонировать один поток с камеры на всех желающих клиентов, не увенчались успехом.

Чтож, пришлось написать свой велосипед.

Ссылочка на ГитХаб.

Написан на Qt 6.3 без использования сторонних библиотек и других зависимостей.

Возможности:

  • Поддержка h.264 и h.265 содержимого (только видео)
  • Возможность дополнительной фрагментации кадров (Что бы кадр влезал в MTU)
  • Поддержка авторизации на камерах None/Basic/Digest
  • Поддержка авторизации на сервере Basic
  • Многопоточность (по потоку на канал камеры и на клиента)
  • Независимость от сторонних библиотек

Планы

  • Сделать Digest авторизацию на сервере
  • Написат подробнее про настройки и т.д.
  • Пример плагина

9 комментариев

Артем 31 марта 2021 - 12:06

Подскажите, пожалуйста, каким способом можно его использовать, чтобы на сайт rtsp поток передавать? И непонятна установка, как все должно проходить. Спасибо.

Reply
Pavelk 8 апреля 2021 - 22:32

Здравствуйте.
Сервер просто позволяет обслуживать гораздо больше подключений, чем это могла бы сделать сама камера при прямом подключении к ней.
Для установки нужно сначала скомпилировать сервер в QtCreator, потом исполняемый файл можно запустить в фоновом режиме и в файле настроек прописать подключения к камерам.

Reply
Алексей 13 марта 2019 - 10:09

Добрый день. Подскажите, а как можно передать адрес потока так же через GET параметр?
Пример

rtsp://127.0.0.1:2666/trackID=1?user=admin&pass=178900 &url=http://mysite.ru/videourl/548.m3u8

Reply
Pavelk 31 марта 2019 - 17:09

Добрый день. Откуда брать данные настраивается в конфигурационном файле.

Reply
Danis 24 ноября 2017 - 14:47

А не подскажите как можно управлять камерой(фокус, поворот)?
имеется ip камера beward. C захватом разобрался, а про управление ничего не удалось найти…

Reply
Pavelk 22 декабря 2017 - 5:26

Гуглить на тему onvif.

Reply
Danis 24 ноября 2017 - 14:44

в каталоге с исходниками из командной строки выполнить: qmake -project
В созданном файле проекта Cameron-master.pro добавить строчку: QT += widgets network

Reply
debager 15 марта 2017 - 19:48

Можно в проект добавлять .PRO файл у меня не собралось я начинающий .

In file included from settings/settings.h:8:0,
from appcore.h:6,
from appcore.cpp:1:
./Server/server.h:5:22: fatal error: QTcpServer: Нет такого файла или каталога
compilation terminated.
Makefile:378: ошибка выполнения рецепта для цели «appcore.o»
make: *** [appcore.o] Ошибка 1

Reply
Pavelk 22 декабря 2017 - 5:25

Обновил репозиторий, теперь есть.

Reply

Leave a Comment

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

You may also like