Видео смотреть бесплатно

Смотреть русское видео

Официальный сайт physbook 24/7/365

Смотреть видео бесплатно

14.02.10 05:02 dementiy

How-to`smpd + icecast2 = интернет-радио

Хочу рассказать, каким образом можно поднять у себя дома небольшую радиостанцию. Для этого нам потребуется icecast2 и mpd.
Что такое mpd? Вот определение из Wiki: «MPD — музыкальный проигрыватель с клиент-серверной архитектурой, который читает музыку из указанного каталога, а при помощи клиента можно управлять воспроизведением».

Для того, чтобы установить mpd, необходимо выполнить следующую команду (на примере Ubuntu):

sudo apt-get install mpd

Теперь его необходимо настроить. Конфигурационный файл находится в /etc/mpd.conf. Откроем его для редактирования от пользователя root:

sudo gedit /etc/mpd.conf

Приведу свой пример конфигурации:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
######################## 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 (номер процесса) mpd
state_file              "$HOME/mpd/state"               #некоторая информация о текущем состоянии mpd:
                                                        #громкость, повторение песен, плейлист и т.д.

######################## DAEMON OPTIONS ########################
user                            "dimm"                  #пользователь, который имеет доступ к mpd
bind_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"             #адрес, на котором работает icecast2
        port                    "8000"                  #№ порта, на котором работает icecast2
        mount                   "/stream.ogg"           #точка монтирования потока на сервере icecast2
        password                "hackme"                #пароль, который будет задан в icecast2
        quality                 "5.0"                   #если указываем quality, то не указываем bitrate
#       bitrate                 "64"                    #и наоборот
        format                  "44100:16:1"            #частота:бит_на_семпл:количество каналов (1/2)
        user                    "source"                # optional
        description             "Dementiy Stream"       #описание потока
        genre                   "electronic"            #жанр
        public                  "no"                    # optional
        timeout                 "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.).

dc4863cb3179c38e4f3c05d5d54c9271.jpeg
Рис.1. Консольный клиент для mpd - ncmpc

Теперь перейдем к icecast2. Из 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 довольно хорошо прокомментированы, но все же, перед внесением изменений сделайте их резервные копии):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<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 произвести следующие изменения:

1
2
CONFIGFILE="$HOME/icecast/icecast.xml"
ENABLE=true

Теперь все готово, чтобы запустить icecast2, выполняем:

sudo /etc/init.d/icecast2 start

Набираем в браузере http://127.0.0.1:8000/ и мы должны увидеть примерно следующее:

6de960d0b4ca92a342237bcaf32dc24f.jpeg

Как минимум мы теперь знаем о том, что icecast2 работает. Теперь перезапускаем mpd и открываем любую композицию (если вы устанавливали ncmpc, то его можно запустить следующим образом: ncmpc --host=127.0.0.1 --port=6600). В icecast2 заходим в пункт «Administration» (нас попросят ввести login и password), там на первой же «вкладке» (Admin Home) после «Global Server Stats» будет информация о смонтированном потоке:

baee0962f633bbaa2b91e34193556d1a.jpeg

Вот и все, осталось только рассказать своим знакомым, что у вас есть своя интернет-радиостанция, к которой они могут обратиться по адресу http://your_ip_address:8000/stream.ogg.m3u

P.S. Не хотелось углубляться в настройки, целью было поднять mpd + icecast2 с минимальной рабочей конфигурацией (тем более про настройку mpd было уже довольно много сказано, хотя бы тут и тут), от которой в дальнейшем можно было бы шагать. И еще pdf c текстом поста.
P.P.S. Уже по теме кое-что было.



booley 14.02.10 06:39 # +0
Плюсую, почти также настроил mpd буквально на днях :)

А слушать можно в VLC (даже под offtopic).
Правда чтобы рулить плеером все равно нужен mpc (любой из зоопарка). Под злостный оффтопик есть Ario и gmpc (ЕМНИП).

Только это не радиостанция, а потокое вещание. Ибо нет передач, если конечно не записывать отдельно. (кстати, может кто напишет статейку по ardour+jack?)
booley 14.02.10 06:49 # +0
Кстати, совсем забыл. Типа постскриптум:
http://farrias.tomsk.ru:8000/mpd.ogg.m3u - это мой mpd :D
ko10ok 14.02.10 06:54 # +0
"ÐимовÑе ÐвеÑей" эммм .. эт амарок мне травит, что поделать?
booley 14.02.10 07:00 # +0
Хм, какая у вас кодировка в амароке по умолчанию?

VLC спокойно отображает, что это всего лишь "Зимовье Зверей" :)
ko10ok 14.02.10 07:07 # +0
амарооке только утф-8 отборный жрет у мменя... =)
booley 14.02.10 07:10 # +0
Хм, я даже не задумывался, какая там кодировка :)

Когда приду к тому компу, гляну.
ko10ok 14.02.10 07:18 # +0
А у меня вот так всегда без испатчканного taglib ><
Все локальную коллекцию переконвертил в УТФ8 чтоб не мучиться
booley 14.02.10 07:33 # +0
Вы сподвигли меня на бравый подвиг - перекодировать все эти 50Gb в UTF-8.

Только это будет не быстро. Постараюсь в начале русскоязычных, затем иностранных, а затем уже и дискографию Эннио Морриконе. :)
ko10ok 14.02.10 07:46 # +0
Возможно, если они в каком нить цп1251, то мпд пытается прочитать их как утф8 что и приводит к сему.
Не горячитесь, попробуйте на альбомчике...

ЗЫ установк таглиб-рцц не особа помогло. >< "Хеппи-поÑÑ"
ko10ok 14.02.10 07:53 # +0
Ну почему амарок не хочет по нормальному ><
Как IE, ну ейбогу! =(

Name : My Cool Stream
Public : yes
Cache size set to 320 KBytes
Cache fill: 17.50% (57344 bytes)
[Ogg] stream 0: audio (Vorbis), -aid 0
Ogg file format detected.
Clip info:
Artist: Зимовье Зверей
Title: Медвежий блюз
Album: Города, которых не стало
Creation Date: 1995
Genre: Rock


Приношу извинения за него >
booley 14.02.10 07:58 # +0
Не только амарок тупит: XSPF-валидатор кажет такие же кракозяблы.
1   <?xml version="1.0" encoding="UTF-8"?>
2  
3     
4     
5     
6       
7         http://farrias.tomsk.ru:8000/mpd.ogg
8         Ðдриан Ð¸ ÐлекÑандр
9         Ð“ородÑкаѠбаллада
10         Stream Title: My Cool Stream
11   Stream Description: My Stream Description
12   Content Type:application/ogg
13   Quality: 5.00
14   Current Listeners: 2
15   Peak Listeners: 2
16   Stream Genre: various
17       
18     
19  

А значит дело в mpd и коллекции :)
ko10ok 14.02.10 08:04 # +0
Вы думаете что влц и мплеер настолько круты, чтобы распутать кафарное хитросплетение кодировок. ^^
booley 14.02.10 08:35 # +0
Ну... вместе у них получается :)
dementiy 14.02.10 11:10 # +0
Да, это потоковое вещание. Но ведь можно звук подавать и с микрофона или нет? Тогда отличий от интрнет-радиостанции было бы не так много.
booley 14.02.10 11:16 # +0
В MPD? Не знаю точно, но мне кажется что нет.

(можно записывать отдельно и пускать в режиме трека в mpd).

А в IceCast думаю, что конечно. Ему без разницы, откуда контент идет, главное чтобы шел.
dementiy 14.02.10 11:27 # +0
Я конечно же про icecast говорил.

Интересное дело. Настраивал icecast2 + darkice. Не работал darkice, все время с ошибкой вылетал (что-то вроде Darkice.cpp: 1140 can't ... connector [0]). Я и так и сяк крутил конфиг - безрезультатно. А проснувшись утром вижу, что все работает. Как так? Linux все чаще удивляет =)
booley 14.02.10 11:30 # +0
Самозалечивающаяся система =)
what is darkice?
dementiy 14.02.10 11:38 # +0
Darkice подхватывает звук с заданного устройства и посылает на указанный сервер. То есть от mpd можно отказаться.
booley 14.02.10 11:49 # +0
Хитрый план, отказаться от mpd. :D Кто же будет музыку играть?

Тут надо бы заюзать и мпд, и даркайс, связав все это через jack.

То есть идет музыка через мпд, но вот мы переключаем на даркайс, вот обратно. Сумбурно, да :)
dementiy 14.02.10 11:52 # +0
В смсыле кто будет музыку играть? Любой проигрыватель установленный в системе, darkice подхватывает и посылает на сервер (icecast)
booley 14.02.10 11:58 # +0
Мне просто из всех аудиоплееров под Linux импонирует mpd. (под оффтопиком - foobar2000). =)

И к тому же mpd - демон, что есть гуд - радиостанция не будет зависеть от того, запущены ли иксы.
booley 14.02.10 09:54 # +0
Интересено, где проходит грань между "чтобы слушать удаленно mpd" и "интернет-радио".
stogerc 14.02.10 11:19 # +0
Если не хочется мучатся с запоминанием ip или быть может у кого-то ip динамический, настройте себе dyndns и имейте своё радио по адресу http://mydomen.ath.cx:8000/, вообще иметь свой домен на динамическом ip очень приятно, ведь можно удобно подключаться по ssh, можно настроить веб-интерфейс к торрентам и т.д.
booley 14.02.10 11:21 # +0
Хехей, а в моем уютном fibrenet статический айпи и восьмимегабитный анлим ^^
stogerc 14.02.10 11:25 # +0
А в моём замечательном городе всего один провайдер и 256 кбит стоят 20$ =(
booley 14.02.10 11:29 # +0
Мой месяц интернетного счастья стоит 650 рублей России.
x0x01 15.02.10 10:45 # +0
а вы не в курсе что достаточно
audio_output {
type "httpd"
name "mpd music"
encoder "vorbis"
port "8000"
quality "6.0"
format "44100:16:2"
}
в конфиге? версия mpd 0.15.5
dementiy 15.02.10 11:18 # +0
У меня версия mpd 0.14, а эта возможность доступна только с 0.15.
dementiy 15.02.10 11:27 # +0
И вот Вам еще такой вопрос (может проверяли). А поддерживает ли он несколько потоков и "чужие" потоки?
x0x01 15.02.10 11:30 # +0
несколько - да, с разными конфигами, если под чужими понимается другие онлайн потоки - да умеет, снимаю наше радио ежедневно
HTaeD 15.02.10 11:42 # +0
Спасибо. Хоть у меня и 0.15.8, но бо этом не знал.

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 141)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2845 из 215 городов)
            Топ пользователей Топ блогов
            welinux.ru

            Смотреть видео онлайн

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн