Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Создайте в Linux свою собственную музыкальную интернет-радиостанцию с помощью Shoutcast

Оригинал: "Setup your own Internet music radio station using Shoutcast in Linux"
Автор: Daniel T
Дата публикации: 7 December, 2011
Перевод: Н.Ромоданов
Дата перевода: февраль 2012 г.

Помимо веб-сайта сервер, на котором расположен этот блог (блог с оригиналом статьи — прим.пер.), также ведет музыкальное интернет вещание. Вы видите кнопку "Listen Music" в правом верхнем углу главной страницы - http://danasmera.com:8000/listen.pls?sid=1 ? Все это работает на микроприложении веб сервиса AWS ec2, для которого не требуется больших затрат. Так как же превратить ваш общедоступный сервер в интернет-радио, которое будет доступно с персонального компьютера, ноутбука или мобильного телефона? Это очень просто, и самыми популярными решениями являются пакеты Ice cast и shoutcast. Ниже мы расскажем, как вы сможете настроить радиовещание в сети интернет с использованием пакета shoutcast.

1. Добавляем пользователя shoutcast

#useradd shoutcast 

или

#adduser shoutcast

и

cd /home/shoutcast

2. Загружаем пакет shoutcast

Перейдите по ссылке http://www.shoutcast.com/broadcast-tools и загрузите распределенный сетевой аудиосервер SHOUTcast Distributed Network Audio Server (DNAS).

#wget -c http://download.nullsoft.com/shoutcast/tools/sc_serv2_linux_x64_07_31_2011.tar.gz (Для linux машин с 64-разрядной архитектурой)

#wget -c http://download.nullsoft.com/shoutcast/tools/sc_serv2_linux_07_31_2011.tar.gz (Для linux машин с 32-разрядной архитектурой)

Если вы планируете передавать в формате mp3, вам потребуется транскодер SHOUTcast Transcoder (SC_TRANS)

#wget -c http://download.nullsoft.com/shoutcast/tools/sc_trans_linux_x64_10_07_2011.tar. (Для linux машин с 64-разрядной архитектурой)

#wget -c http://download.nullsoft.com/shoutcast/tools/sc_trans_linux_10_07_2011.tar.gz (Для linux машин с 32-разрядной архитектурой)

3. Распаковываем архив с программами пакета shoutcast (в моем случае, это 64-разрядная версия)

#tar xzvf sc_serv2_linux_x64_07_31_2011.tar.gz
#tar xzvf http://download.nullsoft.com/shoutcast/tools/sc_trans_linux_x64_10_07_2011.tar.gz

4. Настало время отредактировать два важных конфигурационных файла

a. Файл sc_serv_basic.conf

logfile=logs/sc_serv.log
w3clog=logs/sc_w3c.log
banfile=control/sc_serv.ban
ripfile=control/sc_serv.rip
publicserver=always
password=yourpasswordhere #этот пароль используется в sc_trans, убедитесь, что это тот же самый пароль, что и в sc_trans_basic.conf
adminpassword=yourpasswordhereagain #этот пароль используется для доступа с помощью вашего браузера на административную страницу
streamid=1
streampath=/test.aac
streamauthhash_1=AcMnKLMrYVmK2NlR9W8j #уникальное значение для каждой станиции; необходимо если вы планируете сделать вашу станцию общедоступной.

b. Файл sc_trans_basic.conf

logfile=logs/sc_trans.log
calendarrewrite=0
encoder_1=aacp ## загруженные на сервер музыкальные файлы mp3, которые будут воспроизводиться как AAC
bitrate_1=56000
outprotocol_1=3
serverip_1=127.0.0.1 ## ip адрес локального сервиса
serverport_1=8000
uvoxauth_1=yourpasswordhere ## Этот пароль должен быть точно таким, как ‘password’ в файле sc_serv_basic.conf
uvoxstreamid_1=1
endpointname_1=/Bob
streamtitle=Eritrean and Ethiopian Guayla
streamurl=http://danasmera.com:8000/listen.pls?sid=1
genre=Tigrigna Guayla
playlistfile=playlists/main.lst ## в этом файле указывается путь к музыкальным файлам, которые вы загрузите позже.
adminport=7999
adminuser=administrator
adminpassword=yourdminpasshere

5. Закачиваем на сайт ваши музыкальные файлы

Загрузите все музыкальные файлы в директорий /home/shoutcast/music. Используйте для этой задачи любую клиентскую программу sftp, например, winscp или filezilla. Смотрите пример:

root@danasmera:/home/shoutcast# ls -al /home/shoutcast/music/
-rw-r–r– 1 shoutcast shoutcast 6418432 2011-09-07 02:13 abrahamAF.mp3
-rw-r–r– 1 shoutcast shoutcast 7345261 2011-11-22 23:41 Abreham-vol2.mp3
-rw-r–r– 1 shoutcast shoutcast 6222993 2011-11-22 23:41 asmera.mp3
-rw-r–r– 1 shoutcast shoutcast 3197056 2011-09-13 02:56 Bebizelenayo.mp3
-rw-r–r– 1 shoutcast shoutcast 5890765 2011-11-22 23:41 Bereket1.mp3

6. Заполните ваш файл плейлистов — укажите в нем полный путь к музыкальным файлам, расположенным на сервере

a. Все музыкальные файлы, расположенные в определенном директории, например, /home/shoutcast/music; предполагается, что формат файлов - mp3

#find /home/shoutcast/music/ -type f -name "*.mp3" -exec ls -1 {} \; > /home/shoutcast/playlists/playlist.lst

b. Музыкальные файлы, расположенные в других директориях на сервере; предполагается, что формат файлов - mp3

#find / -type f -name "*.mp3" -exec ls -1 {} \; > /home/shoutcast/playlists/playlist.lst

7. Задаем права доступа к файлам и настраиваем брендмауэр

a. Права доступа к файлам

Удостоверьтесь, что владельцем всех файлов, расположенных в директории /home/shoutcast, является пользователь shoutcast, в противном случае, когда приложение shoutcast попытается воспроизвести эти файлы, оно выдаст сообщение об ошибке из-за отказа в доступе.

#chown -R shoutcast:shoutcast /home/shoutcast

b. Откройте порт 8000 и 8001

#iptables -A INPUT -p tcp -i eth0 --dport 8000 -m state --state NEW -j ACCEPT (-i: может быть другим в зависимости от того, какая у вас используется интерфейсная сетевая карта, например, eth1, eth2 …)
#iptables -A INPUT -p tcp -i eth0 --dport 8001 -m state --state NEW -j ACCEPT

В случае, если используются сервера Amazon ec2, вам потребуется для определенной группы безопасности, в которой работает сервер, открыть порт 8000. Доступ к этой настройке есть в консоли веб управления AWS.

8. Запускаем сервис shoutcast

#cd /home/shoutcast
#./sc_serv sc_serv_basic.conf > /dev/null 2>&1 &
#./sc_trans sc_trans_basic.conf > /dev/null 2>&1 &

С помощью netstat проверяем, прослушиваются ли указанные порты

root@danasmera:/home/shoutcast# netstat -talpn |grep sc_
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 1075/sc_serv
tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN 1075/sc_serv 

9. Чтобы сделать ваше shoutcast-радио общедоступным, зарегистрируйте его на сайте yp.shoucast.com

Чтобы это сделать, следуйте инструкциям, изложенным на этой wiki-странице — смотрите http://wiki.winamp.com/wiki/SHOUTcast_Authhash_Management. Одним словом, перейдите на свою административную страницу, например, http://yourip-or-domain:8000/admin.cgi.

Щелкните по ссылке "Create Authhash" ("Создать учетную запись") и после того, как вы заполните форму, удостоверьтесь, что в ваш файл sc_serv_basic.conf была добавлена запись с параметром streamauthhash_1.

10. Наслажлаждайтесь музыкой!

Один из способов прослушать музыку — это самым обычным образом перейти в браузере по ссылке, например, http://danasmera.com:8000/listen.pls?sid=1 или http://yourip-or-hostname:8000/listen.pls?sid = 1. Но наиболее удобный способ, это использовать на вашем мобильном телефоне приложение, позволяющее найти на желтых страницах shoutcast вашу станцию и добавить ее в список любимых станций. В мобильных телефонах с системой Android скачайте из электронного магазина Market приложение "A Online Radio" ("Интернет Радио"), откройте его и выполните поиск по ключевому слову. В моем случае это может быть слово "tigrigna" или "guayla", то есть то ключевое слово, которое я добавил, когда регистрировал свою станцию на желтых страницах. Станция появится в результатах поиска и чтобы ее воспроизвести, просто щелкните мышкой по ссылке. Для iphone вы можете воспользоваться приложением "shoutcast".

Наконец, просматривайте ваши журнальные файлы, находящиеся в директории /home/shoutcast/logs, в них вы найдете некоторую информацию, в том числе то, какие музыкальные файлы воспроизводились, ip адреса ваших слушателей и т.д. Например, вы можете с помощью следующей команды отсортировать ip адреса слушателей:

#less sc_serv* | grep -i client | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr

И, последнее, но не менее важное - прежде чем начать вещание произведений, созданных другими, изучите законы об авторском праве, действующие в вашей стране!