Минимизация задержки при потоковой передаче аудио с помощью HTML 5 - PullRequest
3 голосов
/ 31 августа 2010

Я пытаюсь прослушивать живой аудиопоток на веб-странице с задержкой менее 3 секунд.До сих пор с потоками ogg vorbis, генерируемыми с помощью ices & icecast, я не смог получить задержки меньше 7 секунд.Все плееры, которые я использовал до сих пор (html5 audio tag в Firefox, Opera, Safari; также VLC), похоже, имеют похожие задержки.На данный момент неясно, сколько задержки вводится в айс / айскаст против игрока на стороне клиента.Я настроил льды и настройки ледяного покрова, но безрезультатно.

Кто-нибудь достигал лучших задержек, чем этот, в аналогичных настройках льда и ледяного покрова?Я не ожидал бы, что декодер ogg vorbis (будь то HTML 5 в браузере, VLC или что-то еще) задержит аудиопоток на несколько секунд.Я не прав?Я не могу найти информацию об управлении размерами буфера или декодировании в браузерах.

С другой архитектурой (html 5, firefox, сервер WSGI, обслуживающий аудио в формате wav), я смог достичь задержек около 1-2 секундыПо умолчанию Firefox начал воспроизводить файл WAV на 5+ секунд позже, но я мог продвинуться вперед, установив audio.currentTime вперед, и только на 1-2 секунды назад (несколько хрупко).Тем не менее, я бы предпочел использовать icecast, а потоковые wavs явно не масштабируются.

Заранее спасибо за любые идеи.

Ответы [ 2 ]

1 голос
/ 25 января 2011

Серверы Icecast и Shoutcast сами имеют внутренние буферы. Я знаю, что shoutcast можно настроить (см. Дополнительные директивы в документации).

0 голосов
/ 07 февраля 2019

Есть несколько заархивированных обсуждений о задержке, связанной с Ogg / Vorbis:

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

Однако я также часто читал, что новый кодек Opus лучше подходит для малой задержки / задержки. Смотрите, например здесь или здесь .

...