Как установить icecast на linux

Siava.Su

черновик сисадмина

Установка и настройка потокового Icecast2 + ices0 сервера в Debian

Был великий и ужасный Slackware. И работал на нём Icecast сервер, настроенный следующим образом. И всё было хорошо. Но пришло время ставить Debian..

Итак, на тот момент под руками оказался Debian Lenny. Кстати, Squeeze был уже на подходе, но переходить до выхода релиза не хотелось. Но это не важно, так как всё что описано ниже должно запуститься и под Debian Squeeze.

Устанавливаем Icecast2:

В список репозиториев /etc/apt/sources.list добавьте мультимедиа репозиторий Debian, если у вас его нет, так как некоторые пакеты будут устанавливаться оттуда:

для squeeze:
deb http://mirror.yandex.ru/debian-multimedia/ squeeze main

для lenny:
deb http://mirror.yandex.ru/debian-multimedia/ lenny main

Автоматически будет созданы учётная запись, файл конфигурации и прочее. Для того, чтобы icecast запустился, необходимо в /etc/default/icecast2 установить значение:

Отредактируем файл конфигурации /etc/icecast2/icecast.xml

Если выкинуть всю воду и лишние комментарии, то получилось следующее:

(текст конфига желательно должен иметь кодировку utf8)

Теперь можно запустить Icecast2 командой:

Давайте разберёмся как направить на Icecast2 аудиопоток.

Установка ices0

Я не сторонник перехвата чужих потоков, а хочу воспроизводить собственную коллекцию mp3 файлов. Поэтому, для таких целей понадобится ices. Но не тот, что имеется в репозитории Debian (ices2), а ices0. Так как ices2 воспроизводит только ogg-файлы (насколько я понял), а мне надо mp3.

К сожалению, ices0 отсутствует в репозитории, поэтому будем его собирать вручную. Однако, для сборки вручную надо подготовиться. Для этого установим следующее:

Также, нам потребуются библиотеки libshout3 и libxml2:

И ещё, для поддержки mp3 файлов потребуются библиотеки libmp3lame0. У меня не получилось их установить прямо из репозитория, поэтому ставил самостоятельно:

для 32-битных систем:

(для 64-битной аналогично)

Всё готово для сборки ices0.

и переходим в директорию с исходниками ices0:

и сборку с установкой:

Готово! ices0 установлен. Теперь выполним его конфигурацию. Кстати, а надо ли? 🙂 Я не уверен, но на всякий случай состряпал следующий конфиг. /usr/local/etc/ices.conf:

(текст конфига желательно должен иметь кодировку utf8)

Финальные штрихи

Составим плейлист для ices0:

И запустим аудиопоток:

Вот и всё 🙂
Перепечатка только с указанием ссылки на источник. (c) Siava.Ru

59 комментариев

Я с вами начал переписываться на форуме, но у вас очень строгие правила и у меня удалили 2 аккаунта: vizavi и zpalmal. Продолжаю здесь:

У Вас в инструкции написано, что для поддержки mp3 файлов потребуются библиотеки libmp3lame0 и что надо выбрать какая ситема 32х или 64хбитная. У меня на хостинге написано: Шаблон: Ubuntu-10.10-64 bits. Это значит, что лучше загружать файлы для 64хбитной?

Это значит, что в интерфейсе PuTTY нужно просто поочередно выполнить эти строки? Я именно так и сделал, всё нормально, кроме последней строки. В результате её выполнения я вижу такое сообщение:

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

А как их загрузить? В какую директорию? Что значит выполнять в той же директории? 5-й день бьюсь, как рыба об лед, на вашем форуме 2 раза забанили непонятно за что, на хостинге никто не хочет помогать, просто игнорируют… Неужели нельзя как-то попонятней объяснить?

Виталий, установка любых сервисов на ваш сервер требует наличия хотя бы элементарных знаний в этой области. Никто не будет расписывать руководства настолько подробно. Почитайте книжки, наберитесь опыта, а уж потом приступайте к ковырянию 🙂

