+
Software Profile Feed

Делаем свое он-лайн радио

Привет, с вами K.Watt.

Сегодня, я постараюсь раскрыть вам технические «секреты» в создании собственно он-лайн радио, сразу оговорюсь, это далеко не самый бюджетный вариант.

Опишем цель: Создать он-лайн радио. Поток будем брать просто из mp3 файлов, без возможности прямого вещания со звуковой карты (об этом, возможно, я напишу позже, скажу лишь что копать нужно в сторону SAM Broadcaster).

Итак, что нам понадобится:

  • Выделенный сервер или VPS с root доступом;
  • Операционная система Debian;
  • Сайт, где собственно и будет доступ к радио;
  • Немного свободного времени и прямые руки.

Приступим

Выделенный сервер (англ. dedicated server) — вид хостинга, при котором клиенту целиком предоставляется отдельная физическая машина.

Почему нам не подойдет обычный виртуальный хостинг?
Все просто, мы будет устанавливать ПО не входящее в стандартный серверный комплект.

В этой статье я не буду рассказывать как установить LAMP пакет, этих статьей в интернете навалом, если будут проблемы пишите.

Кстати, если сейчас у вас нет денег на покупку сервера, а руки так и чешутся поковырять консоль и опробовать свои знания, можете поставить себе VirtualBox с Debain и все эксперименты провести там, после чего будет намного проще все настраивать на боевом сервере.

Для организации вещания потребуется две программы:

  1. 1. Icecast — программа для организации потокового вещания.
  2. 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
Для 32-битных систем:
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 обязательна.

K.Watt [INEmotions :: Progressive electronic music]

0 ▲
31 May 2011 15:47
K.Watt

Comments

Немного другая информация, у меня упор на создание он-лайн радио на стороннем сервере. Что можно применить к примеру для создания радио, куда могут грузить файлы другие пользователи. А у тебя как я понял информация о том, как вещать на свое радио с трактора.
Please, sign up (it's quick!) or sign in, to post comments and do more fun stuff.