ОсновноеRadiotalkПользовательское
Технологии вещания, софт, скрипты
6   •   Посмотреть все темы

liquidsoap

 

20
Вадим @Vadim_CHichkan
Пилите скрипты (на perl например или на PHP). В Sam Broadcaster, например, ротация сделана занесением в БД игравших песен и уже оттуда (учитывая настройки SB) подкладываются треки в queue.

а можно ли пример такого скрипта, облазил весь форум ничего похожего не нашел

6245
Тарас @tarasian666
И не найдете, это целый комплекс скриптов, каждый пилит под себя. Логику вам подсказали, дальше додумайте под свои цели и воплотите в скрипт. В итоге скрипты выходят простые, не надо быть гением программистом.

37
Алексей @anester
Есть строчка которая играет плей лист в том порядке в котором стоит в нем

source = crossfade(start_next=3.,fade_out=5.,fade_in=1.,mksafe(playlist(mode="normal","/home/radio/radio.m3u")))

Сейчас он его гоняет по кругу.

Как сделать так, чтобы liquidsoap отыграл плейлист 1 раз и завершил свою работу?

6245
Тарас @tarasian666
playlist.once

37
Алексей @anester
tarasian666 пишет:

playlist.once


Спасибо. Действительно работает, однако есть момент. После того как проиграется плейлист, потом в потоке начинает идти тишина и поток не отмонтируется на айскасте и продолжает висеть, ликвидсоаповский процесс также висит в системе.

А так можно сделать чтобы проиграл плейлист и завершил свою работу? Процесс убился, liquidsoap отмонтировался от icecast

Отредактировано anester - 29.07.2014
4
karrik @karrik
Всем доброго дня!
Возможно вопрос не совсем в эту тему, но кто знает...
третий день как пытаюсь разбираться с айскаст + ...
в качестве "..." было протестировано ices, ices2, liquidsoap.
Основной вопрос который интересует - как организовать с помощью одного из указанных плееров(возможно с помощью какого-то другого) монтирование двух точек с разным контентом на айскасте?
Как уже было здесь написано айсес (айсес2) двумя процессами не запускается. Соап два плейлиста параллельно не запускает, проверено опытным путем(есть надежда, что ошибочный вывод).
Можно конечно запускать параллельно айсес и соап, или вообще разворачивать точки на разных сайтах, но мое такое мнение - не стоит усилий.
Возможно кто-то разворачивал под одним плеером на одной машине несколько точек? Есть решения?
Заранее благодарен!

6245
Тарас @tarasian666
и ices двумя (и более) процессами запустить можно и liquidsoap разные плейлисты одновременно вещать может

20
Вадим @Vadim_CHichkan
tarasian666 пишет:

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

Может этот:
<?php
$host = "localhost";
$user = "user";
$base = "base";
$pass = "pass";
$link = mysql_connect($host, $user, $pass) or die();
mysql_select_db($base) or die();
$query = 'SELECT * FROM `requests` LIMIT 1 ORDER by date ASC';
$result = mysql_query($query) or die();
$line = mysql_fetch_array($result, MYSQL_ASSOC);
if(!empty($line) && $line != 0){
echo $line['path'];
mysql_query('DELETE FROM `request` WHERE `id` = '.$line['id'].' LIMIT 1') or die();
}
mysql_free_result($result);
mysql_close($link);
?>

6245
Тарас @tarasian666
это только для пригрывания запросов-трэков с сайта.

4
karrik @karrik
Возможно увидеть каие-то конкретные примеры написания конфига для соап и айсес?
Запуск как:
"Для организации нескольких каналов музыки используйте возможности командной строки ices, например:

# ices -c '/usr/local/etc/ices.conf' -D '/media/music/' -F '/media/music/album1/playlist.txt' -m 'sample1' -u 'siava.ru:8000/sample1' -d 'sample1 descr' -n 'blablabla1' -g 'test1' -b 192 -B
# ices -c '/usr/local/etc/ices.conf' -D '/media/music/' -F '/media/music/album2/playlist.txt' -m 'sample2' -u 'siava.ru:8000/sample2' -d 'sample2 descr' -n 'blablabla2' -g 'test2' -b 160 -B

таким образом, будут организованы 2 канала с музыкой. "
- результатов не принес. Конфиг написан как в инструкции один в один. По одному работает.
Второй запускается вроде как также как и первый, но в процессы не встает.
В конфиге соапа три строчки как здесь на первой странице. Только добавлены еще 2: playlist2 и соответственно mount2.
без этих строчек работает, с ними в логах: 403 mountpoint in use, too many sources connected
Мне для моих домашних нужд очень нужно несколько точек вещания, пожалуйста, подскажите-помогите!...
или хотя бы укажите место где читать...

37
Алексей @anester
anester пишет:

tarasian666 пишет:

playlist.once


Спасибо. Действительно работает, однако есть момент. После того как проиграется плейлист, потом в потоке начинает идти тишина и поток не отмонтируется на айскасте и продолжает висеть, ликвидсоаповский процесс также висит в системе.

А так можно сделать чтобы проиграл плейлист и завершил свою работу? Процесс убился, liquidsoap отмонтировался от icecast


Должен же быть какой то параметр, который указывает liquidsoap , что пора завершить работу

6245
Тарас @tarasian666
Поищите тут **********
Может и есть, я не сталкивался.
karrik, опредилитесь сначала что вам надо, ices или liquidsoap, не засоряйте ветку

37
Алексей @anester
tarasian666 пишет:

Поищите тут **********


Спасибо.

Это случаем не оно? **********

Честно говоря не знаю как ее приложить к конфигу.

4
karrik @karrik
Раз мы в этой ветке и Liquidsoap может покрыть с лихвой все потребности, то подскажите как с помощью liquidsoap организовать несколько точек.

4
karrik @karrik
Всем спасибо за рвение помочь!)
Под соапом две точки свои поднял (рок и джаз, мп3 и огг), также подкрутил релей. Работают, но со сбоями - введя имя точки после адреса сайта работают только в первый раз на нетбуке, на ноуте вроде проверил пару раз - проблем пока нет... Надеюсь проблема браузера!) Надеюсь не айскаста, ведь соап вроде выдаетвсегда (в плеере через ссылку работает без проблем).
Будет интерес - обращайтесь, в сети мало кто может объяснить решение проблем по которым был "затык" у меня. (камень не в огород местных обитателей!)

89
Ok_go_love @Ok_go_love
Vadim.CHichkan пишет:

tarasian666 пишет:

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

Может этот:
<?php
$host = "localhost";
$user = "user";
$base = "base";
$pass = "pass";
$link = mysql_connect($host, $user, $pass) or die();
mysql_select_db($base) or die();
$query = 'SELECT * FROM `requests` LIMIT 1 ORDER by date ASC';
$result = mysql_query($query) or die();
$line = mysql_fetch_array($result, MYSQL_ASSOC);
if(!empty($line) && $line != 0){
echo $line['path'];
mysql_query('DELETE FROM `request` WHERE `id` = '.$line['id'].' LIMIT 1') or die();
}
mysql_free_result($result);
mysql_close($link);
?>

Пипец, кто юзает до сих пор mysql API? Привет из PHP >= 5.5.0
**********

Отредактировано Ok_go_love - 31.07.2014
20
Вадим @Vadim_CHichkan
tarasian666 пишет:

это только для пригрывания запросов-трэков с сайта.

в каком формате или что php файл должен возращать при обращении к нему, чтобы liquidsoap подхватывал данные? Делаю скрипт на php.

Отредактировано Vadim_CHichkan - 04.08.2014
6245
Тарас @tarasian666
должен возвращать путь к треку в текстовом формате (это если request.dynamic)

20
Вадим @Vadim_CHichkan
сделал скрипт выводит
/home/radio/hits80/13.Valerie Dore - Get Gloser.mp3

Liquidsoap
def my_request_function() =
# Get the first line of my external process
result =
list.hd(
get_process_lines("/var/www/1.php"))
# Create and return a request using this result
request.create(result)
end
myplaylist = request.dynamic(my_request_function)
queue = request.queue(id="queue", length=0.5)
radio = mksafe(fallback([queue, myplaylist]))
radio = compress(gain=3.,ratio=2.,threshold=-15.,radio)
radio = crossfade(start_next=5.,fade_out=3.,fade_in=1.,radio)
#запускаем вещалку
output.icecast(%mp3(stereo=true, samplerate=44100, bitrate=128),
host = "localhost", port = 9000, icy_metadata="true",
password = "*****", mount = "radio",name="test", description = "test", genre="Pop",url="http://***.com/",radio)

В логах вот что выводит
2014/08/05 23:11:32 [stderr:3] /var/www/1.php: 7: /var/www/1.php: //Подключаемся: not found
2014/08/05 23:11:32 [request:3] Nonexistent file or ill-formed URI ""!
2014/08/05 23:11:32 [stderr:3] /var/www/1.php: 8: /var/www/1.php: Syntax error: word unexpected (expecting ")")
2014/08/05 23:11:32 [stderr:3] /var/www/1.php: 1: /var/www/1.php: cannot open ?: No such file
2014/08/05 23:11:32 [stderr:3] /var/www/1.php: 2: /var/www/1.php: //Подключаемся: not found
2014/08/05 23:11:32 [stderr:3] /var/www/1.php: 3: /var/www/1.php: =: not found
2014/08/05 23:11:32 [stderr:3] /var/www/1.php: 4: /var/www/1.php: =: not found
2014/08/05 23:11:32 [stderr:3] /var/www/1.php: 5: /var/www/1.php: =: not found
2014/08/05 23:11:32 [stderr:3] /var/www/1.php: 6: /var/www/1.php: =: not found

Отредактировано Vadim_CHichkan - 06.08.2014
6245
Тарас @tarasian666
проверить права на запуск скрипта, а также запускается ли скрипт как консольный

**********