Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
2Activity
0 of .
Results for:
No results containing your search query
P. 1
Mpd + Icecast2

Mpd + Icecast2

Ratings: (0)|Views: 904 |Likes:
Published by Dmitriy

More info:

Published by: Dmitriy on Feb 14, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/13/2010

pdf

text

original

 
Хочу рассказать, каким образом можно поднять у себя дома небольшуюрадиостанцию. Для этого нам потребуется
icecast2
и
mpd
.Что такое mpd (http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki)? Вотопределение из Wiki: «MPD — музыкальный проигрыватель с клиент-сервернойархитектурой, который читает музыку из указанного каталога, а при помощи клиентаможно управлять воспроизведением».Для того, чтобы установить mpd, необходимо выполнить следующую команду (напримере Ubuntu):
sudo apt-get install mpd
Теперь его необходимо настроить. Конфигурационный файл находится в
/etc/mpd.conf
. Откроем его для редактирования от root'ового пользователя:
sudo gedit /etc/mpd.conf
Приведу свой пример конфигурации:
 ######################## REQUIRED PATHS ######################## music_directory"/path_to_music"#путь к каталогу с вашей музыкойplaylist_directory"$HOME/mpd/playlists"#папка, где хранятся playlist'ыdb_file"$HOME/mpd/tag_cache"#tag_cache содержит информацию о композицияхlog_file"$HOME/mpd/mpd.log"error_file"$HOME/mpd/errors.log" ######################## OPTIONAL PATHS ########################pid_file"$HOME/mpd/pid"#pid (номер процесса) mpstate_file"$HOME/mpd/state"#некоторая информация о текущем состоянии mpd: #громкость, повторение песен, плейлист и т.д. ######################## DAEMON OPTIONS ########################user "dimm"#пользователь, который имеет доступ к mpbind_to_address "127.0.0.1"дрес, на котором будет работать mpd  #если у вас указано
localhost
, то из-за этого #могут быть
ошибки!
port "6600"#номер порта ########################## AUDIO OUTPUT ########################audio_output {type "shout"#указываем на то, что это ShoutCast серверencoding "ogg"#формат потокаname "Dementiy Shout"азвание потокаhost "127.0.0.1"#адрес, на котором работает icecast2port "8000"#порта, на котором работает icecast2mount "/stream.ogg"очка монтирования потока на сервере icecast2password "hackme"#пароль, который будет задан в icecast2quality "5.0"#если указываем quality, то
не указываем 
bitrate # bitrate "64"#и наоборотformat "44100:16:1"астотаита_семпл:количество каналов (1/2)user "source"# optionaldescription "Dementiy Stream"#описание потокаgenre "electronic"#жанрpublic "no"# optionaltimeout "2"# optional }audio_output {type "pulse"#я использую PulseAudio, если вы используете к #примеру alsa или oss, то и тип устроваства #соответственно будет "alsa" или "oss"name "My Pulse Output" } mixer_type "software"пять же мой выбор был обоснован использованием  #PulseAudio, в противном случае используйте alsa ###################### CHARACTER ENCODINGS #####################filesystem_charset "UTF-8"id3v1_encoding "UTF-8" ######################### OTHER OPTIONS ######################## metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" ################################################################
 
*если оставить только секцию
"
shout", то вы не сможете слышать музыку, которая*играет в данный моментИтак, сохранив настройки создаем базу с нашей коллекцией музыки:
sudo /etc/init.d/mpd start-create-db
*на более старых версиях проигрывателя был префикс
--create-db
Теперь осталось только запустить mpd:
sudo /etc/init.d/mpd start
Для управления mpd можно поставить какой-либо клиент, коих довольно много,например Sonata (gtk) или ncmpc (console, рис 1.).Рис.1. Консольный клиент для mpd - ncmpcТеперь перейдем к icecast2 (http://www.icecast.org/). Из Wiki: «Icecast —свободное ПО для организации потокового цифрового аудиовещания». Для егоустановки выполняем следующую команду:
sudo apt-get install icecast2
Настройки хранятся в
/etc/icecast2/icecast.xml
. Я выбрал для себя такойпуть, создать в домашнем каталоге папку icecast2, в которой будут храниться всенастройки, следовательно надо скопировать все файлы из /etc/icecast2 в эту папкуи выставить на нее права: 
sudo chown -R icecast2:icecast $HOME/icecast2
Далее открываем файл icecast.xml:
sudo gedit ~/icecast2/icecast.xml
Приведу изменения по сравнению с конфигурацией по умолчанию (mpd.conf и
 
icecast.xml довольно хорошо прокомментированы, но все же, перед внесениемизменений сделайте их резервные копии):
<icecast>...<authentication><!-- Этот пароль должен совпадать с паролем выставленным в mpd.conf --><source-password>
hackme
</source-password><relay-password>hackme_relay</relay-password><!-- Логин и пароль для доступа к интерфейсу администратора --><admin-user>admin</admin-user><admin-password>admin_password</admin-password></authentication><!-- Хост и порт, на котором будет работать icecast2 --><hostname>
127.0.0.1
</hostname><listen-socket><port>
8000
</port></listen-socket><!-- «Точка» монтирования потока --><mount><mount-name>
/stream.ogg
</mount-name></mount> ...<!-- Пути к настройкам и интерфейсу icecast2 --><paths><basedir>$HOME/icecast2</basedir><logdir>$HOME/icecast2/log</logdir><webroot>$HOME/icecast2/web</webroot><adminroot>$HOME/icecast2/admin</adminroot><pidfile>$HOME/icecast2/icecast.pid</pidfile><alias source="/" dest="/status.xsl"/></paths>...</icecast>
Теперь, чтобы иметь возможность запускать его через /etc/init.d/icecast2,необходимо в файле /etc/default/icecast2 произвести следующие изменения:
CONFIGFILE="$HOME/icecast/icecast.xml"ENABLE=true
Теперь все готово, чтобы запустить icecast2, выполняем:
sudo /etc/init.d/icecast2 start
Набираем в браузереhttp://127.0.0.1:8000/и мы должны увидеть примерноследующее:

Activity (2)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->