- Первая полоса
- ·
- Журнал
- ·
- Как слушать
Как устроен радиопоток
Интернет-радио — это очень длинный HTTP-ответ, который никогда не заканчивается. Ниже — что происходит между сервером станции и вашими наушниками, сколько это стоит по трафику и что делать, когда канал молчит.
Что такое поток
Обычный аудиофайл сервер отдаёт целиком: известна длина, есть начало и конец. Радиопоток устроен иначе — сервер открывает соединение и бесконечно досылает новые аудиокадры. Ни длины, ни возможности отмотать назад у такого ответа нет.
Отдают потоки два семейства программ: Icecast (открытый, чаще всего встречается у общественных вещателей) и Shoutcast (исторически коммерческий). Оба умеют вкладывать в поток служебные метаданные — название трека и станции — по протоколу ICY. Эти метаданные читаются только на стороне сервера или в настольном проигрывателе: браузерный <audio> доступа к ним не имеет, поэтому мы не показываем «сейчас играет» и не выдумываем эту строку.
MP3, AAC и битрейт
В нашем каталоге встречаются два формата. MP3 универсален: играет абсолютно везде, включая старые устройства. AAC при том же битрейте звучит заметно лучше — поэтому канал на AAC 96 kbps сопоставим по качеству с MP3 на 128 kbps, а не проигрывает ему.
Битрейт — это сколько данных в секунду тратится на звук. Он определяется вещателем, и увеличить его на стороне слушателя невозможно: если станция отдаёт 96 kbps, никакие настройки плеера не добавят деталей. Самый высокий поток в каталоге — FluxFM Chillhop на 320 kbps.
Расход трафика
Считается арифметикой: битрейт делим на 8, получаем килобайты в секунду, умножаем на 3600. Округлённо:
| Битрейт | В час | За рабочий день (8 ч) |
|---|---|---|
| 96 kbps | ≈ 43 МБ | ≈ 346 МБ |
| 128 kbps | ≈ 58 МБ | ≈ 461 МБ |
| 320 kbps | ≈ 144 МБ | ≈ 1,2 ГБ |
На мобильном тарифе с ограничением это стоит держать в голове: восемь часов чиллхопа на 320 kbps съедают больше гигабайта.
Буфер и паузы
Плеер всегда держит небольшой запас — обычно несколько секунд звука. Если сеть просела, запас расходуется, и вы этого не замечаете. Если просадка длиннее буфера, наступает пауза: браузер ждёт данных. Отсюда два практических следствия.
- Пауза на две-три секунды в начале — норма: это набор буфера, а не ошибка.
- Регулярные обрывы каждые несколько минут обычно означают потери на пути к серверу вещателя, а не проблему станции. Проверьте на другом канале из другой страны.
Наш плеер добавляет к этому сторожевой таймер: если после нажатия «играть» звук не начался за 12 секунд, канал считается недоступным, и включается следующий по списку — с сообщением о том, что произошло.
Почему звук не включается сам
Начиная примерно с 2018 года все основные браузеры блокируют автозапуск со звуком, пока пользователь не взаимодействовал со страницей. Это сделано осознанно, и обойти запрет нельзя — только со сброшенным звуком, что для радио бессмысленно.
Поэтому первое нажатие на кнопку или карточку станции обязательно. Дальше переключение между каналами работает без дополнительных подтверждений: браузер уже считает страницу «разрешённой».
Внешние проигрыватели
Прямые адреса всех каналов лежат в таблице каталога. Их можно открыть в любом проигрывателе, который понимает сетевые источники:
- VLC
- Медиа → Открыть URL, вставить адрес, «Воспроизвести».
- mpv
- В терминале: mpv "https://адрес-потока"
- foobar2000
- File → Add location, затем адрес.
- Стандартные приложения на смартфоне
- Большинство приложений для интернет-радио позволяют добавить произвольный адрес потока вручную — ищите пункт «Своя станция» или «Custom URL».
Настольный проигрыватель, в отличие от браузера, читает ICY-метаданные и показывает названия треков.
Если канал не отвечает
Проверить поток можно вручную. Команда ниже запрашивает первые байты и печатает код ответа и тип содержимого:
| Что видим | Что это значит |
|---|---|
| 200 или 206 + audio/* | Поток жив, проблема на стороне плеера или сети |
| 302 → audio/* | Нормально: вещатель балансирует нагрузку между серверами |
| 404 + text/html | Адрес изменился или канал закрыт |
| 000 | Соединение не установилось: блокировка, DNS или сервер недоступен |
Пример команды для терминала:
curl -sSL -m 10 -o /dev/null -r 0-1 -w "%{http_code} %{content_type}\n" "https://адрес-потока"
Если один из наших каналов перестал отвечать — сообщите на info@hiphop.legendaryfn.uk. Мы проверяем весь список вручную и заменяем адреса, а не оставляем битые ссылки в каталоге.