Да я даже не знаю какие книжки надо читать, скажите хотя бы …. Пакеты куда надо загрузить? Или без разницы, в корень можно?

спасибо.
статья очень помогла
————————

Запускаю /etc/init.d/icecast2 start
мне выдает

Starting icecast2: Starting icecast2
Detaching from the console
«/O warning : failed to load external entity «/etc/icecast2/icecast.xml
)ATAL: error parsing config file (/etc/icecast2/icecast.xml
XML config parsing error
icecast2.

в папке вефаулт вернул все как было в начале теперь ошибка

/etc/init.d/icecast2 start
: command not foundt2: line 4:
: command not foundt2: line 8:
: command not foundt2: line 11:
: command not foundt2: line 15:
‘ not foundecast2: start-stop-daemon: group `icecast
(Success)

Виталий, у вас Debian?

спасибо за статью. помогла))
2 Виталий не нужно тупо копипастить команды. будьте чуть внимательнее и все у вас получится)

Спасибо за статью.
Вместо ices0 можно использовать уже готовые пакеты ices-cc ( http://www.centova.com/pages/icescc ) или ezstream (есть в репозитарии).

Читайте также:  Как на windows phone установить apk файл

DarkSoul, не знал, спасибо за ссылку!

у меня вот такая проблема…
набираю /etc/init.d/icecast2 start и у меня вылетает:

Starting icecast2: Starting icecast2
Detaching from the console
Server startup failed. Exiting
icecast2.

читал…
переустанавливал заного, делал по другим манам, все одно и тоже. всегда при запуске вылетает эта ошибка
что делать не знаю 🙁 подскажите, в чём может быть проблема…

Проблему решил. Просто изменил порт на 8080 вместо 8000
Но снова… При запуске Icecast вылетает:

Starting icecast2
Detaching from the console
Changed root successfully to «/usr/local/icecast».
Changed groupid to 126.
Changed userid to 1001.
FATAL: could not open error logging (/etc/icecast/logs/error.log): No such file or directory
FATAL: could not open access logging (/etc/icecast/logs/access.log): No such file or directory
FATAL: Could not start logging

Пробывал создавать файлы error.log и access.log — не помогает.
Помоги пожалуйста…

Попробуйте удалить логи из /etc/icecast/logs/
затем, установить владельца для этой директории именами пользователя и группы, от которых будет запускаться icecast2: chown icecast2:icecast /etc/icecast/logs/
и запустить снова.
И ещё, логи лучше хранить в /var/log/

невидит файлов вот логи
access.log
ip — — [07/Aug/2011:23:44:25 +0000] «GET /style.css HTTP/1.1» 200 5059$
ip — — [07/Aug/2011:23:44:25 +0000] «GET /corner_bottomleft.jpg HTTP/1$
ip — — [07/Aug/2011:23:44:26 +0000] «GET /corner_topleft.jpg HTTP/1.1″$
ip — — [07/Aug/2011:23:44:26 +0000] «GET /icecast.png HTTP/1.1» 200 51$
ip — — [07/Aug/2011:23:44:26 +0000] «GET /corner_topright.jpg HTTP/1.1$
ip — — [07/Aug/2011:23:44:26 +0000] «GET /corner_bottomright.jpg HTTP/$
ip — — [07/Aug/2011:23:44:34 +0000] «GET /icq.m3u HTTP/1.1» 200 81 «-«$
ip — — [07/Aug/2011:23:44:39 +0000] «GET /icq HTTP/1.1» 404 106 «-» «B$
ip — — [07/Aug/2011:23:44:40 +0000] «GET /icq HTTP/1.1» 404 106 «-» «N$
ip — — [07/Aug/2011:23:45:09 +0000] «GET /radio HTTP/1.0» 404 106 «-«$
ip — — [07/Aug/2011:23:45:14 +0000] «GET /radio HTTP/1.0» 404 106 «-«$
ip — — [07/Aug/2011:23:45:19 +0000] «GET /radio HTTP/1.0» 404 106 «-«$
ip — — [07/Aug/2011:23:45:20 +0000] «GET /radio HTTP/1.0» 404 106 «-«$

[2011-08-07 23:45:19] DBUG fserve/fserve_add_client Adding client to file serv$
[2011-08-07 23:45:19] DBUG stats/modify_node_event update node clients (1)
[2011-08-07 23:45:19] DBUG stats/modify_node_event update node connections (47)
[2011-08-07 23:45:19] DBUG stats/modify_node_event update node client_connecti$
[2011-08-07 23:45:19] DBUG stats/modify_node_event update node clients (0)
[2011-08-07 23:45:20] DBUG stats/modify_node_event update node clients (1)
[2011-08-07 23:45:20] DBUG stats/modify_node_event update node connections (48)
[2011-08-07 23:45:20] INFO fserve/fserve_client_create checking for file /radi$
[2011-08-07 23:45:20] WARN fserve/fserve_client_create req for file «/usr/shar$
[2011-08-07 23:45:20] DBUG fserve/fserve_add_client Adding client to file serv$
[2011-08-07 23:45:20] DBUG stats/modify_node_event update node client_connecti$
[2011-08-07 23:45:20] DBUG stats/modify_node_event update node clients (0)
[2011-08-07 23:46:24] DBUG slave/_slave_thread checking master stream list
[2011-08-07 23:48:25] DBUG slave/_slave_thread checking master stream list
[2011-08-07 23:50:25] DBUG slave/_slave_thread checking master stream list

Большое спасибо за статью.
Как раз возникла идея поднять автодиджея на сервере вместо ретрансляции радио, хоть буду знать, с чего начинать копать по настройке ices.

Еще раз доброе.
Подскажите, ка реализовать проигрывание музыки из определенного каталога без пересоздания плэйлиста.
Вычитал, что нужен скрипт, который будет выдавать на выход имя файла из каталога, но проблема его написать.
Заранее спасибо!

Артем, я с помощью cron раз в сутки обновляю плейлист, так как директория с треками постоянно обновляется пользователями.
И что главное, ices не надо каждый раз перезапускать, он сам подхватывает обновлённый файл плейлиста 🙂

Спасибо за ответ, но нашел еще один вариант:
Еще при конфигурировании сборки ices указать строку:
./configure —with-perl —with-lame
Тогда в файле ices.conf
можно указать следующе6:

playlist.txt
1
perl
ices

А в /usr/local/etc/modules/ положить файл ices.pm, в котором уже и писать скрипт выборки файлов из нужной папки.
Но все равно спасибо, т.к. начинал всё с Вашего сайта.

Следующий вопрос: как на этот же поток, где вещает ices получить возможность иногда подключаться ведущему станции?
Что-то у меня с этими настройками не выходит. И возможно ли такое вообще?

Подскажите выполняю команду apt-get update в конце выдает:

W: GPG error: http://mirror.yandex.ru lenny Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 07DC563D1F41B907
W: GPG error: http://ftp.uk.debian.org lenny Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY AED4B06F473041FA
W: GPG error: http://ftp.us.debian.org lenny Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY AED4B06F473041FA
W: Вы можете запустить ‘apt-get update’ для исправления этих ошибок

Повторяю apt-get update толка нет, что сделать?

Александр, а причём тут Icecast? Обновите цифровые подписи:

Starting icecast2: Starting icecast2
Detaching from the console
[2011-12-18 19:25:27] WARN cfgfile/parse_xml_tags unknown element «threadpool» parsing «limits» at line 5
[2011-12-18 19:25:27] WARN cfgfile/parse_xml_tags unknown element «burst-on-connect» parsing «limits» at line 10
WARNING: Can’t change user id unless you are root.
icecast2.

Читайте также:  Видео как установить вариатор сафари на буран

При запуске пишет вот что (как исправить?)

Никита, написано же, не запускать под root.

теги убрало по правте
секция секюрети

узер и грппа icecast

Подскажите. Все установил и запустил, но при запуске через плеер ругается.
Code: 2 (00000002)
Message: Can’t open the file
————————-
HTTP/1.0 404 Not Available
Content-Type: text/html

Скажите, как поставить ices в автозапуск?

Пропишите в /etc/rc.local строчку запуска.

Приветствую
Сделал всё по указанному тексту, но все равно что-то не так.
Вот вопросы:
1) Добавляю плейлист в винамп и получаю 404. В логе:
[2012-05-18 13:46:58] INFO fserve/fserve_client_create checking for file /radio (/usr/share/icecast2/web/radio)
[2012-05-18 13:46:58] WARN fserve/fserve_client_create req for file «/usr/share/icecast2/web/radio» No such file or directory
Ну да, этой директории там нет. А почему он к ней обращается и что там должно быть?

2) Как понять, запущено у меня на сервере радио или нет? icecast стартует норм, а вот запуск ices проходит молча и я без понятия, заработало ли оно вообще.

3) Что означают все параметры командной строки у ices? Где это можно посмотреть/узнать? Нужны ли они все?

Отвечаю =)
1. Физической директории там такой конечно не будет, но когда запущен ices, то icecast обращается к ices через эти точки монтирования (mount points).
2. Проверить наличие запущенного процесса можно командой в консоли:
ps ax | grep ices
3. командой
ices —help

ps ax показывает
16007 pts/0 S+ 0:00 grep ices

Но при этом ices –help
-bash: ices: command not found

Пересобрал снова ices, теперь помощь показывает.
Но всё равно не запускается. В логах та же ошибка.
Кому должны принадлежать все папки?

У меня сделано так, чтобы человек мог по фтп загружать файлы и обновлять плейлист(он там же лежит). Но фтп принадлежит другому пользователю. Я его добавил в группу icecast. Права поставил 777 и 666 на всякий случай. Что я мог здесь упустить?

Надеюсь, что вы запускаете icecast и ices не под root?
В идеале, надо завести отдельного пользователя под которым и запускать эти сервисы. Соответственно назначить владельцем директорий с логами и прочим.

не подскажите через какое время ices подхватывает обновленный playlist.

Увы, как выяснилось позже, он его автоматом не подхватывает 🙁
Для этого, как минимум, необходимо перезапускать процесс ices.

Мне на днях пришла в голову мысль попробовать запустить у нас в городе по локальной сети своё онлайн радио.
Есть icecast-2.3.3, но в папке нету ни какого ярлыка для запуска….
Можно описать пошагово и по подробнее его запуск?
Вы пишете что надо запускать командой…
Как и куда эту команду вводить не понятно….
И большая часть написанного в вашей статье предназначена для людей, соображающих в этом.
Сделайте мануал для чайников.
Простым и доступным языком, без всяких заумных словечек, пожалуйста. =)

Вместо(е) libmp3lame0 используйте libmp3lame0-dev

спсибо за инструкцию, всё завелось с первого раза на debian sid

Во первых хочу поблагодарить автора за такую хорошую статью
Во вторых хочу снести ices0 и воткнуть ezstream… как сделать снос наиболее грамотно?

Спасибо 🙂
Сносить ices0 в обратном порядке его установке. Если остался каталог, откуда устанавливался ices0, то можно выполнить в нём:
make uninstall

либо вручную поудалять
/usr/local/bin/ices
/usr/local/doc/ices/
/usr/local/etc/ices.*
/usr/local/etc/modules/ices.*
/usr/local/share/man/man1/ices.1

ага, крутяк потер с make uninstall я чтот продутил да… на самом деле…
ezstream чет не хочет пока у меня работать…
да и статью я бы обновил для wheezy

вот от меня небольшие правки что я бы упростил:
deb http://mirror.yandex.ru/debian-multimedia/ wheezy main
deb http://www.deb-multimedia.org wheezy main non-free
(не знаю какой адекватнее, я добавил оба)

apt-get install deb-multimedia-keyring
apt-get update
apt-get install icecast2 ezstream lame libmp3lame0 libmp3lame-dev

Потрясно, сделал c ezstream он у меня ещё и кодит в нужный битерейт на лету и в репках он есть!
фундаментальный косяк вашего icecast2 конфига это то что не прописана точка монтирования аудио потока… поэтому в зависимости от версии если повезёт то icecast пытается делать стандартную точку /ices… а как по вашему конфигу её ices0 находит эту точку я вообще не понял…

карочи я сделал себе музыкальную коробку… щас только cron напишу на find мптришек при добавлении… только я пока так и не понял ezstream перепрочитывает при добавлении треков плейлист или он делает это один раз во время загрузки…

В моём случае, точку монтирования задаёт не icecast, а ices0 (запуск ices0 с параметрами). Всё один в один как написано в исходной статье работает тут: http://siava.ru:8000/

Благодарю… и вам ещё раз спасибо за хороший тутор

Можно ещё вопрос… вы скручивали icecast с каким либо веб-плеером… если да то с каким и из чего выбирали?

Читайте также:  Как установить фон на сайт ucoz

Поток отлично воспроизводится тем же uppod и многими flash-mp3 плеерами.

неее от конструкторского кода никакого профита… есть дикая мысль прикрутить webgl плеер… но пока исчу… в общем если есть идеи по скрутке на js+html5 если ещё и с дикой анимацией то вообще крутата

В вашем случае пользователи сети выходят в интернет через шлюз провайдера под одним IP адресом (используют NAT). В таком случае, доступа снаружи к вашему серверу не будет (только внутри сети провайдера). Необходим выделенный IP адрес.

Приветствую!
Проверьте конфиг-файл icecast2, возможно где-то синтаксическая ошибка. Ну там незакрытая скобка или ещё что-нибудь закралось при редактировании.

Источник

Инструкция по установке и настройке Icecast и Ices под Linux (Страница 1 из 7)

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений с 1 по 25 из 175

1 Тема от Henk 16-12-2007 22:56:23

Тема: Инструкция по установке и настройке Icecast и Ices под Linux

Что же такое IceCast? Это сервер потокового вещания, поддерживающий mp3 и ogg форматы.

библиотеки:
libshout-2.2.2
libmp3lame-3.97

В этом примере будет рассмотрена связка из IceCast-2.3.1 и ices-0.4, так как будем использовать mp3-аудиопоток.

С curl’ом пришлось повозиться. Оказалось, что с новым curl-7.16.2 IceCast отказался собираться, поэтому я использовал curl-7.15.5.

IceCast и всё необходимое для его работы мы установили.

Для начала создадим пользователя и группу от имени которых будет работать IceCast:

Создадим некоторые каталоги:

# mkdir /home/icecast/admin
# mkdir /home/icecast/logs
# chown icecast:icecast /home/icecast/logs
# mkdir /home/icecast/web

Скопируем файлы:
из /usr/local/share/icecast/admin в /home/icecast/admin
из /usr/local/share/icecast/web в /home/icecast/web

Скопируем /usr/local/share/icecast/doc/icecast.xml.dist в /usr/local/etc/icecast.xml
и изменим его содержимое следующим образом:
Код:

Ограничим доступ к конфигу IceCast (тк он содержит пароли):

# chown root:root /usr/local/etc/icecast.xml
# chmod 640 /usr/local/etc/icecast.xml

Запустим IceCast сервер:

Теперь можно зайти на веб-интерфейс по адресам:
http://localhost:8000/ (статус сервера), и
http://localhost:8000/admin/ (интерфейс администратора).

После установки ices в каталоге /usr/local/etc/ должен быть файл ices.conf.dist
Скопируем его в /usr/local/etc/ices.conf и отредактируем:
Код:

/test
Default stream
Default genre
Default description
http://localhost:8000/test

Ограничим доступ к /usr/local/etc/ices.conf:

# chmod 640 /usr/local/etc/ices.conf

Пусть у нас есть директория /media/music с несколькими mp3 файлами.
Создадим playlist для этой директории:

# cd /media/music
# ls > playlist.txt

По адресу http://localhost:8000/test должна играть ваша музыка

Для организации нескольких каналов музыки используйте возможности командной строки ices, например:

таким образом, будут организованы 2 канала с музыкой.

Ну и конечно же, неплохо сделать так, чтобы ices запускался не под root’ом, как в примерах выше. Для этого можно завести отдельного пользователя, либо использовать пользователя icecast. Строка запуска ices немного изменится:

Всё представленное выше работает на данном сервере по адресу: http://siava.ru:8000
Спасибо за внимание, надеюсь, статья кому-нибудь будет полезна. © Siava.Ru

Отредактировано tarasian666 (07-03-2011 20:55:00)

Источник

Инструкция по установке и настройке Icecast и Ices под Linux (Страница 1 из 7)

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений с 1 по 25 из 175

1 Тема от Henk 16-12-2007 22:56:23

Тема: Инструкция по установке и настройке Icecast и Ices под Linux

Что же такое IceCast? Это сервер потокового вещания, поддерживающий mp3 и ogg форматы.

библиотеки:
libshout-2.2.2
libmp3lame-3.97

В этом примере будет рассмотрена связка из IceCast-2.3.1 и ices-0.4, так как будем использовать mp3-аудиопоток.

С curl’ом пришлось повозиться. Оказалось, что с новым curl-7.16.2 IceCast отказался собираться, поэтому я использовал curl-7.15.5.

IceCast и всё необходимое для его работы мы установили.

Для начала создадим пользователя и группу от имени которых будет работать IceCast:

Создадим некоторые каталоги:

# mkdir /home/icecast/admin
# mkdir /home/icecast/logs
# chown icecast:icecast /home/icecast/logs
# mkdir /home/icecast/web

Скопируем файлы:
из /usr/local/share/icecast/admin в /home/icecast/admin
из /usr/local/share/icecast/web в /home/icecast/web

Скопируем /usr/local/share/icecast/doc/icecast.xml.dist в /usr/local/etc/icecast.xml
и изменим его содержимое следующим образом:
Код:

Ограничим доступ к конфигу IceCast (тк он содержит пароли):

# chown root:root /usr/local/etc/icecast.xml
# chmod 640 /usr/local/etc/icecast.xml

Запустим IceCast сервер:

Теперь можно зайти на веб-интерфейс по адресам:
http://localhost:8000/ (статус сервера), и
http://localhost:8000/admin/ (интерфейс администратора).

После установки ices в каталоге /usr/local/etc/ должен быть файл ices.conf.dist
Скопируем его в /usr/local/etc/ices.conf и отредактируем:
Код:

/test
Default stream
Default genre
Default description
http://localhost:8000/test

Ограничим доступ к /usr/local/etc/ices.conf:

# chmod 640 /usr/local/etc/ices.conf

Пусть у нас есть директория /media/music с несколькими mp3 файлами.
Создадим playlist для этой директории:

# cd /media/music
# ls > playlist.txt

По адресу http://localhost:8000/test должна играть ваша музыка

Для организации нескольких каналов музыки используйте возможности командной строки ices, например:

таким образом, будут организованы 2 канала с музыкой.

Ну и конечно же, неплохо сделать так, чтобы ices запускался не под root’ом, как в примерах выше. Для этого можно завести отдельного пользователя, либо использовать пользователя icecast. Строка запуска ices немного изменится:

Всё представленное выше работает на данном сервере по адресу: http://siava.ru:8000
Спасибо за внимание, надеюсь, статья кому-нибудь будет полезна. © Siava.Ru

Отредактировано tarasian666 (07-03-2011 20:55:00)

Источник

Поделиться с друзьями
Adblock
detector