Минимизация задержки с веб-интерфейсом, захватом и трансляцией звука в реальном времени - PullRequest
2 голосов
/ 21 марта 2012

У меня проблемы с достижением низкой задержки при выполнении веб-захвата / записи аудио пользователя (с микрофона, линейного входа), а затем в прямом эфире, транслируя этот звук нашим слушателям. По сути, веб-платформа звукового радиовещания, но низкая, <2 секунды задерживается с того момента, когда вещатель говорит, когда слушатели слышат, что это важно. </p>

Я начал с Icecast, но даже локально я не могу задержаться на несколько секунд. Это даже не учитывает необходимость захвата аудио пользователя, а затем отправки его обратно на сервер для потоковой передачи.

Действительно я вижу 3 основных произведения:

  1. Захват аудио через Интернет (вероятно, с Flash?), Который отправляет аудио пользователю по адресу:
  2. Медиасервер (что-то вроде Icecast или Wowza)
  3. Плеер для фактического прослушивания (HTML5 с отступлением на Flash)

Итак, мой вопрос: как мне оптимизировать этот процесс для достижения низких задержек и при этом иметь гибкость для потоковой передачи на любое устройство? Есть ли лучшие рекомендации относительно того, какой сервер, кодеки и т. Д. Использовать?

1 Ответ

0 голосов
/ 17 августа 2014

Icecast должен быть потоковым сервером, и его целью не является достижение низкой задержки. Вполне нормально, что у вас будет задержка около 5 секунд при использовании Iecast, и вы не сможете ничего с этим поделать.
HLS еще хуже для ваших нужд, так как он содержит небольшие сегменты, и каждый сегмент имеет продолжительность, которая не должна быть ниже 3 секунд, что означает, что у вас определенно будет задержка, превышающая 3 секунды.

Если вам действительно нужна низкая задержка, взгляните на Mumble с кодеком Opus .

...