2010-02-01 2 views
1

Я изучаю, как реализовать аудио-чат n-to-n (так, скажем, 4 человека слышат друг друга). Это довольно тривиально с использованием Flash или Wowza Media Server. Задача real - это латентность, потому что 4 человека в чате должны делать все как можно синхронно (например, что-то вроде пения вместе). Каждый миллисекунда имеет значение.Как реализовать низкоскоростной латентный аудио-чат n-to-n

Что вы испытываете в аудио-чатах с ультранизкой задержкой?

  • Какова будет самая низкая латентность?
  • Как вы его достигаете (какое программное обеспечение, протокол, медиа-сервер, битрейт)?

спасибо!

+1

Вы когда-нибудь пользовались телефоном, были связаны с телеконференцией или смотрели CNN? Если вы не делаете это в локальной сети, у вас нет молитвы. –

+0

Я знаю, что латентность ниже 1сек, вероятно, невозможна ... но, возможно, кто-то попробовал что-то подобное и может поделиться своим опытом ... –

+0

Ну, по крайней мере, вы реалистичны:) ... когда вы говорите «пение, «это означает для меня, что исполнители используют звук, чтобы определить, когда им нужно петь, и какую ноту петь и т. д. Вам действительно нужно ощущение в реальном времени для этого типа сценария, поэтому я не вижу, чтобы это было вариант с текущей технологией, если только она не является локальной сетью, как указано ранее. –

ответ

0

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

Теперь, если бы я был тем, кто занимался этим проектом, я бы увидел, какие алгоритмы и протоколы доступны для синхронизации часов. Как только вы это сделаете, каждый хост, скорее всего, просто отправит пакеты с меткой времени на сервер. На стороне сервера вы можете каким-то образом объединить эти пакеты (возможно, поразрядно или по всем байтам для определенного временного интервала с каждой машины) и отправить их снова через многоадресную рассылку.

Проблема в том, что даже ваш код будет иметь проблемы ... у вас нет способа надежно получить эти пакеты на сервер в режиме реального времени. UDP будет отбрасывать пакеты, и вам придется создавать допуски для приема позднего прибытия или отсутствия шоу. В этом отношении TCP не лучше. Несомненно, пакеты гарантированно прибудут в порядок, но по какой цене со временем? Кроме того, чтобы сжать звук на каждом хосте, затем сжать его на сервере, объединить и повторно сжать ... все, сохраняя при этом ощущение звука в реальном времени, ужасно амбициозного.

Я НЕ НУЖДАЮСЬ, чтобы быть экспертом, и у меня нет НИКАКОГО опыта, выполняющего такие вещи, но это просто ЗВУКИ.

+0

Спасибо за ваше мнение - хотя только с указанием очевидного, кажется, что вы правы - латентности под 1сек кажутся невозможными прямо сейчас. Похоже, моему клиенту нужна еще одна бизнес-идея. Спасибо! –

Смежные вопросы