Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> WWW —> mod_mp3

Сетевое радио - mod_mp3 к apache1.3

Автор: lissyara.


    Нашёл в портах интересный модуль mod_mp3 - позволяет сделать из апача сетевую радиостанцию. Причём не тупо вещщающую по списку, а несколько, индивидуально, чтоль... Короче если песня не нравится - жмёшь в ВинАмпе кнопку "следующий" - и он играет следующую :) Удобно. Я себе дома привернул - лень перестраивать список воспроизведения, если что-то добавиться-убавиться, при перезапуска апача сам заново построится :)
   Ставим из портов. В портах, на данный момент, представлена версия 0.4 - хотя на сайте разработчика можно взять нестабильную 1.2. Я ставил из портов.
/usr/home/lissyara/>cd /usr/ports/
/usr/ports/>make search name='mod_mp3'
Port:   mod_mp3-0.40
Path:   /usr/ports/www/mod_mp3
Info:   Apache module to allow MP3 streaming
Maint:  apache@FreeBSD.org
B-deps: apache-1.3.34_3 expat-1.95.8_3 perl-5.8.7_2
R-deps: apache-1.3.34_3 expat-1.95.8_3 perl-5.8.7_2
WWW:    http://tangent.org/index.pl?lastnode_id=478&node_id=380

/usr/ports/>cd /usr/ports/www/mod_mp3
/usr/ports/www/mod_mp3/>make && make install && make clean
.............................
************************************************************
You've installed mod_mp3, a MP3 streaming module for Apache.

Edit your apache.conf or httpd.conf to enable and setup this
module. Have a look at the files in
${PREFIX}/share/doc/mod_mp3 for information on how to
configure it etc.

Then do this to make it work effective:

# apachectl configtest (see if there are any config errors)
# apachectl restart

************************************************************
/usr/ports/www/mod_mp3/>

Очень советую почитать документацию по программе, идущую в комплекте, особенно FAQ - там несколько толковых примеров. После осмыслении доков раскомментируем в /usr/local/etc/apache/httpd.conf следующие строки:

LoadModule mp3_module         libexec/apache/mod_mp3.so
AddModule mod_mp3.c

и туда же добавляем ещё один виртуальный хост (наскока я понял - не обязательно прям уникальное имя, можно обойтись виртуальным хостом на нестандартном порту - но я изгаляться не стал):

####### модуль mod_mp3 #######
<VirtualHost *:80>
    # Имя сервера (если обратиться не по имени - не подконнектится...)
    # звёздочка - значит любое.
    ServerName muzik.lissyara.su
    # Админ сервера - если будет ошибка то выводится этот адрес
    ServerAdmin admin@lissyara.su
    # Куда, собственно пишем ошибки сервера
    ErrorLog /var/log/httpd-error.log
<IfModule mod_mp3.c>
    # Исчо не знаю чё такое
    #SetEnvIfNoCase User-Agent mozilla is_a_browser
    # Собственно, включен или выключен (On/Off) модуль mp3
    MP3Engine On
    # Количество одновременных коннектов при воспроизведении
    # музона. В оригинальной доке даже правило приводится, как
    # его правильно рассчитать, в зависимости от ширины канала.
    MP3LimitPlayConnections 4
    # Имя Радиостанции (если слушать из-под форточек - 
    # надо чтобы было в кодировке cp1251, я извратился так:
    # echo 'Вы слушаете радиостанцию \"Эхо унитазного бачка...\"' \
    # | iconv -f koi8-r -t cp1251 >> httpd.conf
    # ну а внутри httpd.conf переместил куда надо в Midnight Commander)
    MP3CastName "Вы слушаете радиостанцию \"Эхо унитазного бачка...\""
    # Тип радио (классика, рок, попса...)
    MP3Genre "Тока RAMMS+EIN"
    # Апач шерстит нижеуказанную директорию, составляет список
    # всех композиций (рекурсивно) и воспроизводит их
    MP3 "/usr/local/smb/movie/muzik/"
    # Плэйлист - у меня так и не получилось чтоб с ним заработал
    #MP3Playlist /usr/home/lissyara/playlist.txt
    # Какой-то режим, наскока я понял - позволяет прилеплять
    # комменты к композициям - тоже не пошло...
    # MP3Stream On
    # Случайное воспроизведение
    MP3Random On
    # Если эту опцию раскомментировать то показывается список
    # всех треков на сервере, и у посетителя есть выбор - какую
    # песню слушать, или слушать весь список...
    # MP3DefaultOperation       select
</IfModule>
</VirtualHost>

Насчёт виртуальных хостов, если будете делать как-то иначе - советую посмотреть документацию по apache. Там всё толково разжёвано. Перезапускаем апач:
/usr/local/etc/apache/>/usr/local/etc/rc.d/apache.sh restart
Stopping apache.
Waiting for PIDS: 22982.
Starting apache.
/usr/local/etc/apache/>ps -ax | grep httpd
27508  ??  Ds     0:02,85 /usr/local/sbin/httpd
27685  p0  S+     0:00,02 grep httpd
/usr/local/etc/apache/>

И по адресу и порту указанному в настройках слушаем музыку :) Надо сразу отметить - если музыки в указанной директории много (у меня 13Gb, 2500 файлов) то запуск апача займёт некоторое время - ему же надо пройтись по всем директориям и составить список. Опять-таки у меня, с тем количеством файлов, что указано, на AMD K6-II 550MHz на запуск уходит секунд 30. Ещё столько же после этого он чё-то делает и только после этого начинает играть музыка. Загрузка проца сервера не очень большая - на моей машине это было 1-2% на каждого клиента. Копейки.
Также учтите - пользователь www должен иметь право доступа к музыке - хотя б чтение. Впрочем, если Вы специально не ограничивали права на диркторию и музыкальные файлы - всё должно быть пучком.

Косяки: Если файл с "интересным" бирейтом, типа 135 и подобное, не кратное двум, то воспроизводится он вдвое быстрей чем положено :)



размещено: 2006-02-11,
последнее обновление: 2006-02-13,
автор: lissyara


B.R@ven, 2006-02-26 в 12:09:23

у меня почему-то пишет
httpd: Syntax error on line 101 of /usr/local/etc/apache22/httpd.conf: Cannot load /usr/local/libexec/apache22/mod_mp3.so into server: /usr/local/libexec/apache
22/mod_mp3.so: Undefined symbol "ap_null_cleanup"

B.R@ven, 2006-02-26 в 15:13:16

удалил апач
дал моду самому поставить 1.3.34 и все встало

Andoriyu, 2007-03-30 в 19:06:47

не собирается из портов и из сорцов с сайта :(

HOSTER, 2007-07-14 в 19:21:36

Круто Правда жаль что URL не воспроизводит!!)) :)

Clamath, 2008-06-10 в 12:59:17

# Какой-то режим, наскока я понял - позволяет прилеплять
   # комменты к композициям - тоже не пошло...
   # MP3Stream On

MP3Stream
   I am not useable yet.
Оно и не должно идти ))).

   # MP3DefaultOperation       select
Довольно интересная опция. Мне понравилась, но если она включена, тогда винамп не понимает url

Clamath, 2008-06-10 в 14:49:16

# Какой-то режим, наскока я понял - позволяет прилеплять
   # комменты к композициям - тоже не пошло...
   # MP3Stream On

MP3Stream
   I am not useable yet.
Оно и не должно идти ))).

   # MP3DefaultOperation       select
Довольно интересная опция. Мне понравилась, но если она включена, тогда винамп не понимает url

Clamath, 2008-06-10 в 14:51:36

Мдя.... "хорошо" работает корпоративная прокся, кстати на сквиде  ((((

Igorka(:, 2008-06-21 в 0:50:00

Хорош!
Только цпу жрет нормально, когда много юзверей накидается ...

rbI}I{bIy, 2011-10-08 в 21:06:23

Такой вопрос уважаемый lissyara - а к апачу2.2 можно прикрутить? или именно надо 1.3?



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0453 секунд
Из них PHP: 27%; SQL: 73%; Число SQL-запросов: 77 шт.
Исходный размер: 25556; Сжатая: 7382