1

Тема: Онлайн радио на VPS

Всем доброго времени суток!

Стала интересна реализация онлайн радио в интернете.

Дабы не задавать дополнительных вопросов вам и не было мне вопрос, напишу что нужно получить в результате.

Что есть

1. VPS: OS CentOS 5.5, CPU 2.8Ghz x 1 (Приоритет использования 1/6), RAM 256MB, SSD 10Gb, Сеть 100Mb/s
2. PHP , Mysql и другое


Что надо

1. Обеспечить онлайн трансляцию через порт
2. Все треки хранятся в БД Mysql
3. Треки запускаются в произвольном порядке, но один трек может запускаться не чаще чем через один час

Написано это не для того что бы кто-то за меня все сделал, а для того что бы пояснить мне принцип и кое как шаги реализации.

Еще бы было не плохо сделать пару портов и на этих портах играет разная музыка в зависимости от настроек и виборки в mysql например по жанру.

Прошу пояснить принцип и способ реализации сего чуда.

Может для этого форума этот вопрос глупый.. но я не нашел как можно поставить радио на VPS

Отредактировано macgim (15-06-2014 11:54:31)

2

Re: Онлайн радио на VPS

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

А по поводу принципа - не знаю чего тут непонятного, принцип интернет радиовещания расписан много где

3

Re: Онлайн радио на VPS

под ваши задумки я думаю лучше уж сразу присмотреться к р/хостингу

если просто поиграться, то radionomy.com   там хоть денег не возьмут.

Отредактировано VapSite (15-06-2014 14:01:56)

4

Re: Онлайн радио на VPS

пишет tarasian666:

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

А по поводу принципа - не знаю чего тут непонятного, принцип интернет радиовещания расписан много где

Вот в том то вся проблема что найти я не смог

5

Re: Онлайн радио на VPS

пишет VapSite:

под ваши задумки я думаю лучше уж сразу присмотреться к р/хостингу

если просто поиграться, то radionomy.com   там хоть денег не возьмут.

Дело в том что мне нужно на моем VPS, там уже есть сайт и музыка на нем, хотелось бы еще радио прикрутить

6

Re: Онлайн радио на VPS

пишет macgim:

пишет tarasian666:

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

А по поводу принципа - не знаю чего тут непонятного, принцип интернет радиовещания расписан много где

Вот в том то вся проблема что найти я не смог

что именно?

7

Re: Онлайн радио на VPS

пишет tarasian666:

пишет macgim:

пишет tarasian666:

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

А по поводу принципа - не знаю чего тут непонятного, принцип интернет радиовещания расписан много где

Вот в том то вся проблема что найти я не смог

что именно?

Как все поставить

8

Re: Онлайн радио на VPS

вот например по icecast http://radiotalk.ru/viewtopic.php?id=2900
установить также можно из репозиториев

9

Re: Онлайн радио на VPS

пишет tarasian666:

вот например по icecast http://radiotalk.ru/viewtopic.php?id=2900
установить также можно из репозиториев

Скачаем: wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz

Распаковываем:

tar xvf  libxslt-1.1.26.tar.gz
Заходим:
cd libxslt-1.1.26 

Итак сейчас должен быть этап сборки, но ниобходим компонент libxml2-dev
Устанавливаем: apt-get install libxml2-dev
Итак теперь Компилируем и собираем XSLT(выполняем команды по очереди!)

./configure
make
make install

На этапе make следующая ошибка

root@admin-HP-Pavilion-g6-Notebook-PC:/home/admin/XSLT/libxslt-1.1.26# make
make  all-recursive
make[1]: Вхожу у каталог "/home/admin/XSLT/libxslt-1.1.26"
Making all in libxslt
make[2]: Вхожу у каталог "/home/admin/XSLT/libxslt-1.1.26/libxslt"
/bin/bash ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../libxslt -I/usr/include/libxml2    -g -O2 -Wall -MT xsltutils.lo -MD -MP -MF .deps/xsltutils.Tpo -c -o xsltutils.lo xsltutils.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../libxslt -I/usr/include/libxml2 -g -O2 -Wall -MT xsltutils.lo -MD -MP -MF .deps/xsltutils.Tpo -c xsltutils.c  -fPIC -DPIC -o .libs/xsltutils.o
xsltutils.c: In function ‘xsltSaveResultTo’:
xsltutils.c:1541:3: warning: passing argument 1 of ‘xmlBufferWriteQuotedString’ from incompatible pointer type [enabled by default]
   xmlBufferWriteQuotedString(buf->buffer, result->version);
   ^
In file included from /usr/include/libxml2/libxml/parser.h:16:0,
                 from /usr/include/libxml2/libxml/globals.h:18,
                 from /usr/include/libxml2/libxml/threads.h:35,
                 from /usr/include/libxml2/libxml/xmlmemory.h:218,
                 from xsltutils.c:33:
/usr/include/libxml2/libxml/tree.h:1123:3: note: expected ‘xmlBufferPtr’ but argument is of type ‘xmlBufPtr’
   xmlBufferWriteQuotedString(xmlBufferPtr buf,
   ^
xsltutils.c:1554:3: warning: passing argument 1 of ‘xmlBufferWriteQuotedString’ from incompatible pointer type [enabled by default]
   xmlBufferWriteQuotedString(buf->buffer, (xmlChar *) encoding);
   ^
In file included from /usr/include/libxml2/libxml/parser.h:16:0,
                 from /usr/include/libxml2/libxml/globals.h:18,
                 from /usr/include/libxml2/libxml/threads.h:35,
                 from /usr/include/libxml2/libxml/xmlmemory.h:218,
                 from xsltutils.c:33:
/usr/include/libxml2/libxml/tree.h:1123:3: note: expected ‘xmlBufferPtr’ but argument is of type ‘xmlBufPtr’
   xmlBufferWriteQuotedString(xmlBufferPtr buf,
   ^
xsltutils.c: In function ‘xsltSaveResultToString’:
xsltutils.c:1758:26: error: dereferencing pointer to incomplete type
  *doc_txt_len = buf->conv->use;
                          ^
xsltutils.c:1759:37: error: dereferencing pointer to incomplete type
  *doc_txt_ptr = xmlStrndup(buf->conv->content, *doc_txt_len);
                                     ^
xsltutils.c:1761:28: error: dereferencing pointer to incomplete type
  *doc_txt_len = buf->buffer->use;
                            ^
xsltutils.c:1762:39: error: dereferencing pointer to incomplete type
  *doc_txt_ptr = xmlStrndup(buf->buffer->content, *doc_txt_len);
                                       ^
make[2]: *** [xsltutils.lo] Помилка 1
make[2]: Залишаю каталог "/home/admin/XSLT/libxslt-1.1.26/libxslt"
make[1]: *** [all-recursive] Помилка 1
make[1]: Залишаю каталог "/home/admin/XSLT/libxslt-1.1.26"
make: *** [all] Помилка 2

Что не так?

Ставлю на локальном компьютере , Ubuntu 14.04

Отредактировано macgim (15-06-2014 18:09:09)

10

Re: Онлайн радио на VPS

не хватает навывов сборки из исходников.
Посмотрите есть ли icecast в centos репозиториях, в ubuntu точно есть

11

Re: Онлайн радио на VPS

пишет tarasian666:

не хватает навывов сборки из исходников.
Посмотрите есть ли icecast в centos репозиториях, в ubuntu точно есть

Я то сейчас на Ubuntu ставлю

12

Re: Онлайн радио на VPS

http://akak.ru/recipes/1933-kak-ustanov … -pod-linux
Между configure и make есть несколько нюансов. На убунте можете разве попрактиковаться собирать, в остальном там есть отличия от центос

13

Re: Онлайн радио на VPS

пишет tarasian666:

http://akak.ru/recipes/1933-kak-ustanov … -pod-linux
Между configure и make есть несколько нюансов. На убунте можете разве попрактиковаться собирать, в остальном там есть отличия от центос

Как то да установил, что дальше делать с этим?

Отредактировано macgim (16-06-2014 10:18:46)

14

Re: Онлайн радио на VPS

tarasian666

спасибо что не отвечали, правда! Когда у человека нет выбора он будет сам искать пути решения.. Зря я это сказал..

Можете мне пояснить как динамично с БД треки выбирать?

Вот вы писали в одной из тем

пишет tarasian666:

ices может получать треки не из плейлиста а из скрипта perl или phyton, также скрипт может читать теги свомим "методами" и передавать  на ices

Отредактировано macgim (16-06-2014 20:56:03)

15

Re: Онлайн радио на VPS

насчет ices там есть документация и минимальные примеры правда без бд, но если умеете работать с бд через perl или python то никих вопросов не должно возникать.

16

Re: Онлайн радио на VPS

пишет tarasian666:

насчет ices там есть документация и минимальные примеры правда без бд, но если умеете работать с бд через perl или python то никих вопросов не должно возникать.

с perl не работал, но работал с php. думаю пойму различия.
Прошу дать ссылку на документацию и примеры, на оф. сайте не нашел.

Мне бы конкретно роботу perl с ices

и еще. читал различия между ubuntu и centos.. вроде их не так и много. самое главное что в ubuntu sudo , а в centos yum

Отредактировано macgim (17-06-2014 16:10:12)

17

Re: Онлайн радио на VPS

http://radiotalk.ru/viewtopic.php?id=6270
ps ices 0.4 для mp3, ices 2.0 только для ogg

pps

в ubuntu sudo , а в centos yum

не опечатка случайно? ))

18

Re: Онлайн радио на VPS

только что нагуглил sudo и yum есть в центос. не понятно.

кстати ,, а официальной документации нет?

Я правильно понял

sub ices_init {
        //событие
}

sub ices_shutdown {
       //событие
}

sub ices_get_next {
       //событие
}

sub ices_get_metadata {
       //событие
}

1) Т.е. в определений момент будет выполнятся определенная часть скрипта ?

2)Скрипт запускается одноразово ?

3)При запуске ices?

4) Есть другие события?

5) Как что-то передавать со скрипта в ices, например путь к файлу?

6) Где то читал и было написано что скрипт должен обязательно иметь имя ices.pm, а что обычно делают когда нужно больше одного потоков?

Вот вопросы не которые ответы не удалось найти либо осталась не ясность. Буду благодарен за ответы!

Отредактировано macgim (18-06-2014 00:09:32)

19

Re: Онлайн радио на VPS

Документация и примеры есть в архиве с программой
1 типа того
2,3 скрипт запускает сам ices, потом только выполняет фукции из него
4 помоему нет
5 путь к файлу передает функция ices_get_next
6 больше 1го потока - больше запущеных ices или использовать другие программы

20

Re: Онлайн радио на VPS

а вот к примеру часто выдел что-то там проблема с передачей названий песен на русском.
Собственно, а как получить это название на определенную страницу ?как передать?  как получить?

Как установить ices 2 раза? и больше

Отредактировано macgim (19-06-2014 08:48:36)

21

Re: Онлайн радио на VPS

Устанавливать ices 2 раза не надо.
Надо создать 2 (или более) конфиг-файлов и при запуске просто менять к ним путь.
То есть:
#ices -c ices1.conf
#ices -c ices2.conf
и т.д.
======
Что касается русских песен, но надо "крутить" кодировку в icecast на маунте.

http://radioheart.ru/banners/radioheart_400x40_banner.jpg
RadioHeart.ru: Функциональный радио хостинг с автодиджеем и нонстопом, а так же быстрый виртуальный хостинг. Возможность создать радио за 5 минут, подключить автодиджей и нонстоп.
Отзывы о хостинге

22

Re: Онлайн радио на VPS

пишет Falcon:

Что касается русских песен, но надо "крутить" кодировку в icecast на маунте.

меня интересует именно схема передачи названия и ее получения. например мне на нужной странице нужно вывести это название

Отредактировано macgim (19-06-2014 21:43:01)

23

Re: Онлайн радио на VPS

Тянуть скриптом с icecastа и выводить. На PHP вариантов масса, самое простое - через file_get_contents

http://radioheart.ru/banners/radioheart_400x40_banner.jpg
RadioHeart.ru: Функциональный радио хостинг с автодиджеем и нонстопом, а так же быстрый виртуальный хостинг. Возможность создать радио за 5 минут, подключить автодиджей и нонстоп.
Отзывы о хостинге

24

Re: Онлайн радио на VPS

пишет Falcon:

Тянуть скриптом с icecastа и выводить. На PHP вариантов масса, самое простое - через file_get_contents

можно пример

25

Re: Онлайн радио на VPS

  <?php
        //LIVE STREAM
        $data=file_get_contents("http://s3.radioheart.ru:8005/status2.xsl?mount=/live");
        $data=explode(",",$data);
        if(($data[14]=='')OR(strlen($data[14])<2))
        {
          //NONSTOP
          $data=file_get_contents("http://s3.radioheart.ru:8005/status2.xsl?mount=/nonstop");
          $data=explode(",",$data);
        }
        $stream_title=$data[14];
        //Если сайт в кодировке windows-1251 (cp-1251), раскомментируйте следующую строчку
        //$stream_title=iconv("UTF-8","WINDOWS-1251",$stream_title); 
        $stream_description=$data[16];
        $listeners=$data[15];
        $mlisteners=$data[19];
        $song=$data[17];
        $image='';
        //Если сайт в кодировке windows-1251 (cp-1251), раскомментируйте следующую строчку
        //$song=iconv("UTF-8","WINDOWS-1251",$song);
                // Выводим данные
        echo "<div id='radiostat'>";
        echo "Название потока: $stream_title<br />";
        echo "Описание потока: $stream_description<br />";
        echo "Слушателей: $listeners<br />";
        echo "Сейчас в эфире: $song<br />";
        echo "</div>";
                 ?>
http://radioheart.ru/banners/radioheart_400x40_banner.jpg
RadioHeart.ru: Функциональный радио хостинг с автодиджеем и нонстопом, а так же быстрый виртуальный хостинг. Возможность создать радио за 5 минут, подключить автодиджей и нонстоп.
Отзывы о хостинге