|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.06.2015, 11:51 | #1 |
Пользователь
Регистрация: 05.05.2015
Сообщений: 55
|
Передавать звук по udp или нет?
Здравствуйте.
Есть задача организовать звуковое оповещение по сети "Многоточка-Точки" (все точки либо выбранные точки). С линейного входа звуковой карты компа-многоточки через радиомодемы звук должен передаваться на выходы звуковых карт компов-точек (все компы, получается, будут в одной сети). За основу я взял статью из журнала "Программист" Передача звука по сети. Прототип VoIP телефона Уколов А.В. http://www.programmersclub.ru/%D0%9F...5%D0%BB%D0%B5/ Но возник вопрос: звук передается по UDP-протоколу. И вроде как советуют его передавать по UDP. Но UDP-протокол не гарантирует доставку. А если данная система оповещения будет использоваться там, где жизненно важно, чтобы звуковое сообщение достигало адресата, то можно ли использовать UDP ? Если нет, то подскажите, пожалуйста, какие средства использовать. |
30.06.2015, 20:14 | #2 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
По TCP тоже нормально звук передавать, у вас по локальной сети или через интернет нужно делать? Работу со звуком можно использовать ACMWave там можно сжатие сделать GSM ну также можно и Bass в формате PCM передавать звук, на WinSock если делать то вообще нет задержки в TCP, желательно чтобы канал был не менее 1мб. И сколько ретрансляторов по сети должно быть? А в рации можно активировать функцию VOX, тогда не нужно вам выходы звуковой карты контролировать, в радиомодемах тоже что то должно быть. Эта функция контролирует звук, когда есть звуковой сигнал то рация или радиомодем переходит в режим передачи, если тишина то прием.
Последний раз редактировалось Aliens_wolfs; 30.06.2015 в 20:52. |
30.06.2015, 21:00 | #3 | |
Пользователь
Регистрация: 05.05.2015
Сообщений: 55
|
Цитата:
Ко входу звуковой карты компа-многоточки подключается пульт. На пульте микрофон. Вот звук с этого микрофона нужно передать компам-точкам. То есть речь в режиме реального времени. Меня просветили, что это называется диспетчерской связью, а не системой оповещения. Прошу прощения за ошибку. Радиомодемы только предоставляют сеть между собой. То есть сеть локальная. При запуске моего ПО сеть уже есть. И ее настройка - не моя задача(пока, во всяком случае...). Просто особенность, что сеть беспроводная. Вот хотел узнать, какие потери и проблемы могут быть при использовании того или иного протокола, тех или иных средств, и выбрать оптимальные. |
|
30.06.2015, 21:02 | #4 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
если в сеть не менее 1мб на точку то TCP нормально справиться даже в PCM формате Для теста сейчас кину пример две проги на WinSoket клиент другая сервер, звук на Bass в настройках звука настрой на нужный вход либо линейный либо микрофон, запусти EXE и в клиенте и в сервере, настрой пока на одном компе когда все нормально можешь пробовать на другом настроив клиента на ip сервера
Последний раз редактировалось Aliens_wolfs; 30.06.2015 в 21:23. |
30.06.2015, 21:21 | #5 |
Пользователь
Регистрация: 05.05.2015
Сообщений: 55
|
|
01.07.2015, 00:03 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
поскольку время реальное я бы сильно задумался насчет TCP. он хоть и дает гарантию доставки но все же немного медленнеее чем UDP. в локалке потери UDP маловероятны. но в UDP это можно комперсировать. в TCP нет.
Цитата:
задержка TCP не зависит от того чем посылать. а зависит строго от канала. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 01.07.2015 в 00:06. |
|
01.07.2015, 00:13 | #7 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
передавать надо от одного другому или бродкастом?
если бродкаст, то UDP, иначе, TCP. Если IP приёмника известен заранее, то вообще красота - 10 строк кода с использованием готовых классов и вуаля - иди в кассу за премией. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
01.07.2015, 18:28 | #8 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
WinSock в нем строишь свою структуру приема передачи со своими параметрами кстати работает быстрее готовых компонентов, но он сложноват лично я использую его и в примерах на нем сделано, но наверное вам лучше использовать компоненты чтобы незаморачиваться. По поводу UDP да он быстрее но в нем есть свои косяки, иногда отрывистые фразы при разговоре, потеря пакетов, и главное ты не знаешь подключен ли получатель клиент в этом протоколе так как соединение он не делает, можно конечно делать проверки пингом от клиента через определенное время, но не сразу узнаешь его присутствие при получении данных. Лично я остановился на TCP, мне на этом протоколе качество звука больше понравилось, даже Mail Agent для звука использует TCP. И на TCP вы будете уверены что канал работает. Если скорость менее 1мб то да возможно вам лучше использовать UDP, для проверки своих модемов попробуйте через Mail Aget пообщаться с кем нибудь, ну или же через мой пример вы проверите TCP канал.
Последний раз редактировалось Aliens_wolfs; 01.07.2015 в 18:42. |
02.07.2015, 08:46 | #9 |
Пользователь
Регистрация: 05.05.2015
Сообщений: 55
|
Извините, задержался с проверкой. Вчера пробовал ваш пример. Но сам не разобрался еще со своей радиосетью. Модемы пишут, что связь есть. А ваш клиент не всегда конектится. Но это, думаю, зависит от радиоканала. Может, он не стабильный. И там еще мощность настраивается. Вообщем, надо мне еще нужно разобраться с этим.
А так, если конект есть, то да, качество звука хорошее. Только вопрос: если подключать два клиента, они будут одновременно получать звук от сервера? Без запаздывания один относительно другого? (Пока это проверить не получилось.) |
03.07.2015, 06:32 | #10 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Можно сервер много поточный сделать для работы с кучей клиентов, вы только определитесь по какому протоколу вам работать.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
UDP нет обратной связи через шлюз | Aliens_wolfs | Работа с сетью в Delphi | 8 | 29.10.2013 19:07 |
Скачивание файлов по UDP (или TCP) | jekahm | Работа с сетью в Delphi | 3 | 25.03.2011 04:16 |
Есть звук или нет | dimka0986 | Мультимедиа в Delphi | 11 | 24.01.2010 00:11 |
Правильно или нет вот в чём вопрос но ошибок нет... | Alexcool | Помощь студентам | 2 | 10.01.2010 13:55 |
Звук есть,а картинки нет | LexMan | Помощь студентам | 2 | 04.09.2008 19:47 |