ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

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

 

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

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

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

Что есть

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
6245
Тарас @tarasian666
еще нужно:
программа-сервер радиоверщания (icecast или shoutcast)
программа вещания (их больше видов, все расписывать не буду, зависит от потребностей, а также на centos не все их будет просто установить)
скрипт добавления треков в базу
скрипт который будет брать их с базы с указаной логикой/правилами

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

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

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

Отредактировано VapSite - 15.06.2014
22
macgim @macgim
tarasian666 пишет:

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

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



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

22
macgim @macgim
VapSite пишет:

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

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


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

6245
Тарас @tarasian666
macgim пишет:

tarasian666 пишет:

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

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



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


что именно?

22
macgim @macgim
tarasian666 пишет:

macgim пишет:

tarasian666 пишет:

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

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



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


что именно?



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

6245
Тарас @tarasian666
вот например по icecast **********
установить также можно из репозиториев

22
macgim @macgim
tarasian666 пишет:

вот например по icecast **********
установить также можно из репозиториев



Скачаем: 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
6245
Тарас @tarasian666
не хватает навывов сборки из исходников.
Посмотрите есть ли icecast в centos репозиториях, в ubuntu точно есть

22
macgim @macgim
tarasian666 пишет:

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


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

6245
Тарас @tarasian666
**********
Между configure и make есть несколько нюансов. На убунте можете разве попрактиковаться собирать, в остальном там есть отличия от центос

22
macgim @macgim
tarasian666 пишет:

**********
Между configure и make есть несколько нюансов. На убунте можете разве попрактиковаться собирать, в остальном там есть отличия от центос


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

Отредактировано macgim - 16.06.2014
22
macgim @macgim
tarasian666

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

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

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

tarasian666 пишет:


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

Отредактировано macgim - 16.06.2014
6245
Тарас @tarasian666
насчет ices там есть документация и минимальные примеры правда без бд, но если умеете работать с бд через perl или python то никих вопросов не должно возникать.

22
macgim @macgim
tarasian666 пишет:

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


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

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

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

Отредактировано macgim - 17.06.2014
6245
Тарас @tarasian666
**********
ps ices 0.4 для mp3, ices 2.0 только для ogg

pps
в ubuntu sudo , а в centos yum
не опечатка случайно? ))

22
macgim @macgim
только что нагуглил 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
6245
Тарас @tarasian666
Документация и примеры есть в архиве с программой
1 типа того
2,3 скрипт запускает сам ices, потом только выполняет фукции из него
4 помоему нет
5 путь к файлу передает функция ices_get_next
6 больше 1го потока - больше запущеных ices или использовать другие программы

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

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

Отредактировано macgim - 19.06.2014