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

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

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

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

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

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

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

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

 

Из плюшек:

  • многопоточность (которая, сука, выжирает всё, что может: по потоку на канал камеры и по потоку на клиента),
  • независимость от сторонних библиотек (просто лень искать было подходящие 😀 )
  • говнокодность (писался на скорую руку, архитектура кастовалась походу раскуривания протоколов RTSP, RTP, SDP )
  • после сборки доработать напильником ( тестировал только на камерах проекта (китайских no-name) и собственных клиентах )
  • выкладываю  как есть  и обновляться будет лишь при возникновении багов в основном проекте т.к. всем — не угодишь и смотри предыдущий пункт =)