![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чем разделить видеопоток? [D7, WinXP]
ABolnykh © (2009-10-06 15:25:00)Здравствуйте, уважаемые Мастера!
Кто-нибудь может подсказать направление решения следующей задачи?
Имеется сетевая видеокамера со встроенным web-сервером.
Когда к видеокамере подключается клиент, она начинает транслировать на его IP свой видеопоток.
Когда к камере подключается второй клиент, она начинает транслировать свой видеопоток (тот же самый) и на его IP тоже.
Когда к камере подключается десятый клиент, суммарное количество идентичных видеопотоков становится равно десяти.
А если таких камер в сети - десятка полтора... Затык сети очевиден.
Стоит задача: разработать некоторый дивайс (компьютер с программой с неким компонентом), в котором между видеокамерой и этим компонентом существовал бы один видеопоток, а уже этот компонент рассылал бы этот видеопоток всем подключившимся клиентам.
Видеокамеры находятся в одной сети, клиенты - в другой.
Прочитав "Глубины Indy", я, по простоте душевной, в качестве искомого компонента выбрал TIdMappedPort, посчитав, что на каждое подключение он, по умолчанию, самостоятельно создаст отдельный поток (Thread), что и требуется.
Каково же было моё удивление, когда, написав пробный кусок программы и подключив через TIdMappedPort к камере трёх клиентов, а потом запросив лог видеокамеры, я обнаружил, что к камере подключены ТРИ клиента, а не один, как я ожидал. То есть, TIdMappedPort просто смаппировал обращённые к нему запросы к адресу камеры, а потоки же (Threads) если и создал для каждого подключения, то потоки обработки кода, а не видеопотоки. То есть, выбранный мною подход оказался неверным.
Полазав как следует по Интернету в поисках ответа на вопрос, как же всё-таки люди решают подобную проблему, ничего не нашёл. :-( А судя по тому, что "видеонаблюдательные" программы сейчас плодятся, как грибы, проблема должна иметь простое или несложное решение.
Может быть, кто-нибудь сталкивался с подобной задачей и может посоветовать если не готовый компонент, то хотя бы направление, в котором следует копать. Буду благодарен за любые наводящие мысли и советы.
Пишу на Delphi 7, Indy 9.
DVM (2009-10-08 11:17:00) [41]
> ABolnykh © (08.10.09 09:06) [6]
> К тому же, вряд ли Вам известны все подробности техзадания
Пока из того, что ты написал, все 1 в 1. Я просто специализируюсь на IP камерах и сетевом видео, поэтому могу предположить, что тебе может понадобится.
> В дальнейшем, на подобные предложения реагировать не буду,
> уж не обессудьте.
Исходные тексты, я к сожалению, выслать не могу, не смотря на то что они есть. Но если возникнут вопросы - обращайся.
ABolnykh (2009-10-08 09:06:00) [42]
> У меня есть программа которая тебе требуется, но она платная.
Спасибо за предложение, но мне дано задание написать программу, а не купить готовую. :-) :-) :-)
К тому же, вряд ли Вам известны все подробности техзадания, так что, вполне вероятно, что это окажется и не совсем то, что мне требуется.
В дальнейшем, на подобные предложения реагировать не буду, уж не обессудьте.
DVM (2009-10-07 16:37:00) [43]
> ABolnykh © (06.10.09 15:25)
У меня есть программа которая тебе требуется, но она платная.
Из компонентов интди тебе скорее понадобятся TIdTCPClient (или TIdHTTPClient) и TidHTTPServer.
ABolnykh (2009-10-07 13:20:00) [44]Вот это и нужно было добавить. :-)
И хотя я сам уже почти вышел на эти компоненты, перелопатив кучу форумов, за подсказку СПАСИБО.
Нелёгкое это дело - ходить в гости...
CrytoGen (2009-10-07 12:57:00) [45]TIdIPMCastClient
TIdIPMCastServer
больше даже не знаю чего вам добавить.
ABolnykh (2009-10-07 10:50:00) [46]За слово "Multicast" спасибо. И хотя в "Глубинах Indy" оно упоминается всего пару раз, благодаря Интернету, я ознакомился с этой стороной жизни.
А ещё что-нибудь наводящее, "поближе к телу"?
CrytoGen (2009-10-06 15:28:00) [47]По видимому вы плохо прочитали "Глубины Indy".
А вообще для таких случаев обычно используют Mutlicast пакеты. В инди соответсвующие компоненты имеются.
Дерзайте