Shoutcast - многоплатформенное бесплатное серверное ПО компании Nullsoft. Предназначено для организации потокового вещания цифрового аудио/видео сигнала в сеть в формате MP3, AAC, AACplus, NSV, как в локальную, так и интернет. Прост в установке, настройке и управлении.
Минимальный набор для организации вещания состоит из собственно сервера Shoutcast (или демона, от слова daemon), и источника, в простейшем случае реализуемого программой Winamp или аналогичного программного плеера с соответсвующим плагином, кодирующим аудиосигнал с требуемым качеством, и передающего его в потоковом режиме серверу Shoutcast, для последующей передачи оного подключившимся к серверу клиентам, в качестве которых выступает любой программный плеер с поддержкой потокового вещания.
В настоящее время существует большое число интернет-радиостанций, вещающих с использованием данного ПО.
Имеется удобная панель управления на основе WWW-интерфейса. Имеется возможность на одном компьютере установить одновременно несколько служб сервера Shoutcast.
Установить SHOUTcast server можно либо из портов, либо скачать с сайта производителя - http://www.shoutcast.com/
Клиент, программа, которая будет выдавать поток серверу, можно взять только с сервера http://www.shoutcast.com/
После установки надо насроить конфигурационные файлы сервера и клиента.
При запуске клиент может выдать ошибки о том, что не найдены некоторые библиотеки, это решается созданием симлинков на нужные файлы. После, при запуске может быть выдана ошибка, вида /usr/libexec/ld-elf.so.1: /lib/libm.so.2: Undefined symbol "__stderrp". Её можно гранить следующим образом:
В /etc/make.conf добавьте
COMPAT3X=YES COMPAT4X=YES
cd /usr/src/lib/compat make && make install
Всё должно запуститься :)
Установка shoutcast
Установим сервер shoutcast:
cd /usr/ports/audio/shoutcast && make install clean
Установка sc_trans
Установка транслятора подготавливающего поток для сервера. Для этого переходим на сайт производителя http://shoutcast.com и скачиваем файл sc_trans_posix_040.tgz. Затем распаковываем его в /usr/local/ и получаем уже откомпилированный файл sc_trans_freebsd и примеры конфигурационного файла и play-листа.
#!/bin/sh su root -c '/usr/sbin/mixer rec 75 1>/dev/null 2>&1' su root -c '/usr/sbin/mixer igain 75 1>/dev/null 2>&1' su root -c '/usr/sbin/mixer =rec line 1>/dev/null 2>&1' # если нужен еще одно устройство записи то добавляем строчку: cat /usr/local/etc/rc.d/000.mixer.s > /dev/dsp0.1 # и так далее, почему то sysctl hw.snd.pcm0.vchans=4 не работает, видимо в 7 фряхе # как то по другому, если знаете поправьте
Настройка sc_trans
Правим основые настройки в файле sc_trans.conf:
#Путь к play-листу PlaylistFile=example.lst #Если shoutcast сервер стоит на этом же компьютере то укажем ip-адрес 127.0.0.1 иначе необходимый ServerIP=127.0.0.1 #Тоже с портом shoutcast сервера ServerPort=8000 #И паролем к shoutcast серверу Password=my_pwd
Если мы используем звук со входа со звуковой карты то правим файл example.lst:
Здесь записывается поток с сервера по адресу http://127.0.0.1:8000 в папку /home/air/ в файл с именем вида 2008-04-25_10-00 (ГОД-МЕСЯЦ-ДЕНЬ_ЧАС-МИНУТА). Записывает в течении 3720 сек, что составляет один час и две минуты (учтите что поток выдается с задержкой примерно 20-30 сек).
Все запихиваем скрипт в cron на запуск раз в час и запись готова.