Настройка потокового аудиосервера SHOUTcast в ОС Linux
Администрирование
Статья была опубликована 1 февраля 2010 года в 00:00, а последний раз правилась 1 февраля 2010 года в 10:46.
Постоянная ссылка: http://www.nixp.ru/articles/49.html
Статья посвящена описанию процесса установки и настройки потокового аудиосервера SHOUTcast (и программного обеспечения, необходимого для работы с ним) для создания своего online-радио под операционной системой Linux.
Статья посвящена описанию процесса установки и настройки потокового аудиосервера SHOUTcast (и программного обеспечения, необходимого для работы с ним) для создания своего online-радио под операционной системой Linux.
SHOUTcast — продукт от компании Nullsoft, позволяющий с легкостью создавать потоковый аудиосервер (audio streaming server) для трансляции музыкальных файлов (MP3) и других аудиосигналов посредством интернета. Помимо самого аудиосервера разработчиками представлены и так называемые Broadcasting tools. Все программное обеспечение является бесплатным, но распространяется с закрытым кодом (в виде исполняемых файлов).
sc_serv
SHOUTcast server — самое ядро создаваемой потоковой аудиосистемы — работает под операционными системами Windows 95/98/ME/NT/2000/XP, Mac OS X, FreeBSD, Linux и Solaris. Скачать его последнюю версию можно на сайте SHOUTcast.
SHOUTcast Linux server v1.9.4: http://www.shoutcast.com/downloads/sc1-9-4/shoutcast-1-9-4-linux-glibc6.tar.gz.
После скачивания:
$ tar xzvf shoutcast-1-9-4-linux-glibc6.tar.gz
В появившемся каталоге shoutcast-1-9-4-linux-glibc6 расположен конфиг сервера SHOUTcast (sc_serv.conf). Конфигурация сервера:
; Максимальное количество пользователей, которые могут одновременно ; находится на сервере. MaxUser=16
; Пароль для broadcasting-программ. Подробнее см. ниже. Это поле не может ; быть пустым. Password=qwera3
; Порт аудиосервера. PortBase=8000
; Файл, куда будут записываться все логи сервера. LogFile=sc_serv.log
; Отображение статусной строки, которая будет ежесекундно обновляться и ; показывать последнюю информацию о сервере. RealTime=0
; Вывод логируемых сообщений на экран. Полезно отключить, если сервер ; работает в фоновом режиме. ScreenLog=0
; Количество песен, отображаемых в списке на www-странице /played.html ; (последние проигранные на сервере). Принимает значения от 1 до 20. ShowLastSongs=10
; TchLog определяет, должен ли DNAS-лог записывать подключения ; yp.shoutcast.com к серверу. TchLog=yes
; Не учитывать посещения www-странички. WebLog=no
; Включение W3C-логирования. Информацию этого лога можно просматривать ; с помощью, например, Analog или WebTrends. W3CEnable=Yes
; Название файла с W3C-логами. W3CLog=sc_w3c.log
; Определяет IP допущенных к вещанию источников аудипотока.. В нашем случае ; аудиосигнал на сервер будет подаваться с этой же машины. SrcIP=127.0.0.1
; Определяет IP допущенных к серверу слушателей. DestIP=ANY
; Порт для подключения к yp.shoutcast.com. Менять, только если стоит proxy-сервер. Yport=80
; Не смотреть DNS-имя у подключающихся к серверу. NameLookups=0
; Дополнительные настройки, нужные, если сервер будет пересылать получаемый ; аудиопоток на другой. ; RelayPort=8000 ; RelayServer=192.168.1.58
; Пароль для администрирования через Web-интерфейс. Подробнее см. ниже. AdminPassword=qwerty2
; Отключать слушателей, если источник аудиопотока отсоединяется. AutoDumpUsers=1
; Время в секундах, которое источник аудиопотока может молчать (idle). AutoDumpSourceTime=10
; Директория на жестком диске, где расположены стандартные аудиофайлы. ; См. следующие переменные. ContentDir=./content
; MP3-файл, который будут слышать только подключившиеся к аудиосерверу ; пользователи. Во избежание глюков строго рекомендуется, чтобы параметры ; файла соответствовали качеству вещания. (%d определяет текущий bitrate.) ; IntroFile=intro%d.mp3
; MP3-файл, который будут слышать подключившиеся пользователи, если источник ; аудиопотока отключится. Уместны те же примечания, что и для IntroFile. ; AutoDumpUsers должен быть равен нулю. ; BackupFile=C:\intro%d.mp3
; Формат строки, отображаемый в клиентах пользователях во время прослушивания ; радио. %s определяет строку, которая берется у источника аудиопотока. TitleFormat=MyRadio: %s
; Формат строки, посылаемого слушателю URL'а. ; URLFormat=http://www.server.com/redirect.cgi?url=%s
; Является ли сервер публичным? Принимает значения always, never и default ; (для последнего информация берется у источника). PublicServer=default
; Другие серверы не могут пересылать свой сигнал через этот. AllowRelay=No
; Этот сервер не подлежит публикации в каталоге SHOUTcast. AllowPublicRelay=No
; Частота отсылаемых данных (в байтах). Рекомендуется оставить значение ; по умолчанию (32768). MetaInterval=32768
; Максимальное время (в минутах), которое слушатель может находится на сервере. ; Если не определено, то ограничений нет. ; ListenerTimer=600
; Текстовый файл, используемый для работы с забаненными пользователями. ; (Автоматически создается Web-интерфейсом.) ; BanFile=sc_serv.ban
; Текстовый файл, используемый для работы со списком клиентских IP-адресов, ; которые всегда могут подключиться к серверу. ; RipFile=sc_serv.rip
; Если включить, то к серверу смогут подключаться только клиенты с IP-адресами ; из файла RipFile. ; RIPOnly=No
; Подключение дополнительного общего конфига. ; Include=/usr/local/shoutcast/common.conf
; Следующие опции нужны для ускорения работы сервера. Менять их не рекомендуется.
; Количество процессоров. ; CpuCount=1
; Время "сна" процессора (в мс) в промежутках между отправлением данных ; пользователям. Значение по умолчанию (833) оптимально для 128kbps. ; Sleep=833
; Удаление некоторых лишних пробелов и строк в выводе XML. ; CleanXML=No
Исполняемый файл для запуска самого сервера — sc_serv. Вызывается он с одним параметром, указывающим на путь к конфигу:
$ ./sc_serv sc_serv.conf
sc_trans
После того, как начнет работу сервер, нужно, собственно, направить ему аудиопоток. Для этого и нужны broadcasting-утилиты. На сайте SHOUTcast представлены родные программы:
- SHOUTcast DSP Plug-In for Mac OS X, Linux and FreeBSD (v0.40): http://www.shoutcast.com/downloads/sc_trans_posix_040.tgz.
После скачивания:
$ tar xzvf sc_trans_posix_040.tgz
И в появившемся каталоге sc_trans_040 расположен конфиг для вещания на SHOUTcast-сервере (sc_trans.conf). Таким образом и будет создан вышеупомянутый «источник аудиопотока». Его конфигурация:
; Файл со списком проигрываемых mp3. Создать его можно с помощью find: ; find /path/to/mp3s/ -type f -name *.mp3 > playlist.txt ; find /path2/to/mp3s/ -type f -name *.mp3 >> playlist.txt PlaylistFile=/path/to/playlist/playlist.txt
; IP и порт для сервера, на котором будет вещание. ServerIP=127.0.0.1 ServerPort=8000
; Пароль для broadcasting'а. (См. конфиг сервера.) Password=qwera3
; Информация о музыке. Название аудиопотока, его адрес, жанр музыки. StreamTitle=Testing StreamURL=http://127.0.0.1:8000/ Genre=Classic
; Название файла для логирования. LogFile=sc_trans.log
; Включение случайной выборки песен. Shuffle=1
; Настройки воспроизводимого сигнала (обычно прямо пропорционально зависят ; от пропускной способности сети). Bitrate=80000 SampleRate=44100 Channels=1
; "Качество". Значения от 1 (лучшее) до 10. Quality=6
; Режим "затухания". Песня по завершении проигрывания затихает. ; 0: отключение, 1: 100/100->100/0, 2: 0/100->100/0 CrossfadeMode=0
; Продолжительность этого "затухания" (в мс). CrossfadeLength=0
; Читать ID3-теги. UseID3=1
; Данная станция не является публичной. Public=0
; Контакты для обратной связи. AIM=--- ICQ=4242 IRC=---
Запуск аналогичен:
./sc_trans_linux sc_trans.conf
Теперь по адресу http://127.0.0.1:8000/ доступно online-радио, которое будет проигрывать mp3-файлы, перечисленные в /path/to/playlist/playlist.txt. Для того чтобы прослушать, что же получилось, достаточно в каком-либо плейере (будь то XMMS, Zinf или mpg123) ввести http://127.0.0.1:8000/ (для XMMS нажимаем <Ctrl>+<L> и в появившемся окне вводим URL).
Если зайти на этот же URL каким-нибудь браузером, то можно увидеть www-страничку с информацией об аудиосервере (текущий статус, последние проигранные песни). Там же есть ссылка на «Admin», по которой можно управлять списком подключенных слушателей (удалять их и банить), а также просматривать лог.
В качестве очень существенного недостатка SHOUTcast-сервера можно отметить отсутствие поддержки формата OGG. По заявлениям разработчиков, заниматься они этим в ближайшее время и не планируют.
Audio-in:
Для трансляции сигнала с аналогого входа звуковой карты с помощью sc_trans необходимо в плей-лист (тот самый PlaylistFile в конфиге sc_trans.conf; по умолчанию это example.lst) добавить следующие строки:
DSP:/dev/dsp DSP:/dev/dsp
Где /dev/dsp — устройство аудиокарты, с которой и будет идти поток. (Строку обязательно надо указать именно два раза, т.к. по необъяснимым причинам первая строка playlist’а попросту игнорируется.)
Ссылки по теме
Альтернативы SHOUTcast server:
Другие средства для потокового аудиовещания на SHOUTcast/icecast server:
-
Популярные в этом разделе:
- «Настройка сервера SSH (теория и практика)»,
- «Реализация отправки и приёма SMS с помощью Gnokii»,
- «Настройка сервера OpenLDAP».
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1