Страница 1 из 1

Ретрансляция интернет-радио с задержкой

Добавлено: 25 окт 2023, 08:57
Meat_12237
Идея: ретранслировать интернет-радио на своем сервере для прослушивания через сотовый Интернет, который периодически отваливается.

Хочу создать на сервере буфер эфира минут на 10. При хорошей связи буфер загружается на телефон. При восстановлении хорошей связи буфер на телефоне дополняется или обновляется.

Таким образом хочу получить непрерывное прослушивание интернет-радио, пусть и отстающего на 10 минут от реального эфира.

Подскажите, с помощью каких средств это можно реализовать?

Re: Ретрансляция интернет-радио с задержкой

Добавлено: 29 окт 2023, 09:01
tangar
погугли за Icecast или Shoutcast: программы для ретрансляции аудиопотоков; там есть возможность создания буфера для задержки вещания

Re: Ретрансляция интернет-радио с задержкой

Добавлено: 05 ноя 2023, 20:57
Meat_12237
Изучил. Возможность создания буфера ни в документации к этим серверам, ни в инструкциях пользователей не нашёл.

Подобное видел в некоторых трансляциях на YouTube. Для своей трансляции YouTube не позволяет создать буфер.

Или я не то ищу?

Re: Ретрансляция интернет-радио с задержкой

Добавлено: 09 ноя 2023, 23:58
Meat_12237
Нашёл в Icecast параметры burst-size и queue-size.

Увеличил burst-size и соответственно queue-size ( queue-size в 8 раз больше).

Получился поток с отставанием около 2 минут. Это хорошо, к этому стремился.

Отключаю сеть на 10 сек. Включаю снова.

Воспроизведение не реагирует, т.к. проигрывается загруженный буфер. Это тоже хорошо.

Потом по окончанию загруженного буфера происходит следующее: поток перепрыгивает вперёд и воспроизводится в реальном времени.

А я ожидал продолжения отставания потока. Я допускаю какие-нибудь скачки после окончания загруженного буфера из-за произвольной сегментации потока mp3.

Но почему поток стал воспроизводиться в реальном времени?

Re: Ретрансляция интернет-радио с задержкой

Добавлено: 18 ноя 2023, 00:34
Meat_12237
Разобрался. Работаем с icecast.
1. Ставим параметр burst_size из расчёта битрейт / 8 * необходимое время.
2. Параметр queue_size выставляем экспериментально, следим, чтобы значение было больше, чем burst_size.
3. Подбираем нормальный проигрыватель, способный проглотить начальный пакет с размером burs_size, а также способный переприсоединяться к серверу. У некоторых всё это опционально, у некоторых это включено по умолчанию и не регулируется.

Спасибо tangar! Воодушевил. Оказалось, что icecast может!

Re: Ретрансляция интернет-радио с задержкой

Добавлено: 19 ноя 2023, 09:53
tangar
рад, что у тебя всё получилось. удачи в творчестве! :cowboy: