Делаем свое он-лайн радио
Привет, с вами K.Watt.
Сегодня, я постараюсь раскрыть вам технические «секреты» в создании собственно он-лайн радио, сразу оговорюсь, это далеко не самый бюджетный вариант.
Опишем цель: Создать он-лайн радио. Поток будем брать просто из mp3 файлов, без возможности прямого вещания со звуковой карты (об этом, возможно, я напишу позже, скажу лишь что копать нужно в сторону SAM Broadcaster).
Итак, что нам понадобится:
- Выделенный сервер или VPS с root доступом;
- Операционная система Debian;
- Сайт, где собственно и будет доступ к радио;
- Немного свободного времени и прямые руки.
Приступим
Выделенный сервер (англ. dedicated server) — вид хостинга, при котором клиенту целиком предоставляется отдельная физическая машина.
Почему нам не подойдет обычный виртуальный хостинг?
Все просто, мы будет устанавливать ПО не входящее в стандартный серверный комплект.
В этой статье я не буду рассказывать как установить LAMP пакет, этих статьей в интернете навалом, если будут проблемы пишите.
Кстати, если сейчас у вас нет денег на покупку сервера, а руки так и чешутся поковырять консоль и опробовать свои знания, можете поставить себе VirtualBox с Debain и все эксперименты провести там, после чего будет намного проще все настраивать на боевом сервере.
Для организации вещания потребуется две программы:
- 1. Icecast — программа для организации потокового вещания.
- 2. Ices — программа источник, ices распространяется в двух версиях: версия 0.x поддерживает mp3 потоки, именно её мы и будем использовать, и версия 2.х с поддержкой потоков в формате Ogg.
Все дальнейшие действия производятся через ssh с root доступом.
Устанавливаем Icecast
k.watt@radio:~# cd /tmp
k.watt@radio:~# wget downloads.xiph.org/releases/ic…
Для сборки, нам понадобятся дополнительные пакеты:
k.watt@radio:~/tmp# apt-get install libogg-dev libvorbis-dev libtheora-dev libspeex-dev libcurl4-openssl-dev libxslt-dev
Ну а теперь можно приступить к конфигурации и сборке:
k.watt@radio:~/tmp# cd icecast-2.3.2
k.watt@radio:~/tmp/icecast-2.3.2# ./configure
k.watt@radio:~/tmp/icecast-2.3.2# make
k.watt@radio:~/tmp/icecast-2.3.2# make install
Для того, что бы Icecast запустился, необходимо в /etc/default/icecast2 установить значение:
ENABLE=true
Далее редактируемконфигурационный файл /etc/icecast2/icecast.xml:
Пример моего конфига:
<icecast>
<limits>
<clients>100</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>165535</burst-size>
</limits>
<authentication>
<source-password>password</source-password>
<relay-password>password</relay-password>
<admin-user>admin</admin-user>
<admin-password>password</admin-password>
</authentication>
<hostname>inemotions.com</hostname>
<listen-socket>
<port>8000</port>
</listen-socket>
<fileserve>1</fileserve>
<paths>
<basedir>/usr/share/icecast2</basedir>
<logdir>/var/log/icecast2</logdir>
<webroot>/usr/share/icecast2/web</webroot>
<adminroot>/usr/share/icecast2/admin</adminroot>
<pidfile>/usr/share/icecast2/icecast.pid</pidfile>
<alias source="/" dest="/status.xsl"/>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>4</loglevel>
<logsize>10000</logsize>
</logging>
<security>
<chroot>0</chroot>
<changeowner>
<user>icecast2</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>
Теперь можно запустить Icecast командой:
k.watt@radio:~/tmp/icecast-2.3.2# /etc/init.d/icecast2 start
Установка ices0
Перед непосредственной установкой ices ставим необходимые пакеты:
k.watt@radio:~/tmp/icecast-2.3.2# cd /tmp
k.watt@radio:~/tmp# apt-get install build-essential
Так же нам потребуются:
k.watt@radio:~/tmp# apt-get install libshout3-dev libxml2-dev
И еще, для поддержки mp3 файлов необходимо установить пакет libmp3lame0
Для
k.watt@radio:~/tmp# wget debian-multimedia.org/pool/mai…
k.watt@radio:~/tmp# wget debian-multimedia.org/pool/mai…
Для 64-битных:
k.watt@radio:~/tmp# wget debian-multimedia.org/pool/mai…
k.watt@radio:~/tmp #wget debian-multimedia.org/pool/mai…
Устанавливаем:
k.watt@radio:~/tmp# dpkg -i libmp3lame0_3.98.4-0.0_i386.deb
k.watt@radio:~/tmp #dpkg -i libmp3lame-dev_3.98.4-0.0_i386.deb
Теперь все готово для установки ices0:
k.watt@radio:~# wget downloads.us.xiph.org/releases…
k.watt@radio:~# tar -xf ices-0.4.tar.gz
k.watt@radio:~# cd ices-0.4
k.watt@radio:~/tmp/ices-0.4# ./configure --with-lame
k.watt@radio:~/tmp/ices-0.4# make
k.watt@radio:~/tmp/ices-0.4# make install
После установки редактируем конфиг-файл /usr/local/etc/ices.conf
Пример моего конфига
<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
<Playlist>
<File>playlist.txt</File>
<Randomize>1</Randomize>
<Type>builtin</Type>
<Module>ices</Module>
</Playlist>
<Execution>
<Background>1</Background>
<Verbose>0</Verbose>
<BaseDirectory>/usr/share/icecast2</BaseDirectory>
</Execution>
<Stream>
<Server>
<Hostname>inemotions.com</Hostname>
<Port>8000</Port>
<Password>password</Password>
<Protocol>http</Protocol>
</Server>
<Mountpoint>/techno</Mountpoint>
<Name>Default stream</Name>
<Genre>Default genre</Genre>
<Description>Default description</Description>
<URL>inemotions.com:8000/techno<…;
<Public>0</Public>
<Bitrate>320</Bitrate>
<Reencode>1</Reencode>
<Samplerate>44100</Samplerate>
<Channels>2</Channels>
</Stream>
</ices:Configuration>
Ограничим доступ к /usr/local/etc/ices.conf:
k.watt@radio:~/tmp/ices-0.4# chmod 640 /usr/local/etc/ices.conf
Поздравляю, сервер для он-лайн радио уже почти готов к работе, осталось лишь создать playlist
k.watt@radio:~/tmp/ices-0.4# find /home/inemotions.com/media/-name '*.mp3'-exec echo '{}' \;]]>/home/inemotions.com/media/ playlist.txt
и запустить ices
k.watt@radio:~/tmp/ices-0.4# ices -c '/usr/local/etc/ices.conf' -D '/home/inemotions.com/media/music/' -F '/home/inemotions.com/media/' -m 'sample1' -u 'http://inemotions.com:8000/techno' -d 'Tecno wave on inemotion.com' -n 'blablabla1' -g 'techno' -b 320 -B
На этом пока все, в следующих статьях я покажу как сделать красивый Flash проигрыватель для вашего радио.
При перепечатке материалов, ссылка на http://kwatt.promodj.ru/blog/604421.html обязательна.
Comments