IceCast2 и Ices0 — строим интернет радио.
В портах FreeBSD есть все необходимое для создания своего собственного интернет радио. Нам понадобится сервер IceCast2, к нему будут подключаться слушатели и слушать ваш набор музыки, который вы транслируете на сервер с помощью Ices0.
Начнем с установки IceCast2:
cd /usr/ports/audio/icecast2/ make install clean |
Установка проходит без дополнительных вопросов. Конфигурационный файл icecast2 будет иметь такой вид(сам файл в формате xml):
<icecast> <limits> <!-- Максимальное количество подключений к серверу --> <clients>500</clients> <!-- Количество источников --> <sources>7</sources> <!--Количеество подпроцессов обслуживающих клиентов --> <threadpool>12</threadpool> <!-- Размер очереди вещания --> <queue-size>1572864</queue-size> <!-- Время ожидания ответа от клиента (судя по документации не используется --> <client-timeout>30</client-timeout> <!-- Время ожидания запроса от клиента --> <header-timeout>15</header-timeout> <!-- Время ожидания данных от источника сигнала, при превышении интервала, источник будет отключен --> <source-timeout>600</source-timeout> <!-- Режим при котором, подключившийся клиент получит данные для заполнения локального буфера проигрывателя --> <burst-on-connect>1</burst-on-connect> <!-- Размер буфера отправляемого клиенту --> <burst-size>262140</burst-size> </limits> <!-- Секция отвечающая за авторизацию --> <authentication> <!--С этим паролем должны подключаться источники сигнала --> <source-password>source-pass</source-password> <!--Пароль для релаев(мы не используем в нашей задаче) --> <relay-password>relay-pass</relay-password> <!--Логин и пароль администратора --> <admin-user>admin</admin-user> <admin-password>admin-pass</admin-password> </authentication> <!-- Имя хоста --> <hostname>hilik.org.ua</hostname> <!--IP адрес и порт на котором будет слушать сервер --> <listen-socket> <port>8000</port> <bind-address>89.251.34.107</bind-address> </listen-socket> <!-- Использовать ссылки в виде статических файлов --> <fileserve>1</fileserve> <!-- Пути --> <paths> <basedir>/usr/local/share/icecast</basedir> <logdir>/var/log/icecast</logdir> <webroot>/usr/local/share/icecast/web</webroot> <adminroot>/usr/local/share/icecast/admin</adminroot> <alias source="/" dest="/status.xsl"/> </paths> <!-- В какие файлы писать события --> <logging> <accesslog>access.log</accesslog> <errorlog>error.log</errorlog> <loglevel>4</loglevel> <logsize>10000</logsize> </logging> <!-- Секция безопасности --> <security> <chroot>0</chroot> <changeowner> <user>nobody</user> <group>nogroup</group> </changeowner> </security> </icecast> |
Теперь можно поставить разрешение на запуск IceCast2:
echo "icecast_enable=YES">>/etc/rc.conf |
и запустим его:
/usr/local/etc/rc.d/icecast2 start |
На этом с сервером мы покончили. Если вы подключитесь браузером к http://
Теперь можно переходить к установке и настройке источника потока.
Установка производится из:
cd /usr/ports/audio/ices0 make install clean |
Перед сборкой появляется небольшой конфигурационный диалог:
┌────────────────────────────────────────────────────────────────────┐ │ Options for ices 0.4_7 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ [X] FLAC Enable flac transcoding support │ │ │ │ [X] FAAD Enable mpep4 transcoding support │ │ │ │ [X] VORBIS Enable ogg/vorbis transcoding support │ │ │ │ [ ] PYTHON Enable Python scripting │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─└────────────────────────────────────────────────────────────────┘─┤ │ [ OK ] Cancel │ └────────────────────────────────────────────────────────────────────┘ |
В меню настроек мы описали, что у нас будет возможность перекодировать оригинальные файлы с использованием библиотек faad, faac и vorbis.
Теперь у нас появился еще один конфиг и что характерно тоже в формате xml:
<?xml version="1.0"?> <ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices"> <Playlist> <!--Путь к файлу содержащему список песен которые будут проигрываться --> <File>/home/hilik/playlist.txt</File> <!-- 1 - проигрывать случайным образом, 0 - по порядку --> <Randomize>1</Randomize> <!-- Модуль плейлиста --> <Type>builtin</Type> <Module>ices</Module> <!-- Пауза перед следующим файлом 5 секунд --> <Crossfade>5</Crossfade> </Playlist> <Execution> <Background>1</Background> <Verbose>0</Verbose> <BaseDirectory>/tmp</BaseDirectory> </Execution> <Stream> <Server> <!-- Сервер на который мы будем отправлять поток --> <Hostname>89.252.34.107</Hostname> <Port>8000</Port> <Password>source-pass</Password> <Protocol>http</Protocol> </Server> <!-- Точка монтирования на сервере и описание нашего потока --> <Mountpoint>/ices</Mountpoint> <Name>Default stream</Name> <Genre>Default genre</Genre> <Description>Default description</Description> <URL>http://89.252.34.107:8000/</URL> <Public>0</Public> <!-- Настройка передаваемого потока --> <Bitrate>128</Bitrate> <Reencode>0</Reencode> <Channels>2</Channels> </Stream> </ices:Configuration> |
Теперь разрешим его старт в /etc/rc.conf:
echo "ices0_enable=YES" >>/etc/rc.conf |
А перед запуском создадим, обязательно файл плейлиста. У меня он находится в /home/hilik/playlist.txt
Внутри у него список mp3 файлов с полными путями.
Теперь запустим его.
/usr/local/etc/rc.d/ices0 start |
Теперь с помощью браузера подключимся к нашему серверу(в моем случае это http://hilik.org.ua:8000), на экране мы увидим примерно такую картину:
По ссылке «Click to listen» мы перейдем к прослушиванию радио, для этого должен быть установлен проигрыватель поддерживающий потоковое аудио(winamp, totem, windows media player).
На этом настройка окончена.
By crud, 04.03.2009 @ 19:43
Фаллбек моунт поинт еще надобыло указать.
By daskel, 16.05.2009 @ 18:58
Огромное спасибо за статью. Весь инет перелопалил в поисках инстукции по установке и настройке, и везде возникали какие то проблемы, то одного не хватает, то другого, то ошибки при установке или еще что. А тут действительно установка IceCast в двух командах заключается, всё дополнительное само скачивается и устанавливается.
By Bezlikiy, 04.10.2009 @ 22:12
hiall
чтото у меня не вышло…
запускаю icecast — получаю web морду
далее
ices -c /usr/loal/etc/ices.xml
или
ices -c /usr/loal/etc/ices.xml -F -D /home/icecast/music/playlist.txt
получаю надпись в консоле, но когда обращаюсь
192.168.0.40:8000 у меня нет точки монтирования, т.е. ее не вижу
если руками дописать в адресе — то результат нулевой
вот конфиг ices:
/home/icecast/music/playlist.txt
<!— playlist.txt —>
1
builtin
ices
<!— 2 —>
1
0
/tmp
<!— localhost —>
192.168.0.40
8000
password
http
<!— /test —>
<!— /home/icecast/music/ —>
/test
<!— trans
trans
/home/icecast/music/_remix_.mp3
—>
<!— ices.dump —>
Default stream
Default genre
Default description
http://192.168.0.40:8000
<!— http://192.160.0.40/music —>
0
128
1
44100
2
как видно — что я тока не делал — ну не запускается — прошу помогите — где я ошибаюсь…
By gx, 05.10.2009 @ 00:10
Спасибо, завелось